mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-04 21:30:49 +00:00
Restrict EXTRACT_SUBREG coalescing to avoid negative performance impact.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42903 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
37a073eab4
commit
52c7ff7067
@ -264,8 +264,13 @@ bool SimpleRegisterCoalescing::JoinCopy(MachineInstr *CopyMI,
|
||||
if (li_->hasInterval(*SR) && RHS.overlaps(li_->getInterval(*SR))) {
|
||||
DOUT << "Interfere with sub-register ";
|
||||
DEBUG(li_->getInterval(*SR).print(DOUT, mri_));
|
||||
return true;
|
||||
return true; // Not coalescable
|
||||
}
|
||||
} else if (li_->getInterval(repDstReg).getSize() >
|
||||
li_->getInterval(repSrcReg).getSize()) {
|
||||
// Be conservative. If both sides are virtual registers, do not coalesce
|
||||
// if the sub-register live interval is longer.
|
||||
return false;
|
||||
}
|
||||
} else if (differingRegisterClasses(repSrcReg, repDstReg)) {
|
||||
// If they are not of the same register class, we cannot join them.
|
||||
|
Loading…
Reference in New Issue
Block a user