[llvm-dev] Regarding Dependence distance dump

Sebastian Pop via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 19 15:26:56 PDT 2018


On Wed, Sep 19, 2018 at 4:58 AM Venkataramanan Kumar <
venkataramanan.kumar.llvm at gmail.com> wrote:

> Hi,
>
> I tired to see when this behavior changed in LLVM.
> It seems to start from.
> --snip--
> commit 95e5d37d5868ebde2302bc302c1e0af407c5646d
> Author: Sebastian Pop <sebpop at gmail.com>
> Date:   Tue Mar 6 21:55:59 2018 +0000
>
>     DA: remove uses of GEP, only ask SCEV
> --snip--
>
> https://reviews.llvm.org/D35430
> Review URL says "GEP" based approach was wrong for multidimensional array
> references. The LLVM-DA now uses SCEV representation.  But why we are not
> getting the distance with SCEV?  Current DA will not work for
> multidimensional arrays?
>

It should work with delinearization of multi-dim arrays.


>
> I need to get dependence distance for a transformation that I am working
> on.  How do I get distance for such cases, esp multidimensional arrays?
>
> Thanks and regards,
> Venkat.
>
> On Tue, 18 Sep 2018 at 19:00, Venkataramanan Kumar <
> venkataramanan.kumar.llvm at gmail.com> wrote:
>
>> Hi,
>>
>> For the below test case, I need the dependence distance between the array
>> references  "a[j][i]"  and "a[j-1][i-2]".
>>
>> --Snip--
>> int a[5][5];
>> int b[10];
>>
>> void test()
>> {
>>         for (int j=1;j<5;j++)
>>                 for (int i=2;i<5;i++)
>>                 {
>>                         a[j][i] = 3.0;
>>                         b[i]= a[j-1][i-2] ;
>>                 }
>> }
>> --Snip-
>>
>> Compile steps
>> clang -O1 -emit-llvm -S test.c
>> opt  -analyze -da dist.ll
>>
>>
you are missing the -delinearize flag to opt.


> I tried dumping the dependence information with LLVM trunk (2018_09_17),
>> it shows:
>>
>> Printing analysis 'Dependence Analysis' for function 'test':
>> da analyze - none!
>> da analyze - flow [< <>]! <== dumps direction vector
>> da analyze - none!
>> da analyze - none!
>> da analyze - none!
>> da analyze - consistent output [S 0]!
>>
>> LLVM Release 6.0.1 dumps the expected distance.
>> Printing analysis 'Dependence Analysis' for function 'test':
>> da analyze - none!
>> da analyze - consistent flow [1 2]!
>> da analyze - none!
>> da analyze - none!
>> da analyze - none!
>> da analyze - consistent output [S 0]!
>>
>> In trunk, it is now showing directions instead of distances.
>> How to get the dependence distance?
>>
>> regards,
>> Venkat.
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180919/1937f35d/attachment.html>


More information about the llvm-dev mailing list