[llvm-commits] [llvm] r55875 - /llvm/trunk/utils/TableGen/FastISelEmitter.cpp
Evan Cheng
evan.cheng at apple.com
Sun Sep 7 01:19:51 PDT 2008
Author: evancheng
Date: Sun Sep 7 03:19:51 2008
New Revision: 55875
URL: http://llvm.org/viewvc/llvm-project?rev=55875&view=rev
Log:
Ignore multi-instruction patterns. e.g.
def : Pat<(i8 (trunc GR32:$src)),
(i8 (EXTRACT_SUBREG (MOV32to32_ GR32:$src), x86_subreg_8bit))>
Modified:
llvm/trunk/utils/TableGen/FastISelEmitter.cpp
Modified: llvm/trunk/utils/TableGen/FastISelEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/FastISelEmitter.cpp?rev=55875&r1=55874&r2=55875&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/FastISelEmitter.cpp (original)
+++ llvm/trunk/utils/TableGen/FastISelEmitter.cpp Sun Sep 7 03:19:51 2008
@@ -259,6 +259,20 @@
if (II.OperandList.empty())
continue;
+ // For now, ignore multi-instruction patterns.
+ bool MultiInsts = false;
+ for (unsigned i = 0, e = Dst->getNumChildren(); i != e; ++i) {
+ TreePatternNode *ChildOp = Dst->getChild(i);
+ if (ChildOp->isLeaf())
+ continue;
+ if (ChildOp->getOperator()->isSubClassOf("Instruction")) {
+ MultiInsts = true;
+ break;
+ }
+ }
+ if (MultiInsts)
+ continue;
+
// For now, ignore instructions where the first operand is not an
// output register.
const CodeGenRegisterClass *DstRC = 0;
More information about the llvm-commits
mailing list