mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-09 05:11:39 +00:00
If a target really needs to custom lower constants, it should be allowed
to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40955 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
642a9e3436
commit
c1513d24ea
@ -965,13 +965,21 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
|
||||
}
|
||||
break;
|
||||
|
||||
case ISD::Constant:
|
||||
case ISD::Constant: {
|
||||
ConstantSDNode *CN = cast<ConstantSDNode>(Node);
|
||||
unsigned opAction =
|
||||
TLI.getOperationAction(ISD::Constant, CN->getValueType(0));
|
||||
|
||||
// We know we don't need to expand constants here, constants only have one
|
||||
// value and we check that it is fine above.
|
||||
|
||||
// FIXME: Maybe we should handle things like targets that don't support full
|
||||
// 32-bit immediates?
|
||||
if (opAction == TargetLowering::Custom) {
|
||||
Tmp1 = TLI.LowerOperation(Result, DAG);
|
||||
if (Tmp1.Val)
|
||||
Result = Tmp1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ISD::ConstantFP: {
|
||||
// Spill FP immediates to the constant pool if the target cannot directly
|
||||
// codegen them. Targets often have some immediate values that can be
|
||||
|
Loading…
x
Reference in New Issue
Block a user