On Feb 27, 2010, at 6:22 AM, Benjamin Kramer wrote: > Author: d0k > Date: Sat Feb 27 08:22:08 2010 > New Revision: 97324 > > URL: http://llvm.org/viewvc/llvm-project?rev=97324&view=rev > Log: > Simplify code.
We actually don't want this. This code is highly performance sensitive in the -E path. -Chris > > Modified: > cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp > > Modified: cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp?rev=97324&r1=97323&r2=97324&view=diff > ============================================================================== > --- cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp (original) > +++ cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp Sat Feb 27 08:22:08 > 2010 > @@ -390,7 +390,7 @@ > static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok, > PrintPPOutputPPCallbacks *Callbacks, > llvm::raw_ostream &OS) { > - char Buffer[256]; > + llvm::SmallString<256> Buffer; > Token PrevTok; > while (1) { > > @@ -406,29 +406,13 @@ > OS << ' '; > } > > - if (IdentifierInfo *II = Tok.getIdentifierInfo()) { > - OS << II->getName(); > - } else if (Tok.isLiteral() && !Tok.needsCleaning() && > - Tok.getLiteralData()) { > - OS.write(Tok.getLiteralData(), Tok.getLength()); > - } else if (Tok.getLength() < 256) { > - const char *TokPtr = Buffer; > - unsigned Len = PP.getSpelling(Tok, TokPtr); > - OS.write(TokPtr, Len); > - > - // Tokens that can contain embedded newlines need to adjust our current > - // line number. > - if (Tok.getKind() == tok::comment) > - Callbacks->HandleNewlinesInToken(TokPtr, Len); > - } else { > - std::string S = PP.getSpelling(Tok); > - OS.write(&S[0], S.size()); > - > - // Tokens that can contain embedded newlines need to adjust our current > - // line number. > - if (Tok.getKind() == tok::comment) > - Callbacks->HandleNewlinesInToken(&S[0], S.size()); > - } > + llvm::StringRef Str = PP.getSpelling(Tok, Buffer); > + OS << Str; > + // Tokens that can contain embedded newlines need to adjust our current > + // line number. > + if (Tok.getKind() == tok::comment) > + Callbacks->HandleNewlinesInToken(Str.data(), Str.size()); > + > Callbacks->SetEmittedTokensOnThisLine(); > > if (Tok.is(tok::eof)) break; > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
