aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorJay Foad <jay.foad@amd.com>2021-12-08 17:35:49 +0000
committerJay Foad <jay.foad@amd.com>2021-12-16 09:49:27 +0000
commitcce93b339724a34928f0630fa8ed6b09b4ba753b (patch)
treeecdc500e3e1ea86478a6026a0c0cc12d88d7ad70 /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parent0ca00c353823627c814fdff70631d15549a7b559 (diff)
downloadllvm-cce93b339724a34928f0630fa8ed6b09b4ba753b.zip
llvm-cce93b339724a34928f0630fa8ed6b09b4ba753b.tar.gz
llvm-cce93b339724a34928f0630fa8ed6b09b4ba753b.tar.bz2
[MachineVerifier] Undef subreg operands do not require subranges
D112556 added verification that the live interval for a subreg operand must have subranges. This patch fixes a corner case, where if all subreg operands for a particular register are undef uses then no subranges are required. This matches how LiveIntervalCalc would build the live intervals in the first place, since an undef use is not considered to read the register. Before this patch, CodeGen/AMDGPU/no-remat-indirect-mov.mir would fail with -early-live-intervals: # After Live Interval Analysis ... *** Bad machine code: Live interval for subreg operand has no subranges *** - function: index_vgpr_waterfall_loop - basic block: %bb.1 (0x6a9a968) [352B;496B) - instruction: 432B %24:vgpr_32 = V_MOV_B32_e32 undef %18.sub0:vreg_512, implicit $exec, implicit %18:vreg_512, implicit $m0 - operand 1: undef %18.sub0:vreg_512 Differential Revision: https://reviews.llvm.org/D115360
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions