r274800 - [Lex] Speed up updateConsecutiveMacroArgTokens (NFC)

Vedant Kumar via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 7 15:38:30 PDT 2016


Author: vedantk
Date: Thu Jul  7 17:38:29 2016
New Revision: 274800

URL: http://llvm.org/viewvc/llvm-project?rev=274800&view=rev
Log:
[Lex] Speed up updateConsecutiveMacroArgTokens (NFC)

SM.isWrittenInSameFile() calls getFileID(), which can be expensive.
Move this check behind some cheaper filters.

Modified:
    cfe/trunk/lib/Lex/TokenLexer.cpp

Modified: cfe/trunk/lib/Lex/TokenLexer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/TokenLexer.cpp?rev=274800&r1=274799&r2=274800&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/TokenLexer.cpp (original)
+++ cfe/trunk/lib/Lex/TokenLexer.cpp Thu Jul  7 17:38:29 2016
@@ -787,9 +787,6 @@ static void updateConsecutiveMacroArgTok
     if (CurLoc.isFileID() != NextLoc.isFileID())
       break; // Token from different kind of FileID.
 
-    if (CurLoc.isMacroID() && !SM.isWrittenInSameFile(CurLoc, NextLoc))
-      break; // Token from a different macro.
-
     int RelOffs;
     if (!SM.isInSameSLocAddrSpace(CurLoc, NextLoc, &RelOffs))
       break; // Token from different local/loaded location.
@@ -797,6 +794,10 @@ static void updateConsecutiveMacroArgTok
     // "characters" away.
     if (RelOffs < 0 || RelOffs > 50)
       break;
+
+    if (CurLoc.isMacroID() && !SM.isWrittenInSameFile(CurLoc, NextLoc))
+      break; // Token from a different macro.
+
     CurLoc = NextLoc;
   }
 




More information about the cfe-commits mailing list