def DNVT_arg0 : DagNodeValType; // Tree node returns same type as Arg0
def DNVT_arg1 : DagNodeValType; // Tree node returns same type as Arg1
def DNVT_ptr : DagNodeValType; // The target pointer type
-def DNVT_bool : DagNodeValType; // Always returns bool
+def DNVT_i8 : DagNodeValType; // Always have an i8 value
class DagNode<DagNodeValType ret, list<DagNodeValType> args> {
DagNodeValType RetType = ret;
def xor : BuiltinDagNode<DNVT_arg0, [DNVT_arg1, DNVT_arg0], "Xor">;
// Comparisons...
-def seteq : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetEQ">;
-def setne : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetNE">;
-def setlt : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetLT">;
-def setle : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetLE">;
-def setgt : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetGT">;
-def setge : BuiltinDagNode<DNVT_bool, [DNVT_arg1, DNVT_arg0], "SetGE">;
+def seteq : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetEQ">;
+def setne : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetNE">;
+def setlt : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetLT">;
+def setle : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetLE">;
+def setgt : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetGT">;
+def setge : BuiltinDagNode<DNVT_i8 , [DNVT_arg1, DNVT_arg0], "SetGE">;
def load : BuiltinDagNode<DNVT_val, [DNVT_ptr], "Load">;
//def store : BuiltinDagNode<DNVT_Void, [DNVT_ptr, DNVT_val]>;
def ret : BuiltinDagNode<DNVT_void, [DNVT_val], "Ret">;
def retvoid : BuiltinDagNode<DNVT_void, [], "RetVoid">;
def br : BuiltinDagNode<DNVT_void, [DNVT_ptr], "Br">;
-def brcond : BuiltinDagNode<DNVT_void, [DNVT_bool, DNVT_ptr, DNVT_ptr],
+def brcond : BuiltinDagNode<DNVT_void, [DNVT_i8, DNVT_ptr, DNVT_ptr],
"BrCond">;
//===----------------------------------------------------------------------===//
if (Name == "DNVT_arg0") return Arg0;
if (Name == "DNVT_arg1") return Arg1;
if (Name == "DNVT_ptr" ) return Ptr;
- if (Name == "DNVT_bool") return Bool;
+ if (Name == "DNVT_i8" ) return I8;
throw "Unknown DagNodeValType '" + Name + "'!";
}
AnyUnset |= InferTypes(Child, MadeChange);
switch (NT.ArgTypes[i]) {
- case NodeType::Bool:
+ case NodeType::I8:
MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
break;
case NodeType::Arg0:
case NodeType::Void:
MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
break;
- case NodeType::Bool:
+ case NodeType::I8:
MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
break;
case NodeType::Arg0:
if (Name == "DNVT_arg0") return Arg0;
if (Name == "DNVT_arg1") return Arg1;
if (Name == "DNVT_ptr" ) return Ptr;
- if (Name == "DNVT_bool") return Bool;
+ if (Name == "DNVT_i8" ) return I8;
throw "Unknown DagNodeValType '" + Name + "'!";
}
AnyUnset |= InferTypes(Child, MadeChange);
switch (NT.ArgTypes[i]) {
- case NodeType::Bool:
+ case NodeType::I8:
MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
break;
case NodeType::Arg0:
case NodeType::Void:
MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
break;
- case NodeType::Bool:
+ case NodeType::I8:
MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
break;
case NodeType::Arg0: