diff options
author | Marcin Koscielnicki <koriakin@0x04.net> | 2016-05-04 23:54:53 +0000 |
---|---|---|
committer | Marcin Koscielnicki <koriakin@0x04.net> | 2016-05-04 23:54:53 +0000 |
commit | 12037b4e9d2cf12721a76cf71e7c958a4cadd93a (patch) | |
tree | 3f215f41dfc6c9be5b2db35d689076cc24f71852 /llvm/lib | |
parent | b31ee6db115eab2a8db7a483d5a42fadac69f6b1 (diff) | |
download | bcm5719-llvm-12037b4e9d2cf12721a76cf71e7c958a4cadd93a.tar.gz bcm5719-llvm-12037b4e9d2cf12721a76cf71e7c958a4cadd93a.zip |
Revert "[SystemZ] Implement backchain attribute."
This reverts commit rL268571.
It caused failures in register scavenger.
llvm-svn: 268576
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp | 13 | ||||
-rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.cpp | 37 |
2 files changed, 4 insertions, 46 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp index 866e0db7c90..0bdfaf67c40 100644 --- a/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp @@ -354,15 +354,6 @@ void SystemZFrameLowering::emitPrologue(MachineFunction &MF, uint64_t StackSize = getAllocatedStackSize(MF); if (StackSize) { - // Determine if we want to store a backchain. - bool StoreBackchain = MF.getFunction()->hasFnAttribute("backchain"); - - // If we need backchain, save current stack pointer. R1 is free at this - // point. - if (StoreBackchain) - BuildMI(MBB, MBBI, DL, ZII->get(SystemZ::LGR)) - .addReg(SystemZ::R1D).addReg(SystemZ::R15D); - // Allocate StackSize bytes. int64_t Delta = -int64_t(StackSize); emitIncrement(MBB, MBBI, DL, SystemZ::R15D, Delta, ZII); @@ -373,10 +364,6 @@ void SystemZFrameLowering::emitPrologue(MachineFunction &MF, BuildMI(MBB, MBBI, DL, ZII->get(TargetOpcode::CFI_INSTRUCTION)) .addCFIIndex(CFIIndex); SPOffsetFromCFA += Delta; - - if (StoreBackchain) - BuildMI(MBB, MBBI, DL, ZII->get(SystemZ::STG)) - .addReg(SystemZ::R1D).addReg(SystemZ::R15D).addImm(0).addReg(0); } if (HasFP) { diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp index f656a2f00ed..37222ea479f 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp @@ -2836,9 +2836,8 @@ SDValue SystemZTargetLowering::lowerVACOPY(SDValue Op, SDValue SystemZTargetLowering:: lowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG) const { const TargetFrameLowering *TFI = Subtarget.getFrameLowering(); - MachineFunction &MF = DAG.getMachineFunction(); - bool RealignOpt = !MF.getFunction()-> hasFnAttribute("no-realign-stack"); - bool StoreBackchain = MF.getFunction()->hasFnAttribute("backchain"); + bool RealignOpt = !DAG.getMachineFunction().getFunction()-> + hasFnAttribute("no-realign-stack"); SDValue Chain = Op.getOperand(0); SDValue Size = Op.getOperand(1); @@ -2860,12 +2859,6 @@ lowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG) const { // Get a reference to the stack pointer. SDValue OldSP = DAG.getCopyFromReg(Chain, DL, SPReg, MVT::i64); - // If we need a backchain, save it now. - SDValue Backchain; - if (StoreBackchain) - Backchain = DAG.getLoad(MVT::i64, DL, Chain, OldSP, MachinePointerInfo(), - false, false, false, 0); - // Add extra space for alignment if needed. if (ExtraAlignSpace) NeededSpace = DAG.getNode(ISD::ADD, DL, MVT::i64, NeededSpace, @@ -2893,10 +2886,6 @@ lowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG) const { DAG.getConstant(~(RequiredAlign - 1), DL, MVT::i64)); } - if (StoreBackchain) - Chain = DAG.getStore(Chain, DL, Backchain, NewSP, MachinePointerInfo(), - false, false, 0); - SDValue Ops[2] = { Result, Chain }; return DAG.getMergeValues(Ops, DL); } @@ -3355,26 +3344,8 @@ SDValue SystemZTargetLowering::lowerSTACKRESTORE(SDValue Op, SelectionDAG &DAG) const { MachineFunction &MF = DAG.getMachineFunction(); MF.getInfo<SystemZMachineFunctionInfo>()->setManipulatesSP(true); - bool StoreBackchain = MF.getFunction()->hasFnAttribute("backchain"); - - SDValue Chain = Op.getOperand(0); - SDValue NewSP = Op.getOperand(1); - SDValue Backchain; - SDLoc DL(Op); - - if (StoreBackchain) { - SDValue OldSP = DAG.getCopyFromReg(Chain, DL, SystemZ::R15D, MVT::i64); - Backchain = DAG.getLoad(MVT::i64, DL, Chain, OldSP, MachinePointerInfo(), - false, false, false, 0); - } - - Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R15D, NewSP); - - if (StoreBackchain) - Chain = DAG.getStore(Chain, DL, Backchain, NewSP, MachinePointerInfo(), - false, false, 0); - - return Chain; + return DAG.getCopyToReg(Op.getOperand(0), SDLoc(Op), + SystemZ::R15D, Op.getOperand(1)); } SDValue SystemZTargetLowering::lowerPREFETCH(SDValue Op, |