diff options
author | Nick Desaulniers <ndesaulniers@google.com> | 2020-06-29 12:41:56 -0700 |
---|---|---|
committer | Nick Desaulniers <ndesaulniers@google.com> | 2020-06-29 12:54:32 -0700 |
commit | 7c2cb1448ad2d20e251db5e3ae4a0c84c12aa970 (patch) | |
tree | bd9be040d9ea22858b01200760eac4f3adb88a71 /clang/lib/Basic/SourceManager.cpp | |
parent | c5a6ee16f2f6cd7fd46616ba6808a98da53e71bd (diff) | |
download | llvm-7c2cb1448ad2d20e251db5e3ae4a0c84c12aa970.zip llvm-7c2cb1448ad2d20e251db5e3ae4a0c84c12aa970.tar.gz llvm-7c2cb1448ad2d20e251db5e3ae4a0c84c12aa970.tar.bz2 |
Revert "[clang][SourceManager] cache Macro Expansions"
This reverts commit dffc1420451f674731cb36799c8ae084104ff0b5.
Missed a hunk (D82690).
Diffstat (limited to 'clang/lib/Basic/SourceManager.cpp')
-rw-r--r-- | clang/lib/Basic/SourceManager.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index 5c5a997..425bef7 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -861,8 +861,11 @@ FileID SourceManager::getFileIDLocal(unsigned SLocOffset) const { --I; if (I->getOffset() <= SLocOffset) { FileID Res = FileID::get(int(I - LocalSLocEntryTable.begin())); - // Remember it. We have good locality across FileID lookups. - LastFileIDLookup = Res; + + // If this isn't an expansion, remember it. We have good locality across + // FileID lookups. + if (!I->isExpansion()) + LastFileIDLookup = Res; NumLinearScans += NumProbes+1; return Res; } @@ -937,7 +940,9 @@ FileID SourceManager::getFileIDLoaded(unsigned SLocOffset) const { const SrcMgr::SLocEntry &E = getLoadedSLocEntry(I); if (E.getOffset() <= SLocOffset) { FileID Res = FileID::get(-int(I) - 2); - LastFileIDLookup = Res; + + if (!E.isExpansion()) + LastFileIDLookup = Res; NumLinearScans += NumProbes + 1; return Res; } @@ -970,7 +975,8 @@ FileID SourceManager::getFileIDLoaded(unsigned SLocOffset) const { if (isOffsetInFileID(FileID::get(-int(MiddleIndex) - 2), SLocOffset)) { FileID Res = FileID::get(-int(MiddleIndex) - 2); - LastFileIDLookup = Res; + if (!E.isExpansion()) + LastFileIDLookup = Res; NumBinaryProbes += NumProbes; return Res; } |