llvm-capstone/clang-tools-extra
Reid Kleckner e08464fb45 Avoid including FileManager.h from SourceManager.h
Most clients of SourceManager.h need to do things like turning source
locations into file & line number pairs, but this doesn't require
bringing in FileManager.h and LLVM's FS headers.

The main code change here is to sink SM::createFileID into the cpp file.
I reason that this is not performance critical because it doesn't happen
on the diagnostic path, it happens along the paths of macro expansion
(could be hot) and new includes (less hot).

Saves some includes:
    309 -    /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileManager.h
    272 -    /usr/local/google/home/rnk/llvm-project/clang/include/clang/Basic/FileSystemOptions.h
    271 -    /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/VirtualFileSystem.h
    267 -    /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/FileSystem.h
    266 -    /usr/local/google/home/rnk/llvm-project/llvm/include/llvm/Support/Chrono.h

Differential Revision: https://reviews.llvm.org/D75406
2020-03-11 13:53:12 -07:00
..
clang-apply-replacements NFC: Fix trivial typos in comments 2020-01-04 10:28:41 -05:00
clang-change-namespace Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
clang-doc [clang-doc] Improving Markdown Output 2020-03-06 17:37:08 -08:00
clang-include-fixer Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
clang-move [clang][Analysis] CallGraph: store the actual call Expr* in the CallGraphNode::CallRecord 2020-02-13 23:37:53 +03:00
clang-query Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
clang-reorder-fields [ASTMatchers] StringRef'ify hasName 2020-01-29 10:53:08 +01:00
clang-tidy Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
clangd Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
docs [clang-tidy] Fix warning from my previous patch in ReleaseNotes.txt 2020-03-10 14:01:23 -07:00
modularize Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
pp-trace Avoid including FileManager.h from SourceManager.h 2020-03-11 13:53:12 -07:00
test [clang-tidy] Mock system headers for portability-restrict-system-includes tests. 2020-03-11 12:13:27 -07:00
tool-template Revert "Use InitLLVM to setup a pretty stack printer" 2019-11-25 21:06:56 -05:00
unittests [clang-doc] Improving Markdown Output 2020-03-06 17:37:08 -08:00
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT [clangd] add CODE_OWNERS 2020-01-29 12:43:19 +01:00
LICENSE.TXT
README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/