]> granicus.if.org Git - clang/commitdiff
Avoid calling getSpelling at all for identifiers, which are
authorChris Lattner <sabre@nondot.org>
Mon, 23 Jul 2007 06:14:36 +0000 (06:14 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 23 Jul 2007 06:14:36 +0000 (06:14 +0000)
trivial to handle and very very common.  This speeds up -E on
447.dealII by 2.5%

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40422 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/PrintPreprocessedOutput.cpp

index a7d55df34b4a10932b03e124d251e1fe9fd6de6e..d1f1cef9855fdbbc156c967b53f7c38abc04369b 100644 (file)
@@ -517,7 +517,11 @@ void clang::DoPrintPreprocessedInput(unsigned MainFileID, Preprocessor &PP,
       OutputChar(' ');
     }
     
-    if (Tok.getLength() < 256) {
+    if (IdentifierInfo *II = Tok.getIdentifierInfo()) {
+      const char *Str = II->getName();
+      unsigned Len = Tok.needsCleaning() ? strlen(Str) : Tok.getLength();
+      OutputString(Str, Len);
+    } else if (Tok.getLength() < 256) {
       const char *TokPtr = Buffer;
       unsigned Len = PP.getSpelling(Tok, TokPtr);
       OutputString(TokPtr, Len);