[PATCH] D153151: [EarlyCSE] Do not CSE convergent readnone calls
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Jun 17 00:46:53 PDT 2023
nikic added inline comments.
================
Comment at: llvm/lib/Transforms/Scalar/EarlyCSE.cpp:144
+ !CI->getFunction()->isPresplitCoroutine() &&
+ !CI->isConvergent();
}
----------------
arsenm wrote:
> foad wrote:
> > arsenm wrote:
> > > Maybe should be checking nosync instead?
> > How is that related?
> The comment here and special case of coroutines seems like it was hacking around the general check of nosync. In a roundabout way checking nosync is the same as convergent. IIRC the interaction between them is no-convergent + memory(none) implies nosync
The coroutine check has no relation to nosync. It's hacking around a weakness in memory effect modelling that is unrelated to synchronization.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D153151/new/
https://reviews.llvm.org/D153151
More information about the llvm-commits
mailing list