Changeset View
Changeset View
Standalone View
Standalone View
lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
Show First 20 Lines • Show All 1,744 Lines • ▼ Show 20 Lines | static ISD::NodeType GetPromotionOpcode(EVT OpVT, EVT RetVT) { | ||||
} | } | ||||
report_fatal_error("Attempt at an invalid promotion-related conversion"); | report_fatal_error("Attempt at an invalid promotion-related conversion"); | ||||
} | } | ||||
bool DAGTypeLegalizer::PromoteFloatOperand(SDNode *N, unsigned OpNo) { | bool DAGTypeLegalizer::PromoteFloatOperand(SDNode *N, unsigned OpNo) { | ||||
SDValue R = SDValue(); | SDValue R = SDValue(); | ||||
if (CustomLowerNode(N, N->getOperand(OpNo).getValueType(), false)) { | |||||
LLVM_DEBUG(dbgs() << "Node has been custom lowered, done\n"); | |||||
return false; | |||||
} | |||||
// Nodes that use a promotion-requiring floating point operand, but doesn't | // Nodes that use a promotion-requiring floating point operand, but doesn't | ||||
// produce a promotion-requiring floating point result, need to be legalized | // produce a promotion-requiring floating point result, need to be legalized | ||||
// to use the promoted float operand. Nodes that produce at least one | // to use the promoted float operand. Nodes that produce at least one | ||||
// promotion-requiring floating point result have their operands legalized as | // promotion-requiring floating point result have their operands legalized as | ||||
// a part of PromoteFloatResult. | // a part of PromoteFloatResult. | ||||
switch (N->getOpcode()) { | switch (N->getOpcode()) { | ||||
default: | default: | ||||
llvm_unreachable("Do not know how to promote this operator's operand!"); | llvm_unreachable("Do not know how to promote this operator's operand!"); | ||||
▲ Show 20 Lines • Show All 398 Lines • Show Last 20 Lines |