mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-04 21:31:03 +00:00
RegisterCoalescer: Improve a comment.
Explain the relation of the example to the variables in the code, explain what bad behaviour the code avoids in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237706 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
038aeda7cf
commit
f7ad33bd8a
@ -955,12 +955,11 @@ bool RegisterCoalescer::reMaterializeTrivialDef(const CoalescerPair &CP,
|
||||
TII->reMaterialize(*MBB, MII, DstReg, SrcIdx, DefMI, *TRI);
|
||||
MachineInstr *NewMI = std::prev(MII);
|
||||
|
||||
// A situation like the following:
|
||||
// %vreg0:subX = instr ; DefMI
|
||||
// %vregY = copy %vreg:subX ; CopyMI
|
||||
// does not need subregisters/regclass widening after rematerialization, just
|
||||
// do:
|
||||
// %vregY = instr
|
||||
// In a situation like the following:
|
||||
// %vreg0:subreg = instr ; DefMI, subreg = DstIdx
|
||||
// %vreg1 = copy %vreg0:subreg ; CopyMI, SrcIdx = 0
|
||||
// instead of widening %vreg1 to the register class of %vreg0 simply do:
|
||||
// %vreg1 = instr
|
||||
const TargetRegisterClass *NewRC = CP.getNewRC();
|
||||
if (DstIdx != 0) {
|
||||
MachineOperand &DefMO = NewMI->getOperand(0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user