From: Chris Lattner Date: Fri, 14 Oct 2005 04:53:53 +0000 (+0000) Subject: Add basic support for recognizing a new SDTCisOpSmallerThanOp type constraint X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=03ebd802c7916e126c718ff49b4ebbe449a28c0a;p=oota-llvm.git Add basic support for recognizing a new SDTCisOpSmallerThanOp type constraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23725 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index c67d01090fc..8cbed47e084 100644 --- a/utils/TableGen/DAGISelEmitter.cpp +++ b/utils/TableGen/DAGISelEmitter.cpp @@ -40,6 +40,10 @@ SDTypeConstraint::SDTypeConstraint(Record *R) { ConstraintType = SDTCisVTSmallerThanOp; x.SDTCisVTSmallerThanOp_Info.OtherOperandNum = R->getValueAsInt("OtherOperandNum"); + } else if (R->isSubClassOf("SDTCisOpSmallerThanOp")) { + ConstraintType = SDTCisOpSmallerThanOp; + x.SDTCisOpSmallerThanOp_Info.BigOperandNum = + R->getValueAsInt("BigOperandNum"); } else { std::cerr << "Unrecognized SDTypeConstraint '" << R->getName() << "'!\n"; exit(1); @@ -157,6 +161,10 @@ bool SDTypeConstraint::ApplyTypeConstraint(TreePatternNode *N, OtherNode->UpdateNodeType(MVT::Other, TP); // Throw an error. return false; } + case SDTCisOpSmallerThanOp: { + // TODO + return false; + } } return false; } diff --git a/utils/TableGen/DAGISelEmitter.h b/utils/TableGen/DAGISelEmitter.h index 464edfdc424..4b2a2fb769e 100644 --- a/utils/TableGen/DAGISelEmitter.h +++ b/utils/TableGen/DAGISelEmitter.h @@ -34,7 +34,8 @@ namespace llvm { unsigned OperandNo; // The operand # this constraint applies to. enum { - SDTCisVT, SDTCisInt, SDTCisFP, SDTCisSameAs, SDTCisVTSmallerThanOp + SDTCisVT, SDTCisInt, SDTCisFP, SDTCisSameAs, SDTCisVTSmallerThanOp, + SDTCisOpSmallerThanOp } ConstraintType; union { // The discriminated union. @@ -47,6 +48,9 @@ namespace llvm { struct { unsigned OtherOperandNum; } SDTCisVTSmallerThanOp_Info; + struct { + unsigned BigOperandNum; + } SDTCisOpSmallerThanOp_Info; } x; /// ApplyTypeConstraint - Given a node in a pattern, apply this type