diff options
| author | Dylan McKay <me@dylanmckay.io> | 2018-06-11 14:46:48 +0000 |
|---|---|---|
| committer | Dylan McKay <me@dylanmckay.io> | 2018-06-11 14:46:48 +0000 |
| commit | d011869c82cc2b2a0b0ca3fa1fe27f359dc3e26f (patch) | |
| tree | 2d12d32c3adb7f9bfb8837718e02756838f987c8 /llvm/lib/Target/AVR | |
| parent | 6bb103f9facf48253b3a29c37d8870e7abaa7ff5 (diff) | |
| download | bcm5719-llvm-d011869c82cc2b2a0b0ca3fa1fe27f359dc3e26f.tar.gz bcm5719-llvm-d011869c82cc2b2a0b0ca3fa1fe27f359dc3e26f.zip | |
[AVR] Set trackLivenessAfterRegAlloc
This sets trackLivenessAfterRegAlloc on AVRRegisterInfo.
Most existing targets set this flag. Without it, specific IR inputs
cause LLVM to fail with:
Assertion failed: (getParent()->getProperties().hasProperty( MachineFunctionProperties::Property::TracksLiveness) &&
"Liveness information is accurate"), function livein_begin
file MachineBasicBlock.cpp, line 1354.
With this commit, this no longer happens.
Patch by Peter Nimmervoll.
llvm-svn: 334409
Diffstat (limited to 'llvm/lib/Target/AVR')
| -rw-r--r-- | llvm/lib/Target/AVR/AVRRegisterInfo.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/AVR/AVRRegisterInfo.h b/llvm/lib/Target/AVR/AVRRegisterInfo.h index f8fefb85968..104b336b9c4 100644 --- a/llvm/lib/Target/AVR/AVRRegisterInfo.h +++ b/llvm/lib/Target/AVR/AVRRegisterInfo.h @@ -51,6 +51,11 @@ public: /// Splits a 16-bit `DREGS` register into the lo/hi register pair. /// \param Reg A 16-bit register to split. void splitReg(unsigned Reg, unsigned &LoReg, unsigned &HiReg) const; + + bool trackLivenessAfterRegAlloc(const MachineFunction &) const override { + return true; + } + }; } // end namespace llvm |

