[llvm-dev] Help on finding Base GEP

Venkataramanan Kumar via llvm-dev llvm-dev at lists.llvm.org
Thu May 31 22:21:19 PDT 2018


Hi,

On 30 May 2018 at 18:09, Hal Finkel <hfinkel at anl.gov> wrote:

>
> On 05/30/2018 06:04 AM, Siddharth Bhat via llvm-dev wrote:
>
> You can run SCEV which will see through bitcasts and GEPs, so it should
> give an expression of the form (base + offset) on the pointer of the load.
>
>
> Specifically, you can use ScalarEvolution to subtract the expression for
> the base descriptor from the expression for the loaded pointer and see if
> the result is a SCEVConstant.
>
> Also, you might find GetPointerBaseWithConstantOffset (in
> ValueTracking.h) useful.
>
>  -Hal
>


Thank you,  I will try using SCEV.

regards,
Venkat.


>
>
>
> Cheers
> siddharth
>
> On Wed 30 May, 2018, 16:30 Venkataramanan Kumar via llvm-dev, <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hi,
>>
>> Below is the snippet of  LLVM IR code generated by Flang
>>
>> ---snip--
>>   %3 = getelementptr i64, i64* %"a$sd", i64 11, !dbg !16
>>   %4 = bitcast i64* %3 to i32*, !dbg !16
>>   %5 = load i32, i32* %4, align 4, !dbg !16, !tbaa !22
>> ---snip--
>>
>> My requirement is for any such LoadInst (example: %5),  I want to check
>> if its base GEP (i.e. %3) loads at particular offset (11) from its
>> corresponding arrays descriptor structure (a$sd).
>>
>> is there any API in LLVM to check this? or I need to write my own?
>>
>> regards,
>> Venkat.
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
> --
> Sending this from my phone, please excuse any typos!
>
>
> _______________________________________________
> LLVM Developers mailing listllvm-dev at lists.llvm.orghttp://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
> --
> Hal Finkel
> Lead, Compiler Technology and Programming Languages
> Leadership Computing Facility
> Argonne National Laboratory
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180601/19fabf83/attachment.html>


More information about the llvm-dev mailing list