@@ -28,15 +28,17 @@ using namespace ompx;
2828// /{
2929
3030// / External symbol to access dynamic shared memory.
31- [[gnu::aligned(allocator::ALIGNMENT)]] extern unsigned char
32- [[clang::address_space( 3 )]] DynamicSharedBuffer[];
31+ [[gnu::aligned(
32+ allocator::ALIGNMENT )]] extern Local< unsigned char > DynamicSharedBuffer[];
3333
3434// / The kernel environment passed to the init method by the compiler.
35- static KernelEnvironmentTy *SHARED (KernelEnvironmentPtr);
35+ [[clang::loader_uninitialized]] static Local<KernelEnvironmentTy *>
36+ KernelEnvironmentPtr;
3637
3738// / The kernel launch environment passed as argument to the kernel by the
3839// / runtime.
39- static KernelLaunchEnvironmentTy *SHARED (KernelLaunchEnvironmentPtr);
40+ [[clang::loader_uninitialized]] static Local<KernelLaunchEnvironmentTy *>
41+ KernelLaunchEnvironmentPtr;
4042
4143// /}
4244
@@ -108,7 +110,8 @@ static_assert(state::SharedScratchpadSize / mapping::MaxThreadsPerTeam <= 256,
108110 " Shared scratchpad of this size not supported yet." );
109111
110112// / The allocation of a single shared memory scratchpad.
111- static SharedMemorySmartStackTy SHARED (SharedMemorySmartStack);
113+ [[clang::loader_uninitialized]] static Local<SharedMemorySmartStackTy>
114+ SharedMemorySmartStack;
112115
113116void SharedMemorySmartStackTy::init (bool IsSPMD) {
114117 Usage[mapping::getThreadIdInBlock ()] = 0 ;
@@ -220,8 +223,10 @@ void state::TeamStateTy::assertEqual(TeamStateTy &Other) const {
220223 ASSERT (HasThreadState == Other.HasThreadState , nullptr );
221224}
222225
223- state::TeamStateTy SHARED (ompx::state::TeamState);
224- state::ThreadStateTy **SHARED (ompx::state::ThreadStates);
226+ [[clang::loader_uninitialized]] Local<state::TeamStateTy>
227+ ompx::state::TeamState;
228+ [[clang::loader_uninitialized]] Local<state::ThreadStateTy **>
229+ ompx::state::ThreadStates;
225230
226231namespace {
227232
@@ -449,10 +454,10 @@ void *llvm_omp_get_dynamic_shared() { return __kmpc_get_dynamic_shared(); }
449454// / NUM_SHARED_VARIABLES_IN_SHARED_MEM we will malloc space for communication.
450455constexpr uint64_t NUM_SHARED_VARIABLES_IN_SHARED_MEM = 64 ;
451456
452- [[clang::loader_uninitialized]] static void *[[clang::address_space(
453- 3 )]] SharedMemVariableSharingSpace[NUM_SHARED_VARIABLES_IN_SHARED_MEM];
454- [[clang::loader_uninitialized]] static void **[[clang::address_space(
455- 3 )]] SharedMemVariableSharingSpacePtr;
457+ [[clang::loader_uninitialized]] static Local< void *>
458+ SharedMemVariableSharingSpace[NUM_SHARED_VARIABLES_IN_SHARED_MEM];
459+ [[clang::loader_uninitialized]] static Local< void **>
460+ SharedMemVariableSharingSpacePtr;
456461
457462void __kmpc_begin_sharing_variables (void ***GlobalArgs, uint64_t nArgs) {
458463 if (nArgs <= NUM_SHARED_VARIABLES_IN_SHARED_MEM) {
0 commit comments