Add SDTCisPtrTy and use it for loads, to indicate that the operand of a load

must be a pointer.  This removes a type check out of the code generated by
tblgen for load matching.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24650 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-12-09 22:58:42 +00:00
parent 5b21be76e1
commit d8fe3b3272

View File

@ -24,15 +24,17 @@ class SDTypeConstraint<int opnum> {
}
// SDTCisVT - The specified operand has exactly this VT.
class SDTCisVT <int OpNum, ValueType vt> : SDTypeConstraint<OpNum> {
class SDTCisVT<int OpNum, ValueType vt> : SDTypeConstraint<OpNum> {
ValueType VT = vt;
}
class SDTCisPtrTy<int OpNum> : SDTypeConstraint<OpNum>;
// SDTCisInt - The specified operand is has integer type.
class SDTCisInt<int OpNum> : SDTypeConstraint<OpNum>;
// SDTCisFP - The specified operand is has floating point type.
class SDTCisFP <int OpNum> : SDTypeConstraint<OpNum>;
class SDTCisFP<int OpNum> : SDTypeConstraint<OpNum>;
// SDTCisSameAs - The two specified operands have identical types.
class SDTCisSameAs<int OpNum, int OtherOp> : SDTypeConstraint<OpNum> {
@ -132,7 +134,7 @@ def SDTWritePort : SDTypeProfile<0, 2, [ // writeport
]>;
def SDTLoad : SDTypeProfile<1, 1, [ // load
SDTCisInt<1>
SDTCisPtrTy<1>
]>;
//===----------------------------------------------------------------------===//