[PATCH] D85603: IR: Add convergence control operand bundle and intrinsics

Sameer Sahasrabuddhe via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 02:57:57 PDT 2020


sameerds added inline comments.


================
Comment at: llvm/docs/ConvergentOperations.rst:174-175
+
+The compiler frontend can emit IR that expresses the convergence constraints
+as follows:
+
----------------
But this use of the intrinsics does not add any new constraints, right? This specific optimization is already sufficiently constrained by control dependence.


================
Comment at: llvm/docs/ConvergentOperations.rst:743-744
+
+This problem goes away by inserting a loop heart intrinsic, which establishes
+a relationship between loop iterations across threads.
+
----------------
The exhausted reader just begs to see the //corrected// version at this point! :) 


================
Comment at: llvm/docs/ConvergentOperations.rst:807-809
+There is a cycle (closed walk in the CFG) that goes through both loop heart
+intrinsics using ``%anchor`` but not through the definition of ``%anchor``,
+so this code is invalid.
----------------
Following the structure of previous examples, it would be good to have a demonstration of how this can result in misinterpreted convergence. That would explain why this example //should be// illegal. This paragraph directly applies the rules to show how the example is //recognized// as illegal.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D85603



More information about the llvm-commits mailing list