[PATCH] D124158: [Clang][Attr] Skip adding noundef attribute to arguments when function has convergent attribute
Eli Friedman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 27 10:05:45 PDT 2022
efriedma added a comment.
The issue you're describing sounds like it's specific to @__shfl_sync. In general, in C++, you aren't allowed to read from an uninitialized variable; see [basic.indet] in the standard. But if your testcase doesn't have undefined behavior, CUDA language rules must somehow allow this particular builtin function to take undef variables as input. (Is this documented somewhere?)
That isn't related to the "convergent" attribute; the transform you're describing doesn't break convergence rules.
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
More information about the cfe-commits