diff options
author | Dan Gohman <gohman@apple.com> | 2008-08-19 20:30:54 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-08-19 20:30:54 +0000 |
commit | 91aba2d71192dd2e39c5cfd29067bf414143fbb7 (patch) | |
tree | 223308dc1e201168bd02ce2c41ec5c27267c69be /utils/TableGen/FastISelEmitter.cpp | |
parent | 97c20818a8b8a517de026b2a0e11ebe6bb640fd8 (diff) | |
download | external_llvm-91aba2d71192dd2e39c5cfd29067bf414143fbb7.zip external_llvm-91aba2d71192dd2e39c5cfd29067bf414143fbb7.tar.gz external_llvm-91aba2d71192dd2e39c5cfd29067bf414143fbb7.tar.bz2 |
Add more checking to filter out more kinds of things that
FastISel doesn't support yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55002 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen/FastISelEmitter.cpp')
-rw-r--r-- | utils/TableGen/FastISelEmitter.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/utils/TableGen/FastISelEmitter.cpp b/utils/TableGen/FastISelEmitter.cpp index 67dde85..437383b 100644 --- a/utils/TableGen/FastISelEmitter.cpp +++ b/utils/TableGen/FastISelEmitter.cpp @@ -180,9 +180,16 @@ void FastISelEmitter::run(std::ostream &OS) { MVT::SimpleValueType VT = InstPatNode->getTypeNum(0); // For now, filter out instructions which just set a register to - // an Operand, like MOV32ri. + // an Operand or an immediate, like MOV32ri. if (InstPatOp->isSubClassOf("Operand")) continue; + if (InstPatOp->getName() == "imm" || + InstPatOp->getName() == "fpimm") + continue; + + // For now, filter out any instructions with predicates. + if (!InstPatNode->getPredicateFn().empty()) + continue; // Check all the operands. For now only accept register operands. OperandsSignature Operands; @@ -190,6 +197,9 @@ void FastISelEmitter::run(std::ostream &OS) { TreePatternNode *Op = InstPatNode->getChild(i); if (!Op->isLeaf()) goto continue_label; + // For now, filter out any operand with a predicate. + if (!Op->getPredicateFn().empty()) + goto continue_label; DefInit *OpDI = dynamic_cast<DefInit*>(Op->getLeafValue()); if (!OpDI) goto continue_label; |