diff options
author | David Green <david.green@arm.com> | 2019-02-12 15:02:57 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2019-02-12 15:02:57 +0000 |
commit | c93c6f32744ab19da07ee764793afe5b5c24be9e (patch) | |
tree | adf621945903f131e74fb0833864a6a5738c6706 /llvm/lib/CodeGen | |
parent | 4b78d4f3470dcbe4978457e4b1347bc0be150ca7 (diff) | |
download | bcm5719-llvm-c93c6f32744ab19da07ee764793afe5b5c24be9e.tar.gz bcm5719-llvm-c93c6f32744ab19da07ee764793afe5b5c24be9e.zip |
[Codegen] Make sure kill flags are not incorrect from removed machine phi's
We need to clear the kill flags on both SingleValReg and OldReg, to ensure they remain
conservatively correct.
Differential Revision: https://reviews.llvm.org/D58114
llvm-svn: 353847
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r-- | llvm/lib/CodeGen/OptimizePHIs.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/OptimizePHIs.cpp b/llvm/lib/CodeGen/OptimizePHIs.cpp index fb2340b7221..c70b6225213 100644 --- a/llvm/lib/CodeGen/OptimizePHIs.cpp +++ b/llvm/lib/CodeGen/OptimizePHIs.cpp @@ -181,11 +181,12 @@ bool OptimizePHIs::OptimizeBB(MachineBasicBlock &MBB) { if (!MRI->constrainRegClass(SingleValReg, MRI->getRegClass(OldReg))) continue; - // for the case SingleValReg taken from copy instr - MRI->clearKillFlags(SingleValReg); - MRI->replaceRegWith(OldReg, SingleValReg); MI->eraseFromParent(); + + // The kill flags on OldReg and SingleValReg may no longer be correct. + MRI->clearKillFlags(SingleValReg); + ++NumPHICycles; Changed = true; continue; |