aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/PrologEpilogInserter.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2017-05-27 03:38:02 +0000
committerMatthias Braun <matze@braunis.de>2017-05-27 03:38:02 +0000
commit88c8c9847dcf2482a5ebaf9298d3299eef20014f (patch)
tree8d84beb94fd271a3928361315ed0915ff9d41fa9 /llvm/lib/CodeGen/PrologEpilogInserter.cpp
parent090f1959c1e78cd10d3d33b0d6643c1ee34f0758 (diff)
downloadllvm-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.cpp3
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);
}
}