diff options
author | Matthias Braun <matze@braunis.de> | 2017-05-31 02:11:10 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-05-31 02:11:10 +0000 |
commit | bcd4c6823339461efdc906dea58985c43c7f8bb1 (patch) | |
tree | 178dae56d3f4dcd5147e8dea0376ed6ad9425d88 /llvm/lib/Target/X86/X86FrameLowering.cpp | |
parent | 49b60230952f750e8a991f255bc2ac22487f4c1e (diff) | |
download | bcm5719-llvm-bcd4c6823339461efdc906dea58985c43c7f8bb1.tar.gz bcm5719-llvm-bcd4c6823339461efdc906dea58985c43c7f8bb1.zip |
X86FrameLowering: No need to mark FP as live-in everywhere
The frame pointer (when used as frame pointer) is a reserved register.
We do not track liveness of reserved registers and hence do not need to
add them to the basic block livein lists.
llvm-svn: 304274
Diffstat (limited to 'llvm/lib/Target/X86/X86FrameLowering.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86FrameLowering.cpp | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp index 331e56976db..328a8030460 100644 --- a/llvm/lib/Target/X86/X86FrameLowering.cpp +++ b/llvm/lib/Target/X86/X86FrameLowering.cpp @@ -1062,6 +1062,8 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF, } if (HasFP) { + assert(MF.getRegInfo().isReserved(MachineFramePtr) && "FP reserved"); + // Calculate required stack adjustment. uint64_t FrameSize = StackSize - SlotSize; // If required, include space for extra hidden slot for stashing base pointer. @@ -1124,13 +1126,6 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF, nullptr, DwarfFramePtr)); } } - - // Mark the FramePtr as live-in in every block. Don't do this again for - // funclet prologues. - if (!IsFunclet) { - for (MachineBasicBlock &EveryMBB : MF) - EveryMBB.addLiveIn(MachineFramePtr); - } } else { assert(!IsFunclet && "funclets without FPs not yet implemented"); NumBytes = StackSize - X86FI->getCalleeSavedFrameSize(); |