mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-27 05:32:22 +00:00
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
This commit is contained in:
parent
5899a60d2f
commit
c0a7007d3a
@ -1090,6 +1090,13 @@ void AsmMatcherInfo::BuildInfo() {
|
|||||||
for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) {
|
for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) {
|
||||||
CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i], Target);
|
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<MatchableInfo> II(new MatchableInfo(Alias));
|
OwningPtr<MatchableInfo> II(new MatchableInfo(Alias));
|
||||||
|
|
||||||
II->Initialize(*this, SingletonRegisters);
|
II->Initialize(*this, SingletonRegisters);
|
||||||
@ -1708,6 +1715,10 @@ static std::string GetAliasRequiredFeatures(Record *R,
|
|||||||
/// EmitMnemonicAliases - If the target has any MnemonicAlias<> definitions,
|
/// EmitMnemonicAliases - If the target has any MnemonicAlias<> definitions,
|
||||||
/// emit a function for them and return true, otherwise return false.
|
/// emit a function for them and return true, otherwise return false.
|
||||||
static bool EmitMnemonicAliases(raw_ostream &OS, const AsmMatcherInfo &Info) {
|
static bool EmitMnemonicAliases(raw_ostream &OS, const AsmMatcherInfo &Info) {
|
||||||
|
// Ignore aliases when match-prefix is set.
|
||||||
|
if (!MatchPrefix.empty())
|
||||||
|
return false;
|
||||||
|
|
||||||
std::vector<Record*> Aliases =
|
std::vector<Record*> Aliases =
|
||||||
Info.getRecords().getAllDerivedDefinitions("MnemonicAlias");
|
Info.getRecords().getAllDerivedDefinitions("MnemonicAlias");
|
||||||
if (Aliases.empty()) return false;
|
if (Aliases.empty()) return false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user