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