[llvm-dev] Is it valid to dereference a pointer that have undef bits in its offset?

Juneyoung Lee via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 20 15:54:15 PDT 2020


> %p2 = gep %p, (undef & 8)
A silly typo: undef & 8 -> undef & 7

On Mon, Sep 21, 2020 at 7:47 AM Juneyoung Lee <juneyoung.lee at sf.snu.ac.kr>
wrote:

> Hello all,
>
> Is it valid to dereference a pointer that has undef bits in its offset?
>
> For example,
>
> %p = alloca [8 x i8]
> %p2 = gep %p, (undef & 8)
> store 0, %p2
>
> undef & 8 is always less than 8, so technically it will store zero to one
> of the array's elements.
>
> The reason is that I want to improve no-undef analysis by suggesting that
> a pointer that is passed to load/store is well-defined, by making it raise
> UB when a pointer with undef bits is given.
>
> A suggested patch is here: https://reviews.llvm.org/D87994
>
> I wonder whether there is a case using this to do something that I'm not
> aware.
>
> Thanks,
> Juneyoung
>


-- 

Juneyoung Lee
Software Foundation Lab, Seoul National University
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200921/2d80580d/attachment.html>


More information about the llvm-dev mailing list