diff --git a/openmp/libomptarget/DeviceRTL/include/Configuration.h b/openmp/libomptarget/DeviceRTL/include/Configuration.h index 4a68a2f1d46bf..45e5cead231f7 100644 --- a/openmp/libomptarget/DeviceRTL/include/Configuration.h +++ b/openmp/libomptarget/DeviceRTL/include/Configuration.h @@ -13,17 +13,12 @@ #ifndef OMPTARGET_CONFIGURATION_H #define OMPTARGET_CONFIGURATION_H +#include "Environment.h" #include "Types.h" namespace ompx { namespace config { -enum DebugKind : uint32_t { - Assertion = 1U << 0, - FunctionTracing = 1U << 1, - CommonIssues = 1U << 2, -}; - /// Return the number of devices in the system, same number as returned on the /// host by omp_get_num_devices. uint32_t getNumDevices(); @@ -50,7 +45,7 @@ uint64_t getIndirectCallTableSize(); uint64_t getHardwareParallelism(); /// Return if debugging is enabled for the given debug kind. -bool isDebugMode(DebugKind Level); +bool isDebugMode(DeviceDebugKind Level); /// Indicates if this kernel may require thread-specific states, or if it was /// explicitly disabled by the user. diff --git a/openmp/libomptarget/DeviceRTL/include/Debug.h b/openmp/libomptarget/DeviceRTL/include/Debug.h index 4eb9047753261..bd4d40e8f24fd 100644 --- a/openmp/libomptarget/DeviceRTL/include/Debug.h +++ b/openmp/libomptarget/DeviceRTL/include/Debug.h @@ -28,7 +28,7 @@ void __assert_fail_internal(const char *expr, const char *msg, const char *file, #define ASSERT(expr, msg) \ { \ - if (config::isDebugMode(config::DebugKind::Assertion) && !(expr)) \ + if (config::isDebugMode(DeviceDebugKind::Assertion) && !(expr)) \ __assert_fail_internal(#expr, msg, __FILE__, __LINE__, \ __PRETTY_FUNCTION__); \ else \ diff --git a/openmp/libomptarget/DeviceRTL/src/Configuration.cpp b/openmp/libomptarget/DeviceRTL/src/Configuration.cpp index a792e5be568e6..ab1608b1cfb0a 100644 --- a/openmp/libomptarget/DeviceRTL/src/Configuration.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Configuration.cpp @@ -12,7 +12,6 @@ //===----------------------------------------------------------------------===// #include "Configuration.h" -#include "Environment.h" #include "State.h" #include "Types.h" @@ -32,7 +31,7 @@ using namespace ompx; CONSTANT(__omp_rtl_device_environment); uint32_t config::getDebugKind() { - return __omp_rtl_debug_kind & __omp_rtl_device_environment.DebugKind; + return __omp_rtl_debug_kind & __omp_rtl_device_environment.DeviceDebugKind; } uint32_t config::getNumDevices() { @@ -64,8 +63,8 @@ uint64_t config::getIndirectCallTableSize() { return __omp_rtl_device_environment.IndirectCallTableSize; } -bool config::isDebugMode(config::DebugKind Kind) { - return config::getDebugKind() & Kind; +bool config::isDebugMode(DeviceDebugKind Kind) { + return config::getDebugKind() & uint32_t(Kind); } bool config::mayUseThreadStates() { return !__omp_rtl_assume_no_thread_state; } diff --git a/openmp/libomptarget/DeviceRTL/src/State.cpp b/openmp/libomptarget/DeviceRTL/src/State.cpp index c34adfb94d7c7..68fe0b383548e 100644 --- a/openmp/libomptarget/DeviceRTL/src/State.cpp +++ b/openmp/libomptarget/DeviceRTL/src/State.cpp @@ -137,7 +137,7 @@ void *SharedMemorySmartStackTy::push(uint64_t Bytes) { return Ptr; } - if (config::isDebugMode(config::DebugKind::CommonIssues)) + if (config::isDebugMode(DeviceDebugKind::CommonIssues)) PRINT("Shared memory stack full, fallback to dynamic allocation of global " "memory will negatively impact performance.\n"); void *GlobalMemory = memory::allocGlobal( @@ -172,7 +172,7 @@ void memory::freeShared(void *Ptr, uint64_t Bytes, const char *Reason) { void *memory::allocGlobal(uint64_t Bytes, const char *Reason) { void *Ptr = malloc(Bytes); - if (config::isDebugMode(config::DebugKind::CommonIssues) && Ptr == nullptr) + if (config::isDebugMode(DeviceDebugKind::CommonIssues) && Ptr == nullptr) PRINT("nullptr returned by malloc!\n"); return Ptr; } diff --git a/openmp/libomptarget/include/Environment.h b/openmp/libomptarget/include/Environment.h index 6606d7838cafa..48a0fa933bdd8 100644 --- a/openmp/libomptarget/include/Environment.h +++ b/openmp/libomptarget/include/Environment.h @@ -25,8 +25,15 @@ using IdentTy = ident_t; #include "llvm/Frontend/OpenMP/OMPDeviceConstants.h" +enum class DeviceDebugKind : uint32_t { + Assertion = 1U << 0, + FunctionTracing = 1U << 1, + CommonIssues = 1U << 2, + AllocationTracker = 1U << 3, +}; + struct DeviceEnvironmentTy { - uint32_t DebugKind; + uint32_t DeviceDebugKind; uint32_t NumDevices; uint32_t DeviceNum; uint32_t DynamicMemSize; diff --git a/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp b/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp index feae44b9b57f5..c8fb8d552f429 100644 --- a/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp +++ b/openmp/libomptarget/plugins-nextgen/common/PluginInterface/PluginInterface.cpp @@ -10,6 +10,7 @@ #include "PluginInterface.h" #include "Debug.h" +#include "Environment.h" #include "GlobalHandler.h" #include "JIT.h" #include "elf_common.h" @@ -687,7 +688,7 @@ Error GenericDeviceTy::setupDeviceEnvironment(GenericPluginTy &Plugin, return CallTablePairOrErr.takeError(); DeviceEnvironmentTy DeviceEnvironment; - DeviceEnvironment.DebugKind = OMPX_DebugKind; + DeviceEnvironment.DeviceDebugKind = OMPX_DebugKind; DeviceEnvironment.NumDevices = Plugin.getNumDevices(); // TODO: The device ID used here is not the real device ID used by OpenMP. DeviceEnvironment.DeviceNum = DeviceId;