[llvm] [DSE] Fold malloc/store pair into calloc (PR #87048)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 29 06:33:07 PDT 2024


dtcxzyw wrote:

Should we revert the transform when the memory region allocated by calloc will be overridden by other stores?

Example:
```
define void @test(i1 %cond, i64 %x, i64 %y) {
  %ptr = call ptr @malloc(i64 8)
  store i64 0, ptr %ptr, align 8 
  br i1 %cond, label %if.then, label %if.else

if.then:
  store i64 %x, ptr %ptr, align 8 ; It will be created in later passes
  ret void
if.else:
  store i64 %y, ptr %ptr, align 8
  ret void
}
```

See also https://github.com/dtcxzyw/llvm-opt-benchmark/pull/461#discussion_r1544493084

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


More information about the llvm-commits mailing list