[clang] [llvm] [DSE] Make DSE eliminate stores to objects with a sized dead_on_return (PR #173694)

Aiden Grossman via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 23 07:02:31 PST 2026


================
@@ -886,5 +886,89 @@ define ptr @test_dead_on_return_ptr_returned(ptr dead_on_return %p) {
   ret ptr %p
 }
 
+define void @test_dead_on_return_oob(ptr dead_on_return(4) %p) {
+; CHECK-LABEL: @test_dead_on_return_oob(
+; CHECK-NEXT:    [[LOCAL_VAR:%.*]] = alloca ptr, align 8
+; CHECK-NEXT:    call void @opaque(ptr [[LOCAL_VAR]])
+; CHECK-NEXT:    [[P1:%.*]] = getelementptr i8, ptr [[P:%.*]], i64 8
+; CHECK-NEXT:    store ptr [[LOCAL_VAR]], ptr [[P1]], align 8
+; CHECK-NEXT:    ret void
+;
+  %local.var = alloca ptr
+  call void @opaque(ptr %local.var)
----------------
boomanaiden154 wrote:

Yes. Updated to just store constant integers (used `i64` since some of the cases were written with types of that bitwidth in mind).

https://github.com/llvm/llvm-project/pull/173694


More information about the cfe-commits mailing list