diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-11-06 06:39:47 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-11-06 06:39:47 +0000 |
| commit | 8ffd129950ba6ed3fc77db1867c9f58b6dc4f965 (patch) | |
| tree | 11fb243110bd73cf0f1574ff951a126eedf8d9c4 /llvm/utils/TableGen/AsmMatcherEmitter.cpp | |
| parent | 7232697fed64cafff3e8b81cd3fe9c5d37851b88 (diff) | |
| download | bcm5719-llvm-8ffd129950ba6ed3fc77db1867c9f58b6dc4f965.tar.gz bcm5719-llvm-8ffd129950ba6ed3fc77db1867c9f58b6dc4f965.zip | |
disolve a hack, having CodeGenInstAlias decode the alias in the .td
file instead of the asmmatcher.
llvm-svn: 118324
Diffstat (limited to 'llvm/utils/TableGen/AsmMatcherEmitter.cpp')
| -rw-r--r-- | llvm/utils/TableGen/AsmMatcherEmitter.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp index 75bcc046f69..7d5ec6210be 100644 --- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp +++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp @@ -355,12 +355,8 @@ struct MatchableInfo { MatchableInfo(const CodeGenInstAlias *Alias) : TheDef(Alias->TheDef), DefRec(Alias), TheOperandList(Alias->Operands), AsmString(Alias->AsmString) { - - // FIXME: Huge hack. - DefInit *DI = dynamic_cast<DefInit*>(Alias->Result->getOperator()); - assert(DI); - - InstrName = DI->getDef()->getName(); + // FIXME: InstrName should be a CGI. + InstrName = Alias->ResultInst->TheDef->getName(); } void Initialize(const AsmMatcherInfo &Info, @@ -1066,7 +1062,7 @@ void AsmMatcherInfo::BuildInfo() { std::vector<Record*> AllInstAliases = Records.getAllDerivedDefinitions("InstAlias"); for (unsigned i = 0, e = AllInstAliases.size(); i != e; ++i) { - CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i]); + CodeGenInstAlias *Alias = new CodeGenInstAlias(AllInstAliases[i], Target); OwningPtr<MatchableInfo> II(new MatchableInfo(Alias)); @@ -1117,11 +1113,9 @@ void AsmMatcherInfo::BuildInfo() { OperandName = Token.substr(1); if (II->DefRec.is<const CodeGenInstruction*>()) - BuildInstructionOperandReference(II, - OperandName, Op); + BuildInstructionOperandReference(II, OperandName, Op); else - BuildAliasOperandReference(II, - OperandName, Op); + BuildAliasOperandReference(II, OperandName, Op); } II->BuildResultOperands(); |

