summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/GlobalISelEmitter.cpp
diff options
context:
space:
mode:
authorDaniel Sanders <daniel_l_sanders@apple.com>2018-09-25 17:59:02 +0000
committerDaniel Sanders <daniel_l_sanders@apple.com>2018-09-25 17:59:02 +0000
commit06f4ff1952aa8423bd5a2600cbb0cc59c292a3f2 (patch)
tree7a445ca060beff4a49dfa4098d0b1d1280d0593f /llvm/utils/TableGen/GlobalISelEmitter.cpp
parenta55471138d158ed7938ca1b94bd4a1c782540cbf (diff)
downloadbcm5719-llvm-06f4ff1952aa8423bd5a2600cbb0cc59c292a3f2.tar.gz
bcm5719-llvm-06f4ff1952aa8423bd5a2600cbb0cc59c292a3f2.zip
[globalisel][tblgen] Table optimization should consider the C++ code in C++ predicates
This fixes PR39045 llvm-svn: 342997
Diffstat (limited to 'llvm/utils/TableGen/GlobalISelEmitter.cpp')
-rw-r--r--llvm/utils/TableGen/GlobalISelEmitter.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/GlobalISelEmitter.cpp b/llvm/utils/TableGen/GlobalISelEmitter.cpp
index a02f31a8723..03e2f381d9c 100644
--- a/llvm/utils/TableGen/GlobalISelEmitter.cpp
+++ b/llvm/utils/TableGen/GlobalISelEmitter.cpp
@@ -1837,6 +1837,12 @@ public:
static bool classof(const InstructionPredicateMatcher *P) {
return P->getKind() == IPM_GenericPredicate;
}
+ bool isIdentical(const PredicateMatcher &B) const override {
+ return InstructionPredicateMatcher::isIdentical(B) &&
+ Predicate ==
+ static_cast<const GenericInstructionPredicateMatcher &>(B)
+ .Predicate;
+ }
void emitPredicateOpcodes(MatchTable &Table,
RuleMatcher &Rule) const override {
Table << MatchTable::Opcode("GIM_CheckCxxInsnPredicate")
OpenPOWER on IntegriCloud