[llvm] [AMDGPU] Fix machine verification failure from INIT_EXEC lowering (PR #98333)
Carl Ritson via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 10 18:54:53 PDT 2024
================
@@ -1717,7 +1719,7 @@ bool SIWholeQuadMode::runOnMachineFunction(MachineFunction &MF) {
LIS->removeAllRegUnitsForPhysReg(AMDGPU::SCC);
// If we performed any kills then recompute EXEC
- if (!KillInstrs.empty())
+ if (!KillInstrs.empty() || !InitExecInstrs.empty())
LIS->removeAllRegUnitsForPhysReg(AMDGPU::EXEC);
----------------
perlfu wrote:
In this test case they are formed in Register Coalescer when it attempts to merge a copy of EXEC with a virtual and asks for an interval on a EXEC reg unit.
Registered registers still have intervals, they are a sequence of a dead defs, one for each assignment to the register.
You can see this in `LiveIntervals::computeRegUnitRange`.
I do not know the use for this, but assume it is for interference calculations.
https://github.com/llvm/llvm-project/pull/98333
More information about the llvm-commits
mailing list