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

David Greene via llvm-dev
Mon, 06 Jul 2020 14:50:56 -0000

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