mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 11:02:59 +02:00
Make the peephole optimizer clear kill flags on a vreg if it's about to add new
uses of the vreg, since the old kills may no longer be valid. This was causing -verify-machineinstrs to complain about uses after kills, and could potentially have been causing subtle register allocation issues, but I haven't come across a test case yet. llvm-svn: 151425
This commit is contained in:
parent
06b04ed725
commit
25553028ff
@ -237,6 +237,10 @@ OptimizeExtInstr(MachineInstr *MI, MachineBasicBlock *MBB,
|
||||
if (PHIBBs.count(UseMBB))
|
||||
continue;
|
||||
|
||||
// About to add uses of DstReg, clear DstReg's kill flags.
|
||||
if (!Changed)
|
||||
MRI->clearKillFlags(DstReg);
|
||||
|
||||
unsigned NewVR = MRI->createVirtualRegister(RC);
|
||||
BuildMI(*UseMBB, UseMI, UseMI->getDebugLoc(),
|
||||
TII->get(TargetOpcode::COPY), NewVR)
|
||||
|
Loading…
Reference in New Issue
Block a user