diff options
author | Chris Lattner <sabre@nondot.org> | 2005-10-14 04:53:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-10-14 04:53:53 +0000 |
commit | 03ebd802c7916e126c718ff49b4ebbe449a28c0a (patch) | |
tree | 9b5169a78bae93725b439fd510ef8c98d9cbc8aa | |
parent | 0ee7cff4fb9fceb88778f2f44876ce9716479d7f (diff) | |
download | external_llvm-03ebd802c7916e126c718ff49b4ebbe449a28c0a.zip external_llvm-03ebd802c7916e126c718ff49b4ebbe449a28c0a.tar.gz external_llvm-03ebd802c7916e126c718ff49b4ebbe449a28c0a.tar.bz2 |
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
-rw-r--r-- | utils/TableGen/DAGISelEmitter.cpp | 8 | ||||
-rw-r--r-- | utils/TableGen/DAGISelEmitter.h | 6 |
2 files changed, 13 insertions, 1 deletions
diff --git a/utils/TableGen/DAGISelEmitter.cpp b/utils/TableGen/DAGISelEmitter.cpp index c67d010..8cbed47 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 464edfd..4b2a2fb 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 |