diff options
| -rw-r--r-- | openmp/libomptarget/DeviceRTL/include/Debug.h | 2 | ||||
| -rw-r--r-- | openmp/libomptarget/DeviceRTL/src/Debug.cpp | 4 | ||||
| -rw-r--r-- | openmp/libomptarget/DeviceRTL/src/State.cpp | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/openmp/libomptarget/DeviceRTL/include/Debug.h b/openmp/libomptarget/DeviceRTL/include/Debug.h index f66d566..18c43f3 100644 --- a/openmp/libomptarget/DeviceRTL/include/Debug.h +++ b/openmp/libomptarget/DeviceRTL/include/Debug.h @@ -57,6 +57,8 @@ int printf(const char *format, ...); struct DebugEntryRAII { DebugEntryRAII(const char *File, const unsigned Line, const char *Function); ~DebugEntryRAII(); + + static void init(); }; #endif diff --git a/openmp/libomptarget/DeviceRTL/src/Debug.cpp b/openmp/libomptarget/DeviceRTL/src/Debug.cpp index fc9b2ed..79be728 100644 --- a/openmp/libomptarget/DeviceRTL/src/Debug.cpp +++ b/openmp/libomptarget/DeviceRTL/src/Debug.cpp @@ -55,7 +55,7 @@ int32_t __llvm_omp_vprintf(const char *Format, void *Arguments, uint32_t Size) { } /// Current indentation level for the function trace. Only accessed by thread 0. -static uint32_t Level = 0; +static uint32_t Level; #pragma omp allocate(Level) allocator(omp_pteam_mem_alloc) DebugEntryRAII::DebugEntryRAII(const char *File, const unsigned Line, @@ -78,4 +78,6 @@ DebugEntryRAII::~DebugEntryRAII() { Level--; } +void DebugEntryRAII::init() { Level = 0; } + #pragma omp end declare target diff --git a/openmp/libomptarget/DeviceRTL/src/State.cpp b/openmp/libomptarget/DeviceRTL/src/State.cpp index a16fa1b..d6ae00b 100644 --- a/openmp/libomptarget/DeviceRTL/src/State.cpp +++ b/openmp/libomptarget/DeviceRTL/src/State.cpp @@ -366,8 +366,10 @@ void *&state::lookupPtr(ValueKind Kind, bool IsReadonly) { void state::init(bool IsSPMD) { SharedMemorySmartStack.init(IsSPMD); - if (mapping::isInitialThreadInLevel0(IsSPMD)) + if (mapping::isInitialThreadInLevel0(IsSPMD)) { TeamState.init(IsSPMD); + DebugEntryRAII::init(); + } ThreadStates[mapping::getThreadIdInBlock()] = nullptr; } |
