diff options
| author | Derek Schuff <dschuff@google.com> | 2016-04-11 23:32:13 +0000 |
|---|---|---|
| committer | Derek Schuff <dschuff@google.com> | 2016-04-11 23:32:13 +0000 |
| commit | f7b2bce1f1d291a10be65a1524f1406c3f6937c6 (patch) | |
| tree | 93c2a3f057cf1fa2f214d5df5fc512a1933db856 /llvm/lib/CodeGen | |
| parent | 74c0c09666b0ac3fedf55e306c4948971ea6fb4d (diff) | |
| download | bcm5719-llvm-f7b2bce1f1d291a10be65a1524f1406c3f6937c6.tar.gz bcm5719-llvm-f7b2bce1f1d291a10be65a1524f1406c3f6937c6.zip | |
Replace MachineRegisterInfo::TracksLiveness with a MachineFunctionProperty
Use the MachineFunctionProperty mechanism to indicate whether the
liveness info is accurate instead of a bool flag on MRI.
Keeps the MRI accessor function for convenience. NFC
Differential Revision: http://reviews.llvm.org/D18767
llvm-svn: 266020
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/MachineFunction.cpp | 13 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineRegisterInfo.cpp | 3 |
2 files changed, 7 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/MachineFunction.cpp b/llvm/lib/CodeGen/MachineFunction.cpp index 8c987ba216a..da6b778cc6c 100644 --- a/llvm/lib/CodeGen/MachineFunction.cpp +++ b/llvm/lib/CodeGen/MachineFunction.cpp @@ -63,6 +63,9 @@ void MachineFunctionProperties::print(raw_ostream &ROS) const { case Property::IsSSA: ROS << (HasProperty ? "SSA, " : "Post SSA, "); break; + case Property::TracksLiveness: + ROS << (HasProperty ? "" : "not ") << "tracking liveness, "; + break; case Property::AllVRegsAllocated: ROS << (HasProperty ? "AllVRegsAllocated" : "HasVRegs"); break; @@ -95,8 +98,9 @@ MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM, unsigned FunctionNum, MachineModuleInfo &mmi) : Fn(F), Target(TM), STI(TM.getSubtargetImpl(*F)), Ctx(mmi.getContext()), MMI(mmi) { - // Assume the function starts in SSA form. + // Assume the function starts in SSA form with correct liveness. Properties.set(MachineFunctionProperties::Property::IsSSA); + Properties.set(MachineFunctionProperties::Property::TracksLiveness); if (STI->getRegisterInfo()) RegInfo = new (Allocator) MachineRegisterInfo(this); else @@ -404,12 +408,7 @@ void MachineFunction::print(raw_ostream &OS, SlotIndexes *Indexes) const { OS << "# Machine code for function " << getName() << ": "; OS << "Properties: <"; getProperties().print(OS); - OS << "> : "; - if (RegInfo) { - if (!RegInfo->tracksLiveness()) - OS << "not tracking liveness"; - } - OS << '\n'; + OS << ">\n"; // Print Frame Information FrameInfo->print(*this, OS); diff --git a/llvm/lib/CodeGen/MachineRegisterInfo.cpp b/llvm/lib/CodeGen/MachineRegisterInfo.cpp index 93fd52ea117..de2f3b46d3c 100644 --- a/llvm/lib/CodeGen/MachineRegisterInfo.cpp +++ b/llvm/lib/CodeGen/MachineRegisterInfo.cpp @@ -25,8 +25,7 @@ using namespace llvm; void MachineRegisterInfo::Delegate::anchor() {} MachineRegisterInfo::MachineRegisterInfo(MachineFunction *MF) - : MF(MF), TheDelegate(nullptr), TracksLiveness(true), - TracksSubRegLiveness(false) { + : MF(MF), TheDelegate(nullptr), TracksSubRegLiveness(false) { unsigned NumRegs = getTargetRegisterInfo()->getNumRegs(); VRegInfo.reserve(256); RegAllocHints.reserve(256); |

