[clang-tools-extra] r343223 - [clangd] Make IncludeInserter less slow. NFC
Eric Liu via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 27 07:27:02 PDT 2018
Author: ioeric
Date: Thu Sep 27 07:27:02 2018
New Revision: 343223
URL: http://llvm.org/viewvc/llvm-project?rev=343223&view=rev
Log:
[clangd] Make IncludeInserter less slow. NFC
Modified:
clang-tools-extra/trunk/clangd/Headers.cpp
clang-tools-extra/trunk/clangd/Headers.h
Modified: clang-tools-extra/trunk/clangd/Headers.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/Headers.cpp?rev=343223&r1=343222&r2=343223&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/Headers.cpp (original)
+++ clang-tools-extra/trunk/clangd/Headers.cpp Thu Sep 27 07:27:02 2018
@@ -126,6 +126,12 @@ IncludeStructure::includeDepth(llvm::Str
return Result;
}
+void IncludeInserter::addExisting(const Inclusion &Inc) {
+ IncludedHeaders.insert(Inc.Written);
+ if (!Inc.Resolved.empty())
+ IncludedHeaders.insert(Inc.Resolved);
+}
+
/// FIXME(ioeric): we might not want to insert an absolute include path if the
/// path is not shortened.
bool IncludeInserter::shouldInsertInclude(
@@ -133,12 +139,6 @@ bool IncludeInserter::shouldInsertInclud
assert(DeclaringHeader.valid() && InsertedHeader.valid());
if (FileName == DeclaringHeader.File || FileName == InsertedHeader.File)
return false;
- llvm::StringSet<> IncludedHeaders;
- for (const auto &Inc : Inclusions) {
- IncludedHeaders.insert(Inc.Written);
- if (!Inc.Resolved.empty())
- IncludedHeaders.insert(Inc.Resolved);
- }
auto Included = [&](llvm::StringRef Header) {
return IncludedHeaders.find(Header) != IncludedHeaders.end();
};
Modified: clang-tools-extra/trunk/clangd/Headers.h
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/Headers.h?rev=343223&r1=343222&r2=343223&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/Headers.h (original)
+++ clang-tools-extra/trunk/clangd/Headers.h Thu Sep 27 07:27:02 2018
@@ -97,7 +97,7 @@ public:
HeaderSearchInfo(HeaderSearchInfo),
Inserter(FileName, Code, Style.IncludeStyle) {}
- void addExisting(Inclusion Inc) { Inclusions.push_back(std::move(Inc)); }
+ void addExisting(const Inclusion &Inc);
/// Checks whether to add an #include of the header into \p File.
/// An #include will not be added if:
@@ -134,8 +134,8 @@ private:
StringRef Code;
StringRef BuildDir;
HeaderSearch &HeaderSearchInfo;
- std::vector<Inclusion> Inclusions;
- tooling::HeaderIncludes Inserter; // Computers insertion replacement.
+ llvm::StringSet<> IncludedHeaders; // Both written and resolved.
+ tooling::HeaderIncludes Inserter; // Computers insertion replacement.
};
} // namespace clangd
More information about the cfe-commits
mailing list