From c0a7007d3a6a7bb31eec568b9dfdb8fb137702e5 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Mon, 24 Jan 2011 23:26:31 +0000 Subject: [PATCH] tblgen/AsmMatcherEmitter: Fix alias handling to honor -match-prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124154 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/TableGen/AsmMatcherEmitter.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index 082b1c5f3e9..a2c5de3e1e6 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -1090,6 +1090,13 @@ void AsmMatcherInfo::BuildInfo() { for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) { CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i], Target); + // If the tblgen -match-prefix option is specified (for tblgen hackers), + // filter the set of instruction aliases we consider, based on the target + // instruction. + if (!StringRef(Alias->ResultInst->TheDef->getName()).startswith( + MatchPrefix)) + continue; + OwningPtr II(new MatchableInfo(Alias)); II->Initialize(*this, SingletonRegisters); @@ -1708,6 +1715,10 @@ static std::string GetAliasRequiredFeatures(Record *R, /// EmitMnemonicAliases - If the target has any MnemonicAlias<> definitions, /// emit a function for them and return true, otherwise return false. static bool EmitMnemonicAliases(raw_ostream &OS, const AsmMatcherInfo &Info) { + // Ignore aliases when match-prefix is set. + if (!MatchPrefix.empty()) + return false; + std::vector Aliases = Info.getRecords().getAllDerivedDefinitions("MnemonicAlias"); if (Aliases.empty()) return false;