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

Michael Kruse via llvm-dev
Thu, 02 Jul 2020 05:07:52 -0000

LLVM has multiple dependence analyses, each with its up- and downsides:

 * llvm::DependenceAnalysis
 * llvm::LoopAccessAnalysis
 * llvm::MemorySSA
 * polly::DependenceInfo

Just running the analysis passes does not change anything, the
analysis has to be used by a transformation pass. Since there is no
common interface for dependence analysis, each transformation pass
expects a specific analysis and runs it itself if necessary. For
instance LoopVectorize uses LoopAccessAnalysis.

None of these are well documented(*), I suggest to look at the
transformation pass sources that use them.

Michael

(*) For MemorySSA, there is https://www.llvm.org/docs/MemorySSA.html

Am Mi., 1. Juli 2020 um 19:52 Uhr schrieb Jiho Ro via llvm-dev
<llvm-dev at lists.llvm.org>:
>
> Hello,
>
> I had a question similar to this one in the link below.
>
> http://lists.llvm.org/pipermail/llvm-dev/2015-January/080589.html
>
> In addition, if we can't get RAW dependencies information using the
provided llvm tools, how would I write a pass for it? Are there any helpful
resources?
>
> Thanks,
> Jiho
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev