[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