[llvm-dev] How to get information about data dependencies? (original) (raw)

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