forked from OSchip/llvm-project
[Libomptarget] Change visibility to hidden for device RTL
This patch changes the visibility for all construct in the new device RTL to be hidden by default. This is done after the changes introduced in D117806 changed the visibility from being hidden by default for all device compilations. This asserts that the visibility for the device runtime library will be hidden except for the internal environment variable. This is done to aid optimization and linking of the device library. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D117807
This commit is contained in:
parent
0dfe953294
commit
26feef0846
|
@ -130,7 +130,7 @@ set (LIBOMPTARGET_LLVM_INCLUDE_DIRS_DEVICERTL "${LIBOMPTARGET_LLVM_INCLUDE_DIRS}
|
|||
list(TRANSFORM LIBOMPTARGET_LLVM_INCLUDE_DIRS_DEVICERTL PREPEND "-I")
|
||||
|
||||
# Set flags for LLVM Bitcode compilation.
|
||||
set(bc_flags -S -x c++ -std=c++17
|
||||
set(bc_flags -S -x c++ -std=c++17 -fvisibility=hidden
|
||||
${clang_opt_flags}
|
||||
-Xclang -emit-llvm-bc
|
||||
-Xclang -aux-triple -Xclang ${aux_triple}
|
||||
|
@ -231,5 +231,5 @@ foreach(sm ${nvptx_sm_list})
|
|||
endforeach()
|
||||
|
||||
foreach(mcpu ${amdgpu_mcpus})
|
||||
compileDeviceRTLLibrary(${mcpu} amdgpu -target amdgcn-amd-amdhsa -D__AMDGCN__ -fvisibility=default -nogpulib)
|
||||
compileDeviceRTLLibrary(${mcpu} amdgpu -target amdgcn-amd-amdhsa -D__AMDGCN__ -nogpulib)
|
||||
endforeach()
|
||||
|
|
|
@ -193,8 +193,7 @@ enum OMPTgtExecModeFlags : int8_t {
|
|||
// TODO: clang should use address space 5 for omp_thread_mem_alloc, but right
|
||||
// now that's not the case.
|
||||
#define THREAD_LOCAL(NAME) \
|
||||
NAME [[clang::loader_uninitialized, clang::address_space(5), \
|
||||
gnu::visibility("hidden")]]
|
||||
NAME [[clang::loader_uninitialized, clang::address_space(5)]]
|
||||
|
||||
// TODO: clang should use address space 4 for omp_const_mem_alloc, maybe it
|
||||
// does?
|
||||
|
|
|
@ -23,8 +23,10 @@ using namespace _OMP;
|
|||
extern uint32_t __omp_rtl_debug_kind; // defined by CGOpenMPRuntimeGPU
|
||||
|
||||
// TODO: We want to change the name as soon as the old runtime is gone.
|
||||
// This variable should be visibile to the plugin so we override the default
|
||||
// hidden visibility.
|
||||
DeviceEnvironmentTy CONSTANT(omptarget_device_environment)
|
||||
__attribute__((used, retain, weak));
|
||||
__attribute__((used, retain, weak, visibility("protected")));
|
||||
|
||||
uint32_t config::getDebugKind() {
|
||||
return __omp_rtl_debug_kind & omptarget_device_environment.DebugKind;
|
||||
|
|
|
@ -132,7 +132,7 @@ macro(add_cuda_bc_library)
|
|||
-fopenmp -fopenmp-cuda-mode -Xclang -fopenmp-is-device
|
||||
-D__AMDGCN__
|
||||
-Xclang -target-cpu -Xclang ${mcpu}
|
||||
-fvisibility=default
|
||||
-fvisibility=hidden
|
||||
-Wno-unused-value
|
||||
-nogpulib
|
||||
-O${optimization_level}
|
||||
|
|
|
@ -34,8 +34,8 @@ typedef uint64_t __kmpc_impl_lanemask_t;
|
|||
__attribute__((used)) /* Don't discard values the plugin reads */ \
|
||||
__attribute__((weak)) /* We may have multiple definitions */ \
|
||||
__attribute__((retain)) /* Also needed to keep values alive */ \
|
||||
__attribute__((visibility("default"))) /* Access via SHT_HASH */ \
|
||||
__attribute__((section(".data"))) /* Not .bss, can write before load */
|
||||
__attribute__((visibility("protected"))) /* Access via SHT_HASH */ \
|
||||
__attribute__((section(".data"))) /* Not .bss, can write before load */
|
||||
|
||||
#include "llvm/Frontend/OpenMP/OMPGridValues.h"
|
||||
|
||||
|
|
|
@ -165,6 +165,7 @@ set(bc_flags -S -x c++ -O1 -std=c++14
|
|||
-mllvm -openmp-opt-disable
|
||||
-ffreestanding
|
||||
-target nvptx64
|
||||
-fvisibility=hidden
|
||||
-Xclang -emit-llvm-bc
|
||||
-Xclang -aux-triple -Xclang ${aux_triple}
|
||||
-fopenmp -fopenmp-cuda-mode -Xclang -fopenmp-is-device
|
||||
|
|
Loading…
Reference in New Issue