[cfe-commits] r59474 - /cfe/trunk/lib/Lex/PPDirectives.cpp
Ted Kremenek
kremenek at apple.com
Mon Nov 17 16:34:22 PST 2008
Author: kremenek
Date: Mon Nov 17 18:34:22 2008
New Revision: 59474
URL: http://llvm.org/viewvc/llvm-project?rev=59474&view=rev
Log:
Change a bunch of uses of 'CurLexer->' to 'CurPPLexer->', which should be the
alias for the current PreprocessorLexer. No functionality change. Performance
testing shows this results in no performance degradation when preprocessing
Cocoa.h.
Modified:
cfe/trunk/lib/Lex/PPDirectives.cpp
Modified: cfe/trunk/lib/Lex/PPDirectives.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPDirectives.cpp?rev=59474&r1=59473&r2=59474&view=diff
==============================================================================
--- cfe/trunk/lib/Lex/PPDirectives.cpp (original)
+++ cfe/trunk/lib/Lex/PPDirectives.cpp Mon Nov 17 18:34:22 2008
@@ -118,12 +118,12 @@
assert(CurTokenLexer == 0 && CurLexer &&
"Lexing a macro, not a file?");
- CurLexer->pushConditionalLevel(IfTokenLoc, /*isSkipping*/false,
+ CurPPLexer->pushConditionalLevel(IfTokenLoc, /*isSkipping*/false,
FoundNonSkipPortion, FoundElse);
// Enter raw mode to disable identifier lookup (and thus macro expansion),
// disabling warnings, etc.
- CurLexer->LexingRawMode = true;
+ CurPPLexer->LexingRawMode = true;
Token Tok;
while (1) {
CurLexer->Lex(Tok);
@@ -132,10 +132,10 @@
if (Tok.is(tok::eof)) {
// Emit errors for each unterminated conditional on the stack, including
// the current one.
- while (!CurLexer->ConditionalStack.empty()) {
- Diag(CurLexer->ConditionalStack.back().IfLoc,
+ while (!CurPPLexer->ConditionalStack.empty()) {
+ Diag(CurPPLexer->ConditionalStack.back().IfLoc,
diag::err_pp_unterminated_conditional);
- CurLexer->ConditionalStack.pop_back();
+ CurPPLexer->ConditionalStack.pop_back();
}
// Just return and let the caller lex after this #include.
@@ -149,7 +149,7 @@
// We just parsed a # character at the start of a line, so we're in
// directive mode. Tell the lexer this so any newlines we see will be
// converted into an EOM token (this terminates the macro).
- CurLexer->ParsingPreprocessorDirective = true;
+ CurPPLexer->ParsingPreprocessorDirective = true;
CurLexer->SetCommentRetentionState(false);
@@ -159,7 +159,7 @@
// If this isn't an identifier directive (e.g. is "# 1\n" or "#\n", or
// something bogus), skip it.
if (Tok.isNot(tok::identifier)) {
- CurLexer->ParsingPreprocessorDirective = false;
+ CurPPLexer->ParsingPreprocessorDirective = false;
// Restore comment saving mode.
CurLexer->SetCommentRetentionState(KeepComments);
continue;
@@ -174,7 +174,7 @@
char FirstChar = RawCharData[0];
if (FirstChar >= 'a' && FirstChar <= 'z' &&
FirstChar != 'i' && FirstChar != 'e') {
- CurLexer->ParsingPreprocessorDirective = false;
+ CurPPLexer->ParsingPreprocessorDirective = false;
// Restore comment saving mode.
CurLexer->SetCommentRetentionState(KeepComments);
continue;
@@ -195,7 +195,7 @@
std::string DirectiveStr = getSpelling(Tok);
IdLen = DirectiveStr.size();
if (IdLen >= 20) {
- CurLexer->ParsingPreprocessorDirective = false;
+ CurPPLexer->ParsingPreprocessorDirective = false;
// Restore comment saving mode.
CurLexer->SetCommentRetentionState(KeepComments);
continue;
@@ -211,7 +211,7 @@
// We know the entire #if/#ifdef/#ifndef block will be skipped, don't
// bother parsing the condition.
DiscardUntilEndOfDirective();
- CurLexer->pushConditionalLevel(Tok.getLocation(), /*wasskipping*/true,
+ CurPPLexer->pushConditionalLevel(Tok.getLocation(), /*wasskipping*/true,
/*foundnonskip*/false,
/*fnddelse*/false);
}
@@ -220,7 +220,7 @@
CheckEndOfDirective("#endif");
PPConditionalInfo CondInfo;
CondInfo.WasSkipping = true; // Silence bogus warning.
- bool InCond = CurLexer->popConditionalLevel(CondInfo);
+ bool InCond = CurPPLexer->popConditionalLevel(CondInfo);
InCond = InCond; // Silence warning in no-asserts mode.
assert(!InCond && "Can't be skipping if not in a conditional!");
@@ -232,7 +232,7 @@
// skipping conditional, and if #else hasn't already been seen, enter it
// as a non-skipping conditional.
CheckEndOfDirective("#else");
- PPConditionalInfo &CondInfo = CurLexer->peekConditionalLevel();
+ PPConditionalInfo &CondInfo = CurPPLexer->peekConditionalLevel();
// If this is a #else with a #else before it, report the error.
if (CondInfo.FoundElse) Diag(Tok, diag::pp_err_else_after_else);
@@ -247,7 +247,7 @@
break;
}
} else if (IdLen == 4 && !strcmp(Directive+1, "lif")) { // "elif".
- PPConditionalInfo &CondInfo = CurLexer->peekConditionalLevel();
+ PPConditionalInfo &CondInfo = CurPPLexer->peekConditionalLevel();
bool ShouldEnter;
// If this is in a skipping block or if we're already handled this #if
@@ -258,11 +258,11 @@
} else {
// Restore the value of LexingRawMode so that identifiers are
// looked up, etc, inside the #elif expression.
- assert(CurLexer->LexingRawMode && "We have to be skipping here!");
- CurLexer->LexingRawMode = false;
+ assert(CurPPLexer->LexingRawMode && "We have to be skipping here!");
+ CurPPLexer->LexingRawMode = false;
IdentifierInfo *IfNDefMacro = 0;
ShouldEnter = EvaluateDirectiveExpression(IfNDefMacro);
- CurLexer->LexingRawMode = true;
+ CurPPLexer->LexingRawMode = true;
}
// If this is a #elif with a #else before it, report the error.
@@ -276,7 +276,7 @@
}
}
- CurLexer->ParsingPreprocessorDirective = false;
+ CurPPLexer->ParsingPreprocessorDirective = false;
// Restore comment saving mode.
CurLexer->SetCommentRetentionState(KeepComments);
}
@@ -284,7 +284,7 @@
// Finally, if we are out of the conditional (saw an #endif or ran off the end
// of the file, just stop skipping and return to lexing whatever came after
// the #if block.
- CurLexer->LexingRawMode = false;
+ CurPPLexer->LexingRawMode = false;
}
/// LookupFile - Given a "foo" or <foo> reference, look up the indicated file,
@@ -350,14 +350,14 @@
// We just parsed a # character at the start of a line, so we're in directive
// mode. Tell the lexer this so any newlines we see will be converted into an
// EOM token (which terminates the directive).
- CurLexer->ParsingPreprocessorDirective = true;
+ CurPPLexer->ParsingPreprocessorDirective = true;
++NumDirectives;
// We are about to read a token. For the multiple-include optimization FA to
// work, we have to remember if we had read any tokens *before* this
// pp-directive.
- bool ReadAnyTokensBeforeDirective = CurLexer->MIOpt.getHasReadAnyTokensVal();
+ bool ReadAnyTokensBeforeDirective = CurPPLexer->MIOpt.getHasReadAnyTokensVal();
// Read the next token, the directive flavor. This isn't expanded due to
// C99 6.10.3p8.
@@ -607,7 +607,7 @@
bool isImport) {
Token FilenameTok;
- CurLexer->LexIncludeFilename(FilenameTok);
+ CurPPLexer->LexIncludeFilename(FilenameTok);
// Reserve a buffer to get the spelling.
llvm::SmallVector<char, 128> FilenameBuffer;
@@ -848,7 +848,7 @@
// Forget about MI.
delete MI;
// Throw away the rest of the line.
- if (CurLexer->ParsingPreprocessorDirective)
+ if (CurPPLexer->ParsingPreprocessorDirective)
DiscardUntilEndOfDirective();
return;
}
@@ -1027,13 +1027,13 @@
// Check to see if this is the last token on the #if[n]def line.
CheckEndOfDirective(isIfndef ? "#ifndef" : "#ifdef");
- if (CurLexer->getConditionalStackDepth() == 0) {
+ if (CurPPLexer->getConditionalStackDepth() == 0) {
// If the start of a top-level #ifdef, inform MIOpt.
if (!ReadAnyTokensBeforeDirective) {
assert(isIfndef && "#ifdef shouldn't reach here");
- CurLexer->MIOpt.EnterTopLevelIFNDEF(MacroNameTok.getIdentifierInfo());
+ CurPPLexer->MIOpt.EnterTopLevelIFNDEF(MacroNameTok.getIdentifierInfo());
} else
- CurLexer->MIOpt.EnterTopLevelConditional();
+ CurPPLexer->MIOpt.EnterTopLevelConditional();
}
IdentifierInfo *MII = MacroNameTok.getIdentifierInfo();
@@ -1046,7 +1046,7 @@
// Should we include the stuff contained by this directive?
if (!MI == isIfndef) {
// Yes, remember that we are inside a conditional, then lex the next token.
- CurLexer->pushConditionalLevel(DirectiveTok.getLocation(), /*wasskip*/false,
+ CurPPLexer->pushConditionalLevel(DirectiveTok.getLocation(), /*wasskip*/false,
/*foundnonskip*/true, /*foundelse*/false);
} else {
// No, skip the contents of this block and return the first token after it.
@@ -1069,17 +1069,17 @@
// If this condition is equivalent to #ifndef X, and if this is the first
// directive seen, handle it for the multiple-include optimization.
- if (CurLexer->getConditionalStackDepth() == 0) {
+ if (CurPPLexer->getConditionalStackDepth() == 0) {
if (!ReadAnyTokensBeforeDirective && IfNDefMacro)
- CurLexer->MIOpt.EnterTopLevelIFNDEF(IfNDefMacro);
+ CurPPLexer->MIOpt.EnterTopLevelIFNDEF(IfNDefMacro);
else
- CurLexer->MIOpt.EnterTopLevelConditional();
+ CurPPLexer->MIOpt.EnterTopLevelConditional();
}
// Should we include the stuff contained by this directive?
if (ConditionalTrue) {
// Yes, remember that we are inside a conditional, then lex the next token.
- CurLexer->pushConditionalLevel(IfToken.getLocation(), /*wasskip*/false,
+ CurPPLexer->pushConditionalLevel(IfToken.getLocation(), /*wasskip*/false,
/*foundnonskip*/true, /*foundelse*/false);
} else {
// No, skip the contents of this block and return the first token after it.
@@ -1097,16 +1097,16 @@
CheckEndOfDirective("#endif");
PPConditionalInfo CondInfo;
- if (CurLexer->popConditionalLevel(CondInfo)) {
+ if (CurPPLexer->popConditionalLevel(CondInfo)) {
// No conditionals on the stack: this is an #endif without an #if.
return Diag(EndifToken, diag::err_pp_endif_without_if);
}
// If this the end of a top-level #endif, inform MIOpt.
- if (CurLexer->getConditionalStackDepth() == 0)
- CurLexer->MIOpt.ExitTopLevelConditional();
+ if (CurPPLexer->getConditionalStackDepth() == 0)
+ CurPPLexer->MIOpt.ExitTopLevelConditional();
- assert(!CondInfo.WasSkipping && !CurLexer->LexingRawMode &&
+ assert(!CondInfo.WasSkipping && !CurPPLexer->LexingRawMode &&
"This code should only be reachable in the non-skipping case!");
}
@@ -1118,12 +1118,12 @@
CheckEndOfDirective("#else");
PPConditionalInfo CI;
- if (CurLexer->popConditionalLevel(CI))
+ if (CurPPLexer->popConditionalLevel(CI))
return Diag(Result, diag::pp_err_else_without_if);
// If this is a top-level #else, inform the MIOpt.
- if (CurLexer->getConditionalStackDepth() == 0)
- CurLexer->MIOpt.EnterTopLevelConditional();
+ if (CurPPLexer->getConditionalStackDepth() == 0)
+ CurPPLexer->MIOpt.EnterTopLevelConditional();
// If this is a #else with a #else before it, report the error.
if (CI.FoundElse) Diag(Result, diag::pp_err_else_after_else);
@@ -1143,12 +1143,12 @@
DiscardUntilEndOfDirective();
PPConditionalInfo CI;
- if (CurLexer->popConditionalLevel(CI))
+ if (CurPPLexer->popConditionalLevel(CI))
return Diag(ElifToken, diag::pp_err_elif_without_if);
// If this is a top-level #elif, inform the MIOpt.
- if (CurLexer->getConditionalStackDepth() == 0)
- CurLexer->MIOpt.EnterTopLevelConditional();
+ if (CurPPLexer->getConditionalStackDepth() == 0)
+ CurPPLexer->MIOpt.EnterTopLevelConditional();
// If this is a #elif with a #else before it, report the error.
if (CI.FoundElse) Diag(ElifToken, diag::pp_err_elif_after_else);
More information about the cfe-commits
mailing list