MachineDCE adds to the live physical registers the live in registers
of the successor blocks, but it doesn't really add the subregisters
of those, which are also live, causing potentially instructions subregs
only to be deleted.
Changing MachineDCE into using LivePhysRegs that does the same thing
the pass is doing manually while at the same time not having the same bug
described above.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/CodeGen/DeadMachineInstructionElim.cpp | ||
---|---|---|
123–124 | RegAliasIterator? also need the super regs? |
llvm/lib/CodeGen/DeadMachineInstructionElim.cpp | ||
---|---|---|
123–124 | Wait, actually why is this code here at all? There is already a LivePhysRegs class which is what I initially assumed this was |
llvm/lib/CodeGen/DeadMachineInstructionElim.cpp | ||
---|---|---|
123–124 |
|
RegAliasIterator? also need the super regs?