mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-15 04:08:07 +00:00
We should remove the live range from the destination register only if *all* defs
are dead, not just the def of this register. I.e., a register could be dead, but it's subreg isn't. Testcase to follow with a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106878 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
39afa908de
commit
39d258aa49
@ -1892,8 +1892,8 @@ bool SimpleRegisterCoalescing::runOnMachineFunction(MachineFunction &fn) {
|
||||
if (li_->hasInterval(SrcReg)) {
|
||||
LiveInterval &RegInt = li_->getInterval(SrcReg);
|
||||
// If def of this move instruction is dead, remove its live range
|
||||
// from the dstination register's live interval.
|
||||
if (MI->registerDefIsDead(DstReg)) {
|
||||
// from the destination register's live interval.
|
||||
if (MI->allDefsAreDead()) {
|
||||
if (!ShortenDeadCopySrcLiveRange(RegInt, MI))
|
||||
ShortenDeadCopyLiveRange(RegInt, MI);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user