[PATCH] D70609: [DDG] Data Dependence Graph - Topological Sort

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Nov 22 14:25:16 PST 2019


Meinersbur accepted this revision.
Meinersbur added inline comments.
This revision is now accepted and ready to land.


================
Comment at: llvm/test/Analysis/DDG/basic-b.ll:50
 ; CHECK-NEXT: Instructions:
 ; CHECK-NEXT:    %arrayidx2 = getelementptr inbounds float, float* %a, i64 %sub1
 ; CHECK-NEXT: Edges:
----------------
[design question] def-uses only manifest as flow-dependency, but no anti- or output dependencies. Looking only at the dependencies, a loop distribution pass could conclude that the computation of e.g. `%arrayidx2` could be split from the load/store pi-node. However, this is not possible without storing the values in an intermediate array.

My question is how the loop distribution pass should handle the situation? Will anti- and output dependencies for registers added later? Does the pass have to check on its own that no def-use chain would be separated into different loops?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70609/new/

https://reviews.llvm.org/D70609





More information about the llvm-commits mailing list