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; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits