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

Petar Avramovic via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 28 08:17:43 PDT 2021


Petar.Avramovic 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)
----------------
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?


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

https://reviews.llvm.org/D106879



More information about the llvm-commits mailing list