mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 23:18:58 +00:00
[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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316640 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
34837ae7a0
commit
939e970215
@ -3297,7 +3297,7 @@ bool AArch64AsmParser::validateInstruction(MCInst &Inst,
|
||||
}
|
||||
}
|
||||
|
||||
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 LLVMInitializeAArch64AsmParser() {
|
||||
#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
|
||||
|
@ -9040,7 +9040,7 @@ unsigned ARMAsmParser::MatchInstruction(OperandVector &Operands, MCInst &Inst,
|
||||
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 LLVMInitializeARMAsmParser() {
|
||||
#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
|
||||
|
@ -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(OperandVector &Operands,
|
||||
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,
|
||||
|
@ -2823,7 +2823,8 @@ static void emitCustomOperandParsing(raw_ostream &OS, CodeGenTarget &Target,
|
||||
|
||||
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) {
|
||||
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 &OS) {
|
||||
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 {
|
||||
|
Loading…
Reference in New Issue
Block a user