Revert "[clang][SourceManager] cache Macro Expansions"
authorNick Desaulniers <ndesaulniers@google.com>
Mon, 29 Jun 2020 19:41:56 +0000 (12:41 -0700)
committerNick Desaulniers <ndesaulniers@google.com>
Mon, 29 Jun 2020 19:54:32 +0000 (12:54 -0700)
This reverts commit dffc1420451f674731cb36799c8ae084104ff0b5.

Missed a hunk (D82690).

clang/lib/Basic/SourceManager.cpp

index 5c5a997..425bef7 100644 (file)
@@ -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;
     }