From b8d6e98e566724f58344d275a4bd675249bb713a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 9 Feb 2010 00:34:28 +0000 Subject: [PATCH] pass stringref by value instead of by const& git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95627 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/AsmParser/X86AsmLexer.cpp | 2 +- lib/Target/X86/AsmParser/X86AsmParser.cpp | 3 ++- utils/TableGen/AsmMatcherEmitter.cpp | 20 ++++++++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/Target/X86/AsmParser/X86AsmLexer.cpp b/lib/Target/X86/AsmParser/X86AsmLexer.cpp index d7075160788..a58f58e0332 100644 --- a/lib/Target/X86/AsmParser/X86AsmLexer.cpp +++ b/lib/Target/X86/AsmParser/X86AsmLexer.cpp @@ -69,7 +69,7 @@ public: } -static unsigned MatchRegisterName(const StringRef &Name); +static unsigned MatchRegisterName(StringRef Name); AsmToken X86AsmLexer::LexTokenATT() { const AsmToken lexedToken = lexDefinite(); diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index b5e5f8b137e..10b00d54597 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -67,7 +67,7 @@ public: /// @name Auto-generated Match Functions /// { -static unsigned MatchRegisterName(const StringRef &Name); +static unsigned MatchRegisterName(StringRef Name); /// } @@ -291,6 +291,7 @@ bool X86ATTAsmParser::ParseRegister(unsigned &RegNo, // FIXME: Validate register for the current architecture; we have to do // validation later, so maybe there is no need for this here. RegNo = MatchRegisterName(Tok.getString()); + if (RegNo == 0) return Error(Tok.getLoc(), "invalid register name"); diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index c80285fa377..6d997ba7745 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -140,7 +140,7 @@ static std::string FlattenVariants(const std::string &AsmString, } /// TokenizeAsmString - Tokenize a simplified assembly string. -static void TokenizeAsmString(const StringRef &AsmString, +static void TokenizeAsmString(StringRef AsmString, SmallVectorImpl &Tokens) { unsigned Prev = 0; bool InTok = true; @@ -207,7 +207,7 @@ static void TokenizeAsmString(const StringRef &AsmString, Tokens.push_back(AsmString.substr(Prev)); } -static bool IsAssemblerInstruction(const StringRef &Name, +static bool IsAssemblerInstruction(StringRef Name, const CodeGenInstruction &CGI, const SmallVectorImpl &Tokens) { // Ignore "codegen only" instructions. @@ -528,10 +528,10 @@ private: private: /// getTokenClass - Lookup or create the class for the given token. - ClassInfo *getTokenClass(const StringRef &Token); + ClassInfo *getTokenClass(StringRef Token); /// getOperandClass - Lookup or create the class for the given operand. - ClassInfo *getOperandClass(const StringRef &Token, + ClassInfo *getOperandClass(StringRef Token, const CodeGenInstruction::OperandInfo &OI); /// BuildRegisterClasses - Build the ClassInfo* instances for register @@ -581,7 +581,7 @@ void InstructionInfo::dump() { } } -static std::string getEnumNameForToken(const StringRef &Str) { +static std::string getEnumNameForToken(StringRef Str) { std::string Res; for (StringRef::iterator it = Str.begin(), ie = Str.end(); it != ie; ++it) { @@ -603,7 +603,7 @@ static std::string getEnumNameForToken(const StringRef &Str) { } /// getRegisterRecord - Get the register record for \arg name, or 0. -static Record *getRegisterRecord(CodeGenTarget &Target, const StringRef &Name) { +static Record *getRegisterRecord(CodeGenTarget &Target, StringRef Name) { for (unsigned i = 0, e = Target.getRegisters().size(); i != e; ++i) { const CodeGenRegister &Reg = Target.getRegisters()[i]; if (Name == Reg.TheDef->getValueAsString("AsmName")) @@ -613,7 +613,7 @@ static Record *getRegisterRecord(CodeGenTarget &Target, const StringRef &Name) { return 0; } -ClassInfo *AsmMatcherInfo::getTokenClass(const StringRef &Token) { +ClassInfo *AsmMatcherInfo::getTokenClass(StringRef Token) { ClassInfo *&Entry = TokenClasses[Token]; if (!Entry) { @@ -631,7 +631,7 @@ ClassInfo *AsmMatcherInfo::getTokenClass(const StringRef &Token) { } ClassInfo * -AsmMatcherInfo::getOperandClass(const StringRef &Token, +AsmMatcherInfo::getOperandClass(StringRef Token, const CodeGenInstruction::OperandInfo &OI) { if (OI.Rec->isSubClassOf("RegisterClass")) { ClassInfo *CI = RegisterClassClasses[OI.Rec]; @@ -1373,7 +1373,7 @@ static void EmitMatchTokenString(CodeGenTarget &Target, Matches.push_back(StringPair(CI.ValueName, "return " + CI.Name + ";")); } - OS << "static MatchClassKind MatchTokenString(const StringRef &Name) {\n"; + OS << "static MatchClassKind MatchTokenString(StringRef Name) {\n"; EmitStringMatcher("Name", Matches, OS); @@ -1396,7 +1396,7 @@ static void EmitMatchRegisterName(CodeGenTarget &Target, Record *AsmParser, "return " + utostr(i + 1) + ";")); } - OS << "static unsigned MatchRegisterName(const StringRef &Name) {\n"; + OS << "static unsigned MatchRegisterName(StringRef Name) {\n"; EmitStringMatcher("Name", Matches, OS); -- 2.34.1