sameerds added a comment. In D75917#1917296 <https://reviews.llvm.org/D75917#1917296>, @JonChesterfield wrote:
> In D75917#1916972 <https://reviews.llvm.org/D75917#1916972>, @sameerds wrote: > > > Well, there is a problem: The LangRef says that scopes are target-defined. > > This change says that scopes are defined by the high-level language and > > further assumes that OpenCL scopes make sense in all languages. Besides > > conflicting with the LangRef, this not seem to work with C++, which has no > > scopes and nor with CUDA or HIP, whose scopes are not represented in any > > AtomicScopeModel. > > > I don't follow. IR has a fence instruction. This builtin maps directly to it, > passing whatever integer arguments were given to the intrinsic along > unchanged. It's exactly as valid, or invalid, as said fence instruction. Is it really? The scope argument of the IR fence is a target-specific string: http://llvm.org/docs/LangRef.html#syncscope The change that I see here is assuming a numerical argument, and also assuming that the numbers used must conform to the OpenCL enum. That would certainly make the builtin quite different from the IR fence. Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D75917/new/ https://reviews.llvm.org/D75917 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits