[PATCH] D130797: [AMDGPU] Implement pipeline solver for non-trivial pipelines

Jeffrey Byrnes via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 5 08:35:39 PDT 2022


jrbyrnes added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUIGroupLP.cpp:747
+    // increase the cost
+    if (DAG->IsReachable(B, A))
+      continue;
----------------
kerbowa wrote:
> Will missed edges ever be non-zero?  Try add edge will return false if B is a successor of A and that is already checked above. What is the intended meaning of a missed edge here?
A missed edge is simply when we need the DAG to have an edge to conform to the pipeline, but the DAG doesn't support it. Missed edge is the unit used in calculating cost. -- the main idea is quantifying how well we are able to mutate the DAG.

TryAddEdge will return false if B is already a successor of A but that does not represent a failed opportunity because the DAG already has the edge we want. Since the DAG conforms to our pipeline for these two nodes, we don't add any cost -- that is why we early check for this condition.

In my tests, I have frequently seen 0 missed-edges / cost. This occurs whenever we are able to add an edge between the SU and all of the SUs in the current SG.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D130797



More information about the llvm-commits mailing list