From 0bc993737a97ab98688d8f2099c482d3f9322e60 Mon Sep 17 00:00:00 2001 From: Vedant Kumar Date: Thu, 7 Jul 2016 22:38:29 +0000 Subject: [PATCH] [Lex] Speed up updateConsecutiveMacroArgTokens (NFC) SM.isWrittenInSameFile() calls getFileID(), which can be expensive. Move this check behind some cheaper filters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274800 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Lex/TokenLexer.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/Lex/TokenLexer.cpp b/lib/Lex/TokenLexer.cpp index 7f3be700c6..994bae632a 100644 --- a/lib/Lex/TokenLexer.cpp +++ b/lib/Lex/TokenLexer.cpp @@ -787,9 +787,6 @@ static void updateConsecutiveMacroArgTokens(SourceManager &SM, 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 updateConsecutiveMacroArgTokens(SourceManager &SM, // "characters" away. if (RelOffs < 0 || RelOffs > 50) break; + + if (CurLoc.isMacroID() && !SM.isWrittenInSameFile(CurLoc, NextLoc)) + break; // Token from a different macro. + CurLoc = NextLoc; } -- 2.40.0