aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-06 06:45:08 +0000
committerChris Lattner <sabre@nondot.org>2010-11-06 06:45:08 +0000
commit9cdf42858960b9903587c39d5341cf63b3e665db (patch)
tree19e8386b949743712f990593178cd66298800bba
parent5abd1ebcb380664ae5010395b217e01f7190046c (diff)
downloadexternal_llvm-9cdf42858960b9903587c39d5341cf63b3e665db.zip
external_llvm-9cdf42858960b9903587c39d5341cf63b3e665db.tar.gz
external_llvm-9cdf42858960b9903587c39d5341cf63b3e665db.tar.bz2
simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118326 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--utils/TableGen/AsmMatcherEmitter.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp
index 404cc23..093c46f 100644
--- a/utils/TableGen/AsmMatcherEmitter.cpp
+++ b/utils/TableGen/AsmMatcherEmitter.cpp
@@ -306,9 +306,6 @@ struct MatchableInfo {
}
};
- /// ResultInst - The result instruction generated.
- const CodeGenInstruction *ResultInst;
-
/// TheDef - This is the definition of the instruction or InstAlias that this
/// matchable came from.
Record *const TheDef;
@@ -349,13 +346,11 @@ struct MatchableInfo {
MatchableInfo(const CodeGenInstruction &CGI)
: TheDef(CGI.TheDef), DefRec(&CGI),
TheOperandList(CGI.Operands), AsmString(CGI.AsmString) {
- ResultInst = &CGI;
}
MatchableInfo(const CodeGenInstAlias *Alias)
: TheDef(Alias->TheDef), DefRec(Alias), TheOperandList(Alias->Operands),
AsmString(Alias->AsmString) {
- ResultInst = Alias->ResultInst;
}
void Initialize(const AsmMatcherInfo &Info,
@@ -1821,7 +1816,14 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
it != ie; ++it) {
MatchableInfo &II = **it;
- OS << " { " << Target.getName() << "::" << II.ResultInst->TheDef->getName()
+
+ const CodeGenInstruction *ResultInst;
+ if (II.DefRec.is<const CodeGenInstruction*>())
+ ResultInst = II.DefRec.get<const CodeGenInstruction*>();
+ else
+ ResultInst = II.DefRec.get<const CodeGenInstAlias*>()->ResultInst;
+
+ OS << " { " << Target.getName() << "::" << ResultInst->TheDef->getName()
<< ", \"" << II.Mnemonic << "\""
<< ", " << II.ConversionFnKind << ", { ";
for (unsigned i = 0, e = II.AsmOperands.size(); i != e; ++i) {