[cfe-commits] r97324 - /cfe/trunk/lib/Frontend/PrintPreprocessedOutput.cpp
Chris Lattner
clattner at apple.com
Sat Feb 27 09:53:27 PST 2010
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
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list