[llvm-dev] How to get information about data dependencies?

David Greene via llvm-dev llvm-dev at lists.llvm.org
Tue Jul 7 08:16:27 PDT 2020


Michael Kruse via llvm-dev <llvm-dev at lists.llvm.org> writes:

> AFAIK they are independent developments. LoopAccessAnalysis was
> extracted out of the LoopVectorizer in 2015, and first developed in
> 2013 (https://github.com/llvm/llvm-project/commit/d517976758c8674bdcd4c74457f7a83f20e432c5)
>
> DependenceAnalysis was a from-scratch implementation from 2012
> (https://github.com/llvm/llvm-project/commit/59b61b9e2c549956b1094417a72c3943c20c9234)
>
> I do not know why LoopVectorize would not make use of
> DependenceAnalysis in 2013.

Is anyone looking at unifying these?  It's super confusing as things
stand.

                      -David

> Am Mo., 6. Juli 2020 um 09:51 Uhr schrieb David Greene <david.greene at hpe.com>:
>>
>> Michael Kruse via llvm-dev <llvm-dev at lists.llvm.org> writes:
>>
>> > LLVM has multiple dependence analyses, each with its up- and downsides:
>> >
>> >  * llvm::DependenceAnalysis
>> >  * llvm::LoopAccessAnalysis
>>
>> Can someone explain the differences between these?  As far as I can tell
>> they essentially do the same thing (though perhaps one is more
>> precise?).  LAA seems to be used by vectorization (what else?) while DA
>> seems to be used by loop transformations (what else?).
>>
>> I am not a loop opt guy so while I'm familiar with the basic ideas, the
>> details are somewhat lost on me.  Is there a reason to have two passes
>> or should they be combined and maintained as one pass?  If I have need
>> of dependence analysis it's not clear which I should use and the
>> comments are not much help.
>>
>>                    -David
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list