mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-31 09:32:11 +00:00
When hoisting common code, watch out for uses which are marked "kill". If the
killed registers are needed below the insertion point, then unset the kill marker. Sorry I'm not able to find a reduced test case. rdar://10660944 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148043 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0577c59196
commit
c16c25fbc3
@ -1618,6 +1618,11 @@ bool BranchFolder::HoistCommonCodeInSuccs(MachineBasicBlock *MBB) {
|
||||
IsSafe = false;
|
||||
break;
|
||||
}
|
||||
|
||||
if (MO.isKill() && Uses.count(Reg))
|
||||
// Kills a register that's read by the instruction at the point of
|
||||
// insertion. Remove the kill marker.
|
||||
MO.setIsKill(false);
|
||||
}
|
||||
}
|
||||
if (!IsSafe)
|
||||
|
Loading…
Reference in New Issue
Block a user