[llvm-dev] Alias Analysis with inbound GEPs

Hal Finkel via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 25 10:16:40 PDT 2016

----- Original Message -----

> From: "Elena via llvm-dev Demikhovsky" <llvm-dev at lists.llvm.org>
> To: "llvm-dev" <llvm-dev at lists.llvm.org>
> Sent: Monday, July 25, 2016 9:45:55 AM
> Subject: [llvm-dev] Alias Analysis with inbound GEPs

> Hi,

> I’m checking aliasing of two pointers:

> %GEP1 = getelementptr inbounds %struct.s, %struct.s* %0, i64 0, i32
> 1, i64 %indvars.iv41, i64 %indvars.iv39
> %GEP2 = getelementptr inbounds %struct.s, %struct.s* %0, i64 0, i32
> 16

> The result I got is “PartialAlias” because the indices of the GEP1
> are variable.
That seems like a bug. PartialAlias should only be returned when we can prove a partial overlap. Otherwise, MayAlias should be returned. 

> Shouldn’t the “inbounds” keyword mean that the access to sub-array is
> also in-bounds?
No. inbounds applies only to the whole object. 

> I’m trying to reach “NoAlias” consensus between GEP1 and GEP2.
Did the original code come from C or C++? What are we modeling here? 


> Thanks.

> * Elena

> ---------------------------------------------------------------------
> Intel Israel (74) Limited
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


Hal Finkel 
Assistant Computational Scientist 
Leadership Computing Facility 
Argonne National Laboratory 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160725/c448b8f4/attachment.html>

More information about the llvm-dev mailing list