[PATCH] D90361: Prevent LICM and machineLICM from hoisting convergent operations

Xiaoqing Wu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 29 10:33:52 PDT 2020


xiaoqing_wu added a comment.

In D90361#2361510 <https://reviews.llvm.org/D90361#2361510>, @foad wrote:

>> Results of convergent operations are implicitly affected by the enclosing control flows and should not be hoisted out of arbitrary loops.
>
> I thought it was OK to hoist them out of loops, but not to sink them into loops? The langref says they "should not be made control-dependent on additional values".

In practice, convergent attribute has been used on operations that involve inter-thread communication which results are implicitly affected by the enclosing control flows. This was pointed out in the proposal in https://reviews.llvm.org/D85603. The definition in the current langref doesn't reflect how the attribute is used.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D90361



More information about the llvm-commits mailing list