[PATCH] D106879: GlobalISel: Fix infinite loop in legalization artifact combiner

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 28 17:05:00 PDT 2021


aemerson added inline comments.


================
Comment at: llvm/test/CodeGen/AMDGPU/GlobalISel/bug-legalization-artifact-combiner-dead-def.mir:115-116
+    ; GFX10: [[INSERT:%[0-9]+]]:_(<2 x s32>) = G_INSERT [[BUILD_VECTOR]], [[EXTRACT]](s32), 32
+    ; GFX10: %dbg_use:_(s32), %11:_(s32) = G_UNMERGE_VALUES [[INSERT]](<2 x s32>)
+    ; GFX10: DBG_VALUE [[EXTRACT1]](s32), $noreg, <0xb6ade0>, !DIExpression(), debug-location !DILocation(line: 1, column: 1, scope: <0xb6aa70>)
+    ; GFX10: G_STORE [[EXTRACT1]](s32), [[COPY]](p5) :: (store (s32), align 8, addrspace 5)
----------------
Petar.Avramovic wrote:
> With use_nodbg_empty, this will look like DBG_VALUE %dbg_use(s32) because we skip combine (replace register with found value). It also seems wrong to mark register as dead in that case. Should we treat DBG instrs in special way in this combine?
If we don't ignore the debug user, then we could have potentially differing codegen between release and debug builds.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106879/new/

https://reviews.llvm.org/D106879



More information about the llvm-commits mailing list