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

Michael Kruse via llvm-dev llvm-dev at lists.llvm.org
Mon Jul 6 08:26:51 PDT 2020


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.

Michael


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


More information about the llvm-dev mailing list