[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