mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-23 16:19:52 +00:00
Dead code elimination may separate the live interval into multiple connected components.
I have convinced myself that it can only happen when a phi value dies. When it happens, allocate new virtual registers for the components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127827 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -460,7 +460,7 @@ bool InlineSpiller::reMaterializeFor(MachineBasicBlock::iterator MI) {
|
||||
}
|
||||
|
||||
// Alocate a new register for the remat.
|
||||
LiveInterval &NewLI = Edit->create(MRI, LIS, VRM);
|
||||
LiveInterval &NewLI = Edit->create(LIS, VRM);
|
||||
NewLI.markNotSpillable();
|
||||
|
||||
// Rematting for a copy: Set allocation hint to be the destination register.
|
||||
@@ -685,7 +685,7 @@ void InlineSpiller::spillAroundUses(unsigned Reg) {
|
||||
|
||||
// Allocate interval around instruction.
|
||||
// FIXME: Infer regclass from instruction alone.
|
||||
LiveInterval &NewLI = Edit->create(MRI, LIS, VRM);
|
||||
LiveInterval &NewLI = Edit->create(LIS, VRM);
|
||||
NewLI.markNotSpillable();
|
||||
|
||||
if (Reads)
|
||||
|
||||
Reference in New Issue
Block a user