diff options
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/X86/X86FrameLowering.cpp | 43 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86FrameLowering.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/X86/X86TargetMachine.cpp | 7 |
3 files changed, 0 insertions, 54 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp index b477c80ecc5..988f2967401 100644 --- a/llvm/lib/Target/X86/X86FrameLowering.cpp +++ b/llvm/lib/Target/X86/X86FrameLowering.cpp @@ -1562,11 +1562,6 @@ void X86FrameLowering::emitEpilogue(MachineFunction &MF, bool HasFP = hasFP(MF); uint64_t NumBytes = 0; - bool NeedsDwarfCFI = - (!MF.getTarget().getTargetTriple().isOSDarwin() && - !MF.getTarget().getTargetTriple().isOSWindows()) && - (MF.getMMI().hasDebugInfo() || MF.getFunction()->needsUnwindTableEntry()); - if (IsFunclet) { assert(HasFP && "EH funclets without FP not yet implemented"); NumBytes = getWinEHFuncletFrameSize(MF); @@ -1589,13 +1584,6 @@ void X86FrameLowering::emitEpilogue(MachineFunction &MF, BuildMI(MBB, MBBI, DL, TII.get(Is64Bit ? X86::POP64r : X86::POP32r), MachineFramePtr) .setMIFlag(MachineInstr::FrameDestroy); - if (NeedsDwarfCFI) { - unsigned DwarfStackPtr = - TRI->getDwarfRegNum(Is64Bit ? X86::RSP : X86::ESP, true); - BuildCFI(MBB, MBBI, DL, MCCFIInstruction::createDefCfa( - nullptr, DwarfStackPtr, -SlotSize)); - --MBBI; - } } MachineBasicBlock::iterator FirstCSPop = MBBI; @@ -1659,11 +1647,6 @@ void X86FrameLowering::emitEpilogue(MachineFunction &MF, } else if (NumBytes) { // Adjust stack pointer back: ESP += numbytes. emitSPUpdate(MBB, MBBI, NumBytes, /*InEpilogue=*/true); - if (!hasFP(MF) && NeedsDwarfCFI) { - // Define the current CFA rule to use the provided offset. - BuildCFI(MBB, MBBI, DL, MCCFIInstruction::createDefCfaOffset( - nullptr, -CSSize - SlotSize)); - } --MBBI; } @@ -1676,23 +1659,6 @@ void X86FrameLowering::emitEpilogue(MachineFunction &MF, if (NeedsWin64CFI && MF.hasWinCFI()) BuildMI(MBB, MBBI, DL, TII.get(X86::SEH_Epilogue)); - if (!hasFP(MF) && NeedsDwarfCFI) { - MBBI = FirstCSPop; - int64_t Offset = -CSSize - SlotSize; - // Mark callee-saved pop instruction. - // Define the current CFA rule to use the provided offset. - while (MBBI != MBB.end()) { - MachineBasicBlock::iterator PI = MBBI; - unsigned Opc = PI->getOpcode(); - ++MBBI; - if (Opc == X86::POP32r || Opc == X86::POP64r) { - Offset += SlotSize; - BuildCFI(MBB, MBBI, DL, - MCCFIInstruction::createDefCfaOffset(nullptr, Offset)); - } - } - } - if (Terminator == MBB.end() || !isTailCallOpcode(Terminator->getOpcode())) { // Add the return addr area delta back since we are not tail calling. int Offset = -1 * X86FI->getTCReturnAddrDelta(); @@ -2869,15 +2835,6 @@ MachineBasicBlock::iterator X86FrameLowering::restoreWin32EHStackPointers( return MBBI; } -int X86FrameLowering::getInitialCFAOffset(const MachineFunction &MF) const { - return TRI->getSlotSize(); -} - -unsigned X86FrameLowering::getInitialCFARegister(const MachineFunction &MF) - const { - return TRI->getDwarfRegNum(StackPtr, true); -} - namespace { // Struct used by orderFrameObjects to help sort the stack objects. struct X86FrameSortingObject { diff --git a/llvm/lib/Target/X86/X86FrameLowering.h b/llvm/lib/Target/X86/X86FrameLowering.h index 1ed88b5f17f..38ac96e16d4 100644 --- a/llvm/lib/Target/X86/X86FrameLowering.h +++ b/llvm/lib/Target/X86/X86FrameLowering.h @@ -168,10 +168,6 @@ public: MachineBasicBlock::iterator MBBI, const DebugLoc &DL, bool RestoreSP = false) const; - int getInitialCFAOffset(const MachineFunction &MF) const override; - - unsigned getInitialCFARegister(const MachineFunction &MF) const override; - private: uint64_t calculateMaxStackAlign(const MachineFunction &MF) const; diff --git a/llvm/lib/Target/X86/X86TargetMachine.cpp b/llvm/lib/Target/X86/X86TargetMachine.cpp index 11fe84f162d..6e6c724eb0a 100644 --- a/llvm/lib/Target/X86/X86TargetMachine.cpp +++ b/llvm/lib/Target/X86/X86TargetMachine.cpp @@ -436,11 +436,4 @@ void X86PassConfig::addPreEmitPass() { addPass(createX86FixupLEAs()); addPass(createX86EvexToVexInsts()); } - - // Verify basic block incoming and outgoing cfa offset and register values and - // correct CFA calculation rule where needed by inserting appropriate CFI - // instructions. - const Triple &TT = TM->getTargetTriple(); - if (!TT.isOSDarwin() && !TT.isOSWindows()) - addPass(createCFIInstrInserter()); } |