diff --git a/openmp/libomptarget/deviceRTLs/common/omptarget.h b/openmp/libomptarget/deviceRTLs/common/omptarget.h --- a/openmp/libomptarget/deviceRTLs/common/omptarget.h +++ b/openmp/libomptarget/deviceRTLs/common/omptarget.h @@ -296,7 +296,9 @@ extern omptarget_nvptx_ThreadPrivateContext * EXTERN_SHARED(omptarget_nvptx_threadPrivateContext); -extern uint32_t EXTERN_SHARED(execution_param); +extern uint16_t EXTERN_SHARED(executionMode); +extern uint16_t EXTERN_SHARED(runtimeMode); + extern void *EXTERN_SHARED(ReductionScratchpadPtr); //////////////////////////////////////////////////////////////////////////////// diff --git a/openmp/libomptarget/deviceRTLs/common/src/omp_data.cu b/openmp/libomptarget/deviceRTLs/common/src/omp_data.cu --- a/openmp/libomptarget/deviceRTLs/common/src/omp_data.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/omp_data.cu @@ -55,7 +55,8 @@ //////////////////////////////////////////////////////////////////////////////// // OpenMP kernel execution parameters //////////////////////////////////////////////////////////////////////////////// -uint32_t SHARED(execution_param); +uint16_t SHARED(executionMode); +uint16_t SHARED(runtimeMode); //////////////////////////////////////////////////////////////////////////////// // Scratchpad for teams reduction. diff --git a/openmp/libomptarget/deviceRTLs/common/src/omptarget.cu b/openmp/libomptarget/deviceRTLs/common/src/omptarget.cu --- a/openmp/libomptarget/deviceRTLs/common/src/omptarget.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/omptarget.cu @@ -161,8 +161,6 @@ } // Return true if the current target region is executed in SPMD mode. -EXTERN int8_t __kmpc_is_spmd_exec_mode() { - return (execution_param & ModeMask) == Spmd; -} +EXTERN int8_t __kmpc_is_spmd_exec_mode() { return executionMode == Spmd; } #pragma omp end declare target diff --git a/openmp/libomptarget/deviceRTLs/common/src/support.cu b/openmp/libomptarget/deviceRTLs/common/src/support.cu --- a/openmp/libomptarget/deviceRTLs/common/src/support.cu +++ b/openmp/libomptarget/deviceRTLs/common/src/support.cu @@ -20,19 +20,13 @@ //////////////////////////////////////////////////////////////////////////////// void setExecutionParameters(ExecutionMode EMode, RuntimeMode RMode) { - execution_param = EMode; - execution_param |= RMode; + executionMode = EMode; + runtimeMode = RMode; } -bool isGenericMode() { return (execution_param & ModeMask) == Generic; } +bool isRuntimeUninitialized() { return runtimeMode == RuntimeUninitialized; } -bool isRuntimeUninitialized() { - return (execution_param & RuntimeMask) == RuntimeUninitialized; -} - -bool isRuntimeInitialized() { - return (execution_param & RuntimeMask) == RuntimeInitialized; -} +bool isRuntimeInitialized() { return !isRuntimeUninitialized(); } //////////////////////////////////////////////////////////////////////////////// // Execution Modes based on location parameter fields diff --git a/openmp/libomptarget/deviceRTLs/common/support.h b/openmp/libomptarget/deviceRTLs/common/support.h --- a/openmp/libomptarget/deviceRTLs/common/support.h +++ b/openmp/libomptarget/deviceRTLs/common/support.h @@ -22,17 +22,14 @@ enum ExecutionMode { Spmd = 0x00u, Generic = 0x01u, - ModeMask = 0x01u, }; enum RuntimeMode { RuntimeInitialized = 0x00u, RuntimeUninitialized = 0x02u, - RuntimeMask = 0x02u, }; void setExecutionParameters(ExecutionMode EMode, RuntimeMode RMode); -bool isGenericMode(); bool isRuntimeUninitialized(); bool isRuntimeInitialized();