[OpenMP][Clang] Support for target math functions
authorGheorghe-Teodor Bercea <gheorghe-teod.bercea@ibm.com>
Mon, 6 May 2019 18:19:15 +0000 (18:19 +0000)
committerGheorghe-Teodor Bercea <gheorghe-teod.bercea@ibm.com>
Mon, 6 May 2019 18:19:15 +0000 (18:19 +0000)
commit1e28a668bcf863b82ba6689a5ebf706a1452f579
treee0791ad5f7d589d0d72b198d7c0f99f4b3491b11
parent181aff63fb148f46946becbbc64ace638291e902
[OpenMP][Clang] Support for target math functions

Summary:
In this patch we propose a temporary solution to resolving math functions for the NVPTX toolchain, temporary until OpenMP variant is supported by Clang.

We intercept the inclusion of math.h and cmath headers and if we are in the OpenMP-NVPTX case, we re-use CUDA's math function resolution mechanism.

Authors:
@gtbercea
@jdoerfert

Reviewers: hfinkel, caomhin, ABataev, tra

Reviewed By: hfinkel, ABataev, tra

Subscribers: mgorny, guansong, cfe-commits, jdoerfert

Tags: #clang

Differential Revision: https://reviews.llvm.org/D61399

llvm-svn: 360063
17 files changed:
clang/lib/Driver/ToolChains/Clang.cpp
clang/lib/Headers/CMakeLists.txt
clang/lib/Headers/__clang_cuda_cmath.h
clang/lib/Headers/__clang_cuda_device_functions.h
clang/lib/Headers/__clang_cuda_libdevice_declares.h
clang/lib/Headers/__clang_cuda_math_forward_declares.h
clang/lib/Headers/openmp_wrappers/__clang_openmp_math.h [new file with mode: 0644]
clang/lib/Headers/openmp_wrappers/cmath [new file with mode: 0644]
clang/lib/Headers/openmp_wrappers/math.h [new file with mode: 0644]
clang/test/Driver/openmp-offload-gpu.c
clang/test/Headers/Inputs/include/cmath [new file with mode: 0644]
clang/test/Headers/Inputs/include/limits [new file with mode: 0644]
clang/test/Headers/Inputs/include/math.h
clang/test/Headers/nvptx_device_cmath_functions.c [new file with mode: 0644]
clang/test/Headers/nvptx_device_cmath_functions.cpp [new file with mode: 0644]
clang/test/Headers/nvptx_device_math_functions.c [new file with mode: 0644]
clang/test/Headers/nvptx_device_math_functions.cpp [new file with mode: 0644]