diff options
author | Daniel Sanders <daniel_l_sanders@apple.com> | 2018-09-25 17:59:02 +0000 |
---|---|---|
committer | Daniel Sanders <daniel_l_sanders@apple.com> | 2018-09-25 17:59:02 +0000 |
commit | 06f4ff1952aa8423bd5a2600cbb0cc59c292a3f2 (patch) | |
tree | 7a445ca060beff4a49dfa4098d0b1d1280d0593f /llvm/utils/TableGen/GlobalISelEmitter.cpp | |
parent | a55471138d158ed7938ca1b94bd4a1c782540cbf (diff) | |
download | bcm5719-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.cpp | 6 |
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") |