OSDN Git Service

Add "Restored" flag to CalleeSavedInfo
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Thu, 10 Aug 2017 16:17:32 +0000 (16:17 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Thu, 10 Aug 2017 16:17:32 +0000 (16:17 +0000)
commit7b10f6e9190f4c508d7739b03fd5703086f97ecd
tree5626cc0c69cd16a409cd409e7eac8b3a917c9eb2
parent0fd98222cefa4258dd40d3981a2f8a4dc8108cb5
Add "Restored" flag to CalleeSavedInfo

The liveness-tracking code assumes that the registers that were saved
in the function's prolog are live outside of the function. Specifically,
that registers that were saved are also live-on-exit from the function.
This isn't always the case as illustrated by the LR register on ARM.

Differential Revision: https://reviews.llvm.org/D36160

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310619 91177308-0d34-0410-b5e6-96231b3b80d8
25 files changed:
include/llvm/CodeGen/MachineFrameInfo.h
include/llvm/Target/TargetFrameLowering.h
lib/CodeGen/LivePhysRegs.cpp
lib/CodeGen/PrologEpilogInserter.cpp
lib/Target/AArch64/AArch64FrameLowering.cpp
lib/Target/AArch64/AArch64FrameLowering.h
lib/Target/ARM/ARMFrameLowering.cpp
lib/Target/ARM/ARMFrameLowering.h
lib/Target/ARM/Thumb1FrameLowering.cpp
lib/Target/ARM/Thumb1FrameLowering.h
lib/Target/AVR/AVRFrameLowering.cpp
lib/Target/AVR/AVRFrameLowering.h
lib/Target/Hexagon/HexagonFrameLowering.h
lib/Target/MSP430/MSP430FrameLowering.cpp
lib/Target/MSP430/MSP430FrameLowering.h
lib/Target/Mips/Mips16FrameLowering.cpp
lib/Target/Mips/Mips16FrameLowering.h
lib/Target/PowerPC/PPCFrameLowering.cpp
lib/Target/PowerPC/PPCFrameLowering.h
lib/Target/SystemZ/SystemZFrameLowering.cpp
lib/Target/SystemZ/SystemZFrameLowering.h
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86FrameLowering.h
lib/Target/XCore/XCoreFrameLowering.cpp
lib/Target/XCore/XCoreFrameLowering.h