Issue 136302
Summary Basic-aa incorrectly reports NoAlias for equivalent constant pointers
Labels new issue
Assignees
Reporter GINN-Imp
    Testcase: https://godbolt.org/z/5Ghx98qdY
Since both `@ptr1` and `@ptr2` point to the same constant (`@global_var`), the result should be MustAlias or at least MayAlias—not NoAlias.
```llvm
@global_var = constant i32 0
@ptr1 = constant ptr @global_var
@ptr2 = constant ptr @global_var

define void @foo() {
entry:
  %p = load ptr, ptr @ptr1, align 8
  %q = load ptr, ptr @ptr2, align 8
  ret void
}
```
opt (trunk) -aa-pipeline=basic-aa -passes='aa-eval' -print-all-alias-modref-info:
```
Function: foo: 2 pointers, 0 call sites
  NoAlias:	ptr* @ptr1, ptr* @ptr2
```

We've done our best to ensure this IR contains no undefined behavior. If there is any UB we're missing, we’d appreciate clarification.

Thanks!
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to