forked from OSchip/llvm-project
Avoid SourceManager.h include in RawCommentList.h, add missing incs
SourceManager.h includes FileManager.h, which is expensive due to dependencies on LLVM FS headers. Remove dead BeforeThanCompare specialization. Sink ASTContext::addComment to cpp file. This reduces the time to compile a file that does nothing but include ASTContext.h from ~3.4s to ~2.8s for me. Saves these includes: 219 - ../clang/include/clang/Basic/SourceManager.h 204 - ../clang/include/clang/Basic/FileSystemOptions.h 204 - ../clang/include/clang/Basic/FileManager.h 165 - ../llvm/include/llvm/Support/VirtualFileSystem.h 164 - ../llvm/include/llvm/Support/SourceMgr.h 164 - ../llvm/include/llvm/Support/SMLoc.h 161 - ../llvm/include/llvm/Support/Path.h 141 - ../llvm/include/llvm/ADT/BitVector.h 128 - ../llvm/include/llvm/Support/MemoryBuffer.h 124 - ../llvm/include/llvm/Support/FileSystem.h 124 - ../llvm/include/llvm/Support/Chrono.h 124 - .../MSVCSTL/include/stack 122 - ../llvm/include/llvm-c/Types.h 122 - ../llvm/include/llvm/Support/NativeFormatting.h 122 - ../llvm/include/llvm/Support/FormatProviders.h 122 - ../llvm/include/llvm/Support/CBindingWrapping.h 122 - .../MSVCSTL/include/xtimec.h 122 - .../MSVCSTL/include/ratio 122 - .../MSVCSTL/include/chrono 121 - ../llvm/include/llvm/Support/FormatVariadicDetails.h 118 - ../llvm/include/llvm/Support/MD5.h 109 - .../MSVCSTL/include/deque 105 - ../llvm/include/llvm/Support/Host.h 105 - ../llvm/include/llvm/Support/Endian.h Reviewed By: aaron.ballman, hans Differential Revision: https://reviews.llvm.org/D75279
This commit is contained in:
parent
fdba2e4ed1
commit
86565c1309
|
@ -7,6 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "LexerUtils.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
||||
namespace clang {
|
||||
namespace tidy {
|
||||
|
|
|
@ -721,15 +721,7 @@ public:
|
|||
RawComment *getRawCommentForDeclNoCache(const Decl *D) const;
|
||||
|
||||
public:
|
||||
RawCommentList &getRawCommentList() {
|
||||
return Comments;
|
||||
}
|
||||
|
||||
void addComment(const RawComment &RC) {
|
||||
assert(LangOpts.RetainCommentsFromSystemHeaders ||
|
||||
!SourceMgr.isInSystemHeader(RC.getSourceRange().getBegin()));
|
||||
Comments.addComment(RC, LangOpts.CommentOpts, BumpAlloc);
|
||||
}
|
||||
void addComment(const RawComment &RC);
|
||||
|
||||
/// Return the documentation comment attached to a given declaration.
|
||||
/// Returns nullptr if no comment is attached.
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
#include "clang/AST/ASTNodeTraverser.h"
|
||||
#include "clang/AST/TextNodeDumper.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
||||
namespace clang {
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
|
||||
#include "clang/Basic/CommentOptions.h"
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/ADT/DenseMap.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
#include <map>
|
||||
|
||||
namespace clang {
|
||||
|
@ -21,7 +21,9 @@ namespace clang {
|
|||
class ASTContext;
|
||||
class ASTReader;
|
||||
class Decl;
|
||||
class DiagnosticsEngine;
|
||||
class Preprocessor;
|
||||
class SourceManager;
|
||||
|
||||
namespace comments {
|
||||
class FullComment;
|
||||
|
@ -173,23 +175,6 @@ private:
|
|||
friend class ASTReader;
|
||||
};
|
||||
|
||||
/// Compare comments' source locations.
|
||||
template<>
|
||||
class BeforeThanCompare<RawComment> {
|
||||
const SourceManager &SM;
|
||||
|
||||
public:
|
||||
explicit BeforeThanCompare(const SourceManager &SM) : SM(SM) { }
|
||||
|
||||
bool operator()(const RawComment &LHS, const RawComment &RHS) {
|
||||
return SM.isBeforeInTranslationUnit(LHS.getBeginLoc(), RHS.getBeginLoc());
|
||||
}
|
||||
|
||||
bool operator()(const RawComment *LHS, const RawComment *RHS) {
|
||||
return operator()(*LHS, *RHS);
|
||||
}
|
||||
};
|
||||
|
||||
/// This class represents all comments included in the translation unit,
|
||||
/// sorted in order of appearance in the translation unit.
|
||||
class RawCommentList {
|
||||
|
|
|
@ -11,9 +11,10 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "Transforms.h"
|
||||
#include "Internals.h"
|
||||
#include "Transforms.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Sema/SemaDiagnostic.h"
|
||||
|
||||
using namespace clang;
|
||||
|
|
|
@ -296,6 +296,12 @@ RawComment *ASTContext::getRawCommentForDeclNoCache(const Decl *D) const {
|
|||
return getRawCommentForDeclNoCacheImpl(D, DeclLoc, *CommentsInThisFile);
|
||||
}
|
||||
|
||||
void ASTContext::addComment(const RawComment &RC) {
|
||||
assert(LangOpts.RetainCommentsFromSystemHeaders ||
|
||||
!SourceMgr.isInSystemHeader(RC.getSourceRange().getBegin()));
|
||||
Comments.addComment(RC, LangOpts.CommentOpts, BumpAlloc);
|
||||
}
|
||||
|
||||
/// If we have a 'templated' declaration for a template, adjust 'D' to
|
||||
/// refer to the actual template.
|
||||
/// If we have an implicit instantiation, adjust 'D' to refer to template.
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/AST/DataCollection.h"
|
||||
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
|
||||
namespace clang {
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "clang/Basic/IdentifierTable.h"
|
||||
#include "clang/Basic/LLVM.h"
|
||||
#include "clang/Basic/Module.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/None.h"
|
||||
#include "llvm/Support/ErrorHandling.h"
|
||||
#include <cstdint>
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "clang/AST/JSONNodeDumper.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/StringSwitch.h"
|
||||
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/AST/Mangle.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/CXXInheritance.h"
|
||||
|
@ -22,9 +21,11 @@
|
|||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/AST/Expr.h"
|
||||
#include "clang/AST/ExprCXX.h"
|
||||
#include "clang/AST/Mangle.h"
|
||||
#include "clang/AST/VTableBuilder.h"
|
||||
#include "clang/Basic/ABI.h"
|
||||
#include "clang/Basic/DiagnosticOptions.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Support/CRC.h"
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#include "clang/AST/CommentSema.h"
|
||||
#include "clang/Basic/CharInfo.h"
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
|
||||
using namespace clang;
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "clang/AST/DeclOpenMP.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/AST/LocInfoType.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
||||
using namespace clang;
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/DataCollection.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/Support/MD5.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "clang/AST/NSAPI.h"
|
||||
#include "clang/Basic/Builtins.h"
|
||||
#include "clang/Basic/CodeGenOptions.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/Hashing.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "clang/AST/StmtVisitor.h"
|
||||
#include "clang/Basic/BitmaskEnum.h"
|
||||
#include "clang/Basic/OpenMPKinds.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/CodeGen/ConstantInitBuilder.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/ADT/SetOperations.h"
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include "clang/AST/StmtVisitor.h"
|
||||
#include "clang/Basic/Builtins.h"
|
||||
#include "clang/Basic/PrettyStackTrace.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "CodeGenModule.h"
|
||||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/Type.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "clang/AST/Attr.h"
|
||||
#include "clang/AST/Comment.h"
|
||||
#include "clang/AST/CommentVisitor.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Format/Format.h"
|
||||
#include "clang/Index/USRGeneration.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "FileIndexRecord.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/SmallString.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "clang/AST/LocInfoType.h"
|
||||
#include "clang/AST/TypeLoc.h"
|
||||
#include "clang/Basic/LangOptions.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Sema/ParsedTemplate.h"
|
||||
#include "clang/Sema/Sema.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "clang/AST/StmtCXX.h"
|
||||
#include "clang/Basic/DiagnosticOptions.h"
|
||||
#include "clang/Basic/PartialDiagnostic.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/Stack.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Lex/HeaderSearch.h"
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "clang/AST/ExprOpenMP.h"
|
||||
#include "clang/AST/TypeLoc.h"
|
||||
#include "clang/Basic/CharInfo.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Sema/Designator.h"
|
||||
#include "clang/Sema/Initialization.h"
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "clang/Basic/Diagnostic.h"
|
||||
#include "clang/Basic/DiagnosticOptions.h"
|
||||
#include "clang/Basic/PartialDiagnostic.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Basic/TargetInfo.h"
|
||||
#include "clang/Sema/Initialization.h"
|
||||
#include "clang/Sema/Lookup.h"
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
// This file implements C++ template instantiation for declarations.
|
||||
//
|
||||
//===----------------------------------------------------------------------===/
|
||||
|
||||
#include "clang/Sema/SemaInternal.h"
|
||||
#include "clang/AST/ASTConsumer.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
|
@ -19,6 +20,7 @@
|
|||
#include "clang/AST/ExprCXX.h"
|
||||
#include "clang/AST/PrettyDeclStackTrace.h"
|
||||
#include "clang/AST/TypeLoc.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Sema/Initialization.h"
|
||||
#include "clang/Sema/Lookup.h"
|
||||
#include "clang/Sema/Template.h"
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "clang/Tooling/ASTDiff/ASTDiff.h"
|
||||
|
||||
#include "clang/AST/ParentMapContext.h"
|
||||
#include "clang/AST/RecursiveASTVisitor.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/ADT/PriorityQueue.h"
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "clang/AST/DeclCXX.h"
|
||||
#include "clang/AST/DeclarationName.h"
|
||||
#include "clang/Basic/SourceLocation.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
using namespace clang;
|
||||
using namespace clang::tooling;
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "clang/AST/AST.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/RecursiveASTVisitor.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Index/USRGeneration.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "clang/Tooling/Refactoring/RecursiveSymbolVisitor.h"
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
#include "clang/AST/DeclCXX.h"
|
||||
#include "clang/AST/DeclTemplate.h"
|
||||
#include "clang/AST/Expr.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
#include "clang/Lex/Lexer.h"
|
||||
#include "llvm/Support/Errc.h"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "lldb/Utility/Log.h"
|
||||
#include "clang/AST/ASTContext.h"
|
||||
#include "clang/AST/RecordLayout.h"
|
||||
#include "clang/Basic/SourceManager.h"
|
||||
|
||||
#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
|
||||
#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
|
||||
|
|
Loading…
Reference in New Issue