[PATCH] D61399: [OpenMP][Clang] Support for target math functions
Alexey Bataev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu May 2 11:10:10 PDT 2019
ABataev added a comment.
In D61399#1488299 <https://reviews.llvm.org/D61399#1488299>, @hfinkel wrote:
> In D61399#1488262 <https://reviews.llvm.org/D61399#1488262>, @ABataev wrote:
>
> > I don't like this implementation. Seems to me, it breaks one of the OpenMP standard requirements: the program can be compiled without openmp support. I assume, that with this includes the program won't be able to be compiled without OpenMP support anymore because it may use some device-specific math functions explicitly.
> > Instead, I would like to see some additional, device-scpecific math header file, that must be included explicitly to support some device-specific math functions. And we need to provide default implementations for those extra math functions for all the platforms we're going to support, including default host implementations.
>
>
> Can you provide an example of a conforming program that can't be compiled without OpenMP support? Regardless of the use of any device-specific functions (which isn't covered by the standard, of course, but might be needed in practice), the code still needs to be compilable by the host in order to generate the host-fallback version. This doesn't change that. Thus, any program that uses anything from this math.h, etc. needs to compile for the host, and thus, likely compiles without OpenMP support. Maybe I'm missing your point, however.
Assume we have something like this:
#pragma omp target if(cond)
a = __nv_xxxx(....);
Instead of `__nv_xxx` you can try to use any Cuda-specific function, which is not the part of the standard `math.h`/`cmath` files. Will it be compilable even with OpenMP?
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D61399/new/
https://reviews.llvm.org/D61399
More information about the cfe-commits
mailing list