From: David Peixotto Date: Fri, 6 Dec 2013 23:05:33 +0000 (+0000) Subject: Cache AllowAtInIdentifier as class variable in AsmLexer X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7db4f8d9d84371e16577e826ec2d60ba15e293db;p=oota-llvm.git Cache AllowAtInIdentifier as class variable in AsmLexer This commit caches the value of the AllowAtInIdentifier variable as a class variable in AsmLexer. We do this to avoid repeated MAI queries and string comparisons each time we lex an identifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196622 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCParser/AsmLexer.h b/include/llvm/MC/MCParser/AsmLexer.h index 1b3ab577519..a97b450a46d 100644 --- a/include/llvm/MC/MCParser/AsmLexer.h +++ b/include/llvm/MC/MCParser/AsmLexer.h @@ -30,6 +30,7 @@ class AsmLexer : public MCAsmLexer { const char *CurPtr; const MemoryBuffer *CurBuf; bool isAtStartOfLine; + bool AllowAtInIdentifier; // Cached here to avoid repeated MAI query. void operator=(const AsmLexer&) LLVM_DELETED_FUNCTION; AsmLexer(const AsmLexer&) LLVM_DELETED_FUNCTION; diff --git a/lib/MC/MCParser/AsmLexer.cpp b/lib/MC/MCParser/AsmLexer.cpp index a066e648303..ed98f93758e 100644 --- a/lib/MC/MCParser/AsmLexer.cpp +++ b/lib/MC/MCParser/AsmLexer.cpp @@ -25,6 +25,7 @@ AsmLexer::AsmLexer(const MCAsmInfo &_MAI) : MAI(_MAI) { CurBuf = NULL; CurPtr = NULL; isAtStartOfLine = true; + AllowAtInIdentifier = !StringRef(MAI.getCommentString()).startswith("@"); } AsmLexer::~AsmLexer() { @@ -144,7 +145,6 @@ static bool IsIdentifierChar(char c, bool AllowAt) { (c == '@' && AllowAt) || c == '?'; } AsmToken AsmLexer::LexIdentifier() { - bool AllowAtInIdentifier = !StringRef(MAI.getCommentString()).startswith("@"); // Check for floating point literals. if (CurPtr[-1] == '.' && isdigit(*CurPtr)) { // Disambiguate a .1243foo identifier from a floating literal.