@@ -31,15 +31,17 @@ __attribute__((noinline)) void internal_free(void *Ptr);
3131// /{
3232
3333// / External symbol to access dynamic shared memory.
34- [[gnu::aligned(allocator::ALIGNMENT)]] extern unsigned char
35- [[clang::address_space( 3 )]] DynamicSharedBuffer[];
34+ [[gnu::aligned(
35+ allocator::ALIGNMENT )]] extern Local< unsigned char > DynamicSharedBuffer[];
3636
3737// / The kernel environment passed to the init method by the compiler.
38- static KernelEnvironmentTy *SHARED (KernelEnvironmentPtr);
38+ [[clang::loader_uninitialized]] static Local<KernelEnvironmentTy *>
39+ KernelEnvironmentPtr;
3940
4041// / The kernel launch environment passed as argument to the kernel by the
4142// / runtime.
42- static KernelLaunchEnvironmentTy *SHARED (KernelLaunchEnvironmentPtr);
43+ [[clang::loader_uninitialized]] static Local<KernelLaunchEnvironmentTy *>
44+ KernelLaunchEnvironmentPtr;
4345
4446// /}
4547
@@ -165,7 +167,8 @@ static_assert(state::SharedScratchpadSize / mapping::MaxThreadsPerTeam <= 256,
165167 " Shared scratchpad of this size not supported yet." );
166168
167169// / The allocation of a single shared memory scratchpad.
168- static SharedMemorySmartStackTy SHARED (SharedMemorySmartStack);
170+ [[clang::loader_uninitialized]] static Local<SharedMemorySmartStackTy>
171+ SharedMemorySmartStack;
169172
170173void SharedMemorySmartStackTy::init (bool IsSPMD) {
171174 Usage[mapping::getThreadIdInBlock ()] = 0 ;
@@ -277,8 +280,10 @@ void state::TeamStateTy::assertEqual(TeamStateTy &Other) const {
277280 ASSERT (HasThreadState == Other.HasThreadState , nullptr );
278281}
279282
280- state::TeamStateTy SHARED (ompx::state::TeamState);
281- state::ThreadStateTy **SHARED (ompx::state::ThreadStates);
283+ [[clang::loader_uninitialized]] Local<state::TeamStateTy>
284+ ompx::state::TeamState;
285+ [[clang::loader_uninitialized]] Local<state::ThreadStateTy **>
286+ ompx::state::ThreadStates;
282287
283288namespace {
284289
@@ -507,10 +512,10 @@ void *llvm_omp_get_dynamic_shared() { return __kmpc_get_dynamic_shared(); }
507512// / NUM_SHARED_VARIABLES_IN_SHARED_MEM we will malloc space for communication.
508513constexpr uint64_t NUM_SHARED_VARIABLES_IN_SHARED_MEM = 64 ;
509514
510- [[clang::loader_uninitialized]] static void *[[clang::address_space(
511- 3 )]] SharedMemVariableSharingSpace[NUM_SHARED_VARIABLES_IN_SHARED_MEM];
512- [[clang::loader_uninitialized]] static void **[[clang::address_space(
513- 3 )]] SharedMemVariableSharingSpacePtr;
515+ [[clang::loader_uninitialized]] static Local< void *>
516+ SharedMemVariableSharingSpace[NUM_SHARED_VARIABLES_IN_SHARED_MEM];
517+ [[clang::loader_uninitialized]] static Local< void **>
518+ SharedMemVariableSharingSpacePtr;
514519
515520void __kmpc_begin_sharing_variables (void ***GlobalArgs, uint64_t nArgs) {
516521 if (nArgs <= NUM_SHARED_VARIABLES_IN_SHARED_MEM) {
0 commit comments