[PATCH] D59648: [BasicAliasAnalysis] Fix computation for arrays > half of address space

Eugene Sharygin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 17 04:30:59 PDT 2019


eush marked 2 inline comments as done.
eush added inline comments.


================
Comment at: test/Analysis/BasicAA/cs-cs.ll:276
 ; CHECK: NoModRef:  Ptr: i8* %q <->  call void @an_inaccessiblememonly_func()
-; CHECK: NoModRef:  Ptr: i8* %p <->  call void @an_inaccessibleorargmemonly_func(i8* %q)
+; CHECK: Both ModRef:  Ptr: i8* %p <->  call void @an_inaccessibleorargmemonly_func(i8* %q)
 ; CHECK: Both ModRef (MustAlias):  Ptr: i8* %q <->  call void @an_inaccessibleorargmemonly_func(i8* %q)
----------------
hfinkel wrote:
> Why did this change?
> 
> The change doesn't look wrong, but it's also unrelated to the half-the-address-space issue (AFAIKT, this test has 32-bit pointers), so it will be useful to understand what fixed this.
> 
This change is caused by the fact that the wraparound semantics implemented in
this diff makes `%p` and `%q` MayAlias aliases of each other. The object
pointed to by `%q` has unknown size, and with wraparound it can very well span
until `%p`.

Previously, without wraparound, the object could only span until the end of
the address space.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D59648





More information about the llvm-commits mailing list