[llvm] r316640 - [AsmParser][TableGen] Make the generated mnemonic spell checker function a file local static function.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 25 23:46:40 PDT 2017
Author: ctopper
Date: Wed Oct 25 23:46:40 2017
New Revision: 316640
URL: http://llvm.org/viewvc/llvm-project?rev=316640&view=rev
Log:
[AsmParser][TableGen] Make the generated mnemonic spell checker function a file local static function.
Also only emit in targets that specificially request it. This is required so we don't get an unused static function error.
Modified:
llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/trunk/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp
Modified: llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp?rev=316640&r1=316639&r2=316640&view=diff
==============================================================================
--- llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp Wed Oct 25 23:46:40 2017
@@ -3297,7 +3297,7 @@ bool AArch64AsmParser::validateInstructi
}
}
-std::string AArch64MnemonicSpellCheck(StringRef S, uint64_t FBS);
+static std::string AArch64MnemonicSpellCheck(StringRef S, uint64_t FBS);
bool AArch64AsmParser::showMatchError(SMLoc Loc, unsigned ErrCode,
OperandVector &Operands) {
@@ -4255,6 +4255,7 @@ extern "C" void LLVMInitializeAArch64Asm
#define GET_REGISTER_MATCHER
#define GET_SUBTARGET_FEATURE_NAME
#define GET_MATCHER_IMPLEMENTATION
+#define GET_MNEMONIC_SPELL_CHECKER
#include "AArch64GenAsmMatcher.inc"
// Define this matcher function after the auto-generated include so we
Modified: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp?rev=316640&r1=316639&r2=316640&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp Wed Oct 25 23:46:40 2017
@@ -9040,7 +9040,7 @@ unsigned ARMAsmParser::MatchInstruction(
return PlainMatchResult;
}
-std::string ARMMnemonicSpellCheck(StringRef S, uint64_t FBS);
+static std::string ARMMnemonicSpellCheck(StringRef S, uint64_t FBS);
static const char *getSubtargetFeatureName(uint64_t Val);
bool ARMAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
@@ -10120,6 +10120,7 @@ extern "C" void LLVMInitializeARMAsmPars
#define GET_REGISTER_MATCHER
#define GET_SUBTARGET_FEATURE_NAME
#define GET_MATCHER_IMPLEMENTATION
+#define GET_MNEMONIC_SPELL_CHECKER
#include "ARMGenAsmMatcher.inc"
// Some diagnostics need to vary with subtarget features, so they are handled
Modified: llvm/trunk/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp?rev=316640&r1=316639&r2=316640&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp (original)
+++ llvm/trunk/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp Wed Oct 25 23:46:40 2017
@@ -543,6 +543,7 @@ public:
#define GET_REGISTER_MATCHER
#define GET_SUBTARGET_FEATURE_NAME
#define GET_MATCHER_IMPLEMENTATION
+#define GET_MNEMONIC_SPELL_CHECKER
#include "SystemZGenAsmMatcher.inc"
// Used for the .insn directives; contains information needed to parse the
@@ -1168,7 +1169,7 @@ bool SystemZAsmParser::parseOperand(Oper
return false;
}
-std::string SystemZMnemonicSpellCheck(StringRef S, uint64_t FBS);
+static std::string SystemZMnemonicSpellCheck(StringRef S, uint64_t FBS);
bool SystemZAsmParser::MatchAndEmitInstruction(SMLoc IDLoc, unsigned &Opcode,
OperandVector &Operands,
Modified: llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp?rev=316640&r1=316639&r2=316640&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp Wed Oct 25 23:46:40 2017
@@ -2823,7 +2823,8 @@ static void emitCustomOperandParsing(raw
static void emitMnemonicSpellChecker(raw_ostream &OS, CodeGenTarget &Target,
unsigned VariantCount) {
- OS << "std::string " << Target.getName() << "MnemonicSpellCheck(StringRef S, uint64_t FBS) {\n";
+ OS << "static std::string " << Target.getName()
+ << "MnemonicSpellCheck(StringRef S, uint64_t FBS) {\n";
if (!VariantCount)
OS << " return \"\";";
else {
@@ -3159,8 +3160,6 @@ void AsmMatcherEmitter::run(raw_ostream
OS << "};\n\n";
}
- emitMnemonicSpellChecker(OS, Target, VariantCount);
-
OS << "#include \"llvm/Support/Debug.h\"\n";
OS << "#include \"llvm/Support/Format.h\"\n\n";
@@ -3576,6 +3575,13 @@ void AsmMatcherEmitter::run(raw_ostream
MaxMnemonicIndex, HasMnemonicFirst);
OS << "#endif // GET_MATCHER_IMPLEMENTATION\n\n";
+
+ OS << "\n#ifdef GET_MNEMONIC_SPELL_CHECKER\n";
+ OS << "#undef GET_MNEMONIC_SPELL_CHECKER\n\n";
+
+ emitMnemonicSpellChecker(OS, Target, VariantCount);
+
+ OS << "#endif // GET_MNEMONIC_SPELL_CHECKER\n\n";
}
namespace llvm {
More information about the llvm-commits
mailing list