diff options
author | Matthias Braun <matze@braunis.de> | 2017-05-27 03:38:02 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2017-05-27 03:38:02 +0000 |
commit | 88c8c9847dcf2482a5ebaf9298d3299eef20014f (patch) | |
tree | 8d84beb94fd271a3928361315ed0915ff9d41fa9 /llvm/lib/CodeGen/PrologEpilogInserter.cpp | |
parent | 090f1959c1e78cd10d3d33b0d6643c1ee34f0758 (diff) | |
download | llvm-88c8c9847dcf2482a5ebaf9298d3299eef20014f.zip llvm-88c8c9847dcf2482a5ebaf9298d3299eef20014f.tar.gz llvm-88c8c9847dcf2482a5ebaf9298d3299eef20014f.tar.bz2 |
AArch64/PEI: Do not add reserved regs to liveins
We do not track liveness for reserved registers. It is unnecessary to
add them to block livein lists.
llvm-svn: 304059
Diffstat (limited to 'llvm/lib/CodeGen/PrologEpilogInserter.cpp')
-rw-r--r-- | llvm/lib/CodeGen/PrologEpilogInserter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp index a483ec7..a9813e5 100644 --- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp +++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp @@ -450,12 +450,13 @@ static void updateLiveness(MachineFunction &MF) { const std::vector<CalleeSavedInfo> &CSI = MFI.getCalleeSavedInfo(); + MachineRegisterInfo &MRI = MF.getRegInfo(); for (unsigned i = 0, e = CSI.size(); i != e; ++i) { for (MachineBasicBlock *MBB : Visited) { MCPhysReg Reg = CSI[i].getReg(); // Add the callee-saved register as live-in. // It's killed at the spill. - if (!MBB->isLiveIn(Reg)) + if (!MRI.isReserved(Reg) && !MBB->isLiveIn(Reg)) MBB->addLiveIn(Reg); } } |