diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2007-10-15 20:11:21 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2007-10-15 20:11:21 +0000 |
| commit | 7bcfd8f8808aa87ce073850b1638bf907e6fd418 (patch) | |
| tree | ec498072111257aca921178eb75a1255973e9349 /llvm/lib | |
| parent | 324fe8904f975b5e162f40a66c25796e54a17dae (diff) | |
| download | bcm5719-llvm-7bcfd8f8808aa87ce073850b1638bf907e6fd418.tar.gz bcm5719-llvm-7bcfd8f8808aa87ce073850b1638bf907e6fd418.zip | |
LowerFP_TO_SINT must not create a stack object if it's not needed.
llvm-svn: 43004
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index bac658f85ec..8726c587caf 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -3895,13 +3895,7 @@ SDOperand X86TargetLowering::LowerSINT_TO_FP(SDOperand Op, SelectionDAG &DAG) { SDOperand X86TargetLowering::LowerFP_TO_SINT(SDOperand Op, SelectionDAG &DAG) { assert(Op.getValueType() <= MVT::i64 && Op.getValueType() >= MVT::i16 && "Unknown FP_TO_SINT to lower!"); - // We lower FP->sint64 into FISTP64, followed by a load, all to a temporary - // stack slot. SDOperand Result; - MachineFunction &MF = DAG.getMachineFunction(); - unsigned MemSize = MVT::getSizeInBits(Op.getValueType())/8; - int SSFI = MF.getFrameInfo()->CreateStackObject(MemSize, MemSize); - SDOperand StackSlot = DAG.getFrameIndex(SSFI, getPointerTy()); // These are really Legal. if (Op.getValueType() == MVT::i32 && @@ -3915,6 +3909,12 @@ SDOperand X86TargetLowering::LowerFP_TO_SINT(SDOperand Op, SelectionDAG &DAG) { Op.getOperand(0).getValueType() != MVT::f80) return Result; + // We lower FP->sint64 into FISTP64, followed by a load, all to a temporary + // stack slot. + MachineFunction &MF = DAG.getMachineFunction(); + unsigned MemSize = MVT::getSizeInBits(Op.getValueType())/8; + int SSFI = MF.getFrameInfo()->CreateStackObject(MemSize, MemSize); + SDOperand StackSlot = DAG.getFrameIndex(SSFI, getPointerTy()); unsigned Opc; switch (Op.getValueType()) { default: assert(0 && "Invalid FP_TO_SINT to lower!"); |

