if (Name == "DNVT_arg0") return Arg0;
if (Name == "DNVT_arg1") return Arg1;
if (Name == "DNVT_ptr" ) return Ptr;
+ if (Name == "DNVT_bool") return Bool;
throw "Unknown DagNodeValType '" + Name + "'!";
}
AnyUnset |= InferTypes(Child, MadeChange);
switch (NT.ArgTypes[i]) {
+ case NodeType::Bool:
+ MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
+ break;
case NodeType::Arg0:
MadeChange |= Child->updateNodeType(N->getChild(0)->getType(),
TheRecord->getName());
case NodeType::Void:
MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
break;
+ case NodeType::Bool:
+ MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
+ break;
case NodeType::Arg0:
MadeChange |= N->updateNodeType(N->getChild(0)->getType(),
TheRecord->getName());
Arg0, // Value matches the type of Arg0
Arg1, // Value matches the type of Arg1
Ptr, // Tree node is the type of the target pointer
-
- // Return types
+ Bool, // Always bool
Void, // Tree node always returns void
};
if (Name == "DNVT_arg0") return Arg0;
if (Name == "DNVT_arg1") return Arg1;
if (Name == "DNVT_ptr" ) return Ptr;
+ if (Name == "DNVT_bool") return Bool;
throw "Unknown DagNodeValType '" + Name + "'!";
}
AnyUnset |= InferTypes(Child, MadeChange);
switch (NT.ArgTypes[i]) {
+ case NodeType::Bool:
+ MadeChange |= Child->updateNodeType(MVT::i1, TheRecord->getName());
+ break;
case NodeType::Arg0:
MadeChange |= Child->updateNodeType(N->getChild(0)->getType(),
TheRecord->getName());
case NodeType::Void:
MadeChange |= N->updateNodeType(MVT::isVoid, TheRecord->getName());
break;
+ case NodeType::Bool:
+ MadeChange |= N->updateNodeType(MVT::i1, TheRecord->getName());
+ break;
case NodeType::Arg0:
MadeChange |= N->updateNodeType(N->getChild(0)->getType(),
TheRecord->getName());
Arg0, // Value matches the type of Arg0
Arg1, // Value matches the type of Arg1
Ptr, // Tree node is the type of the target pointer
-
- // Return types
+ Bool, // Always bool
Void, // Tree node always returns void
};