diff options
author | Johannes Doerfert <johannes@jdoerfert.de> | 2023-11-29 07:54:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-29 07:54:35 -0800 |
commit | 2cfe7b1b6625ae982d8d0d489bdf0f0d15b234f7 (patch) | |
tree | 87277abfef03cbfe894f34097ad04425a4e07ed5 /openmp | |
parent | dc16964f0ecc1dc292c064ef439c1f48629e8c41 (diff) | |
download | llvm-2cfe7b1b6625ae982d8d0d489bdf0f0d15b234f7.zip llvm-2cfe7b1b6625ae982d8d0d489bdf0f0d15b234f7.tar.gz llvm-2cfe7b1b6625ae982d8d0d489bdf0f0d15b234f7.tar.bz2 |
[OpenMP][NFC] Extract timescope profile support into its own header (#73727)
Diffstat (limited to 'openmp')
-rw-r--r-- | openmp/libomptarget/include/Shared/Profile.h | 36 | ||||
-rw-r--r-- | openmp/libomptarget/src/LegacyAPI.cpp | 2 | ||||
-rw-r--r-- | openmp/libomptarget/src/api.cpp | 2 | ||||
-rw-r--r-- | openmp/libomptarget/src/interface.cpp | 1 | ||||
-rw-r--r-- | openmp/libomptarget/src/omptarget.cpp | 2 | ||||
-rw-r--r-- | openmp/libomptarget/src/private.h | 19 | ||||
-rw-r--r-- | openmp/libomptarget/src/rtl.cpp | 1 |
7 files changed, 44 insertions, 19 deletions
diff --git a/openmp/libomptarget/include/Shared/Profile.h b/openmp/libomptarget/include/Shared/Profile.h new file mode 100644 index 0000000..bbdefea --- /dev/null +++ b/openmp/libomptarget/include/Shared/Profile.h @@ -0,0 +1,36 @@ +//===-- Shared/Profile.h - Target independent OpenMP target RTL -*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// Macros to provide profile support via LLVM's time profiler. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/TimeProfiler.h" + +/// Time spend in the current scope, assigned to the function name. +#define TIMESCOPE() llvm::TimeTraceScope TimeScope(__FUNCTION__) + +/// Time spend in the current scope, assigned to the function name and source +/// info. +#define TIMESCOPE_WITH_IDENT(IDENT) \ + SourceInfo SI(IDENT); \ + llvm::TimeTraceScope TimeScope(__FUNCTION__, SI.getProfileLocation()) + +/// Time spend in the current scope, assigned to the given name and source +/// info. +#define TIMESCOPE_WITH_NAME_AND_IDENT(NAME, IDENT) \ + SourceInfo SI(IDENT); \ + llvm::TimeTraceScope TimeScope(NAME, SI.getProfileLocation()) + +/// Time spend in the current scope, assigned to the function name and source +/// info and RegionTypeMsg. +#define TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, IDENT) \ + SourceInfo SI(IDENT); \ + std::string ProfileLocation = SI.getProfileLocation(); \ + std::string RTM = RegionTypeMsg; \ + llvm::TimeTraceScope TimeScope(__FUNCTION__, ProfileLocation + RTM) diff --git a/openmp/libomptarget/src/LegacyAPI.cpp b/openmp/libomptarget/src/LegacyAPI.cpp index 54dbe19..d0f21a3 100644 --- a/openmp/libomptarget/src/LegacyAPI.cpp +++ b/openmp/libomptarget/src/LegacyAPI.cpp @@ -13,6 +13,8 @@ #include "omptarget.h" #include "private.h" +#include "Shared/Profile.h" + EXTERN void __tgt_target_data_begin(int64_t DeviceId, int32_t ArgNum, void **ArgsBase, void **Args, int64_t *ArgSizes, int64_t *ArgTypes) { diff --git a/openmp/libomptarget/src/api.cpp b/openmp/libomptarget/src/api.cpp index ecef02c..7fc13cb6 100644 --- a/openmp/libomptarget/src/api.cpp +++ b/openmp/libomptarget/src/api.cpp @@ -15,6 +15,8 @@ #include "private.h" #include "rtl.h" +#include "Shared/Profile.h" + #include "llvm/ADT/SmallVector.h" #include <climits> diff --git a/openmp/libomptarget/src/interface.cpp b/openmp/libomptarget/src/interface.cpp index 4735469..8a1dcf5 100644 --- a/openmp/libomptarget/src/interface.cpp +++ b/openmp/libomptarget/src/interface.cpp @@ -18,6 +18,7 @@ #include "private.h" #include "rtl.h" +#include "Shared/Profile.h" #include "Shared/Utils.h" #include <cassert> diff --git a/openmp/libomptarget/src/omptarget.cpp b/openmp/libomptarget/src/omptarget.cpp index d3b299c..f4b244a 100644 --- a/openmp/libomptarget/src/omptarget.cpp +++ b/openmp/libomptarget/src/omptarget.cpp @@ -18,6 +18,8 @@ #include "private.h" #include "rtl.h" +#include "Shared/Profile.h" + #include "OpenMP/omp.h" #include "llvm/ADT/StringExtras.h" diff --git a/openmp/libomptarget/src/private.h b/openmp/libomptarget/src/private.h index eb54b1a..0730a1e 100644 --- a/openmp/libomptarget/src/private.h +++ b/openmp/libomptarget/src/private.h @@ -414,23 +414,4 @@ public: bool isAboveThreshold() const { return Count > CountThreshold; } }; -#include "llvm/Support/TimeProfiler.h" -#define TIMESCOPE() llvm::TimeTraceScope TimeScope(__FUNCTION__) -#define TIMESCOPE_WITH_IDENT(IDENT) \ - SourceInfo SI(IDENT); \ - llvm::TimeTraceScope TimeScope(__FUNCTION__, SI.getProfileLocation()) -#define TIMESCOPE_WITH_NAME_AND_IDENT(NAME, IDENT) \ - SourceInfo SI(IDENT); \ - llvm::TimeTraceScope TimeScope(NAME, SI.getProfileLocation()) -#define TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, IDENT) \ - SourceInfo SI(IDENT); \ - std::string ProfileLocation = SI.getProfileLocation(); \ - std::string RTM = RegionTypeMsg; \ - llvm::TimeTraceScope TimeScope(__FUNCTION__, ProfileLocation + RTM) -#else -#define TIMESCOPE() -#define TIMESCOPE_WITH_IDENT(IDENT) -#define TIMESCOPE_WITH_NAME_AND_IDENT(NAME, IDENT) -#define TIMESCOPE_WITH_RTM_AND_IDENT(RegionTypeMsg, IDENT) - #endif diff --git a/openmp/libomptarget/src/rtl.cpp b/openmp/libomptarget/src/rtl.cpp index 86509cd..6e012ba 100644 --- a/openmp/libomptarget/src/rtl.cpp +++ b/openmp/libomptarget/src/rtl.cpp @@ -17,6 +17,7 @@ #include "private.h" #include "rtl.h" +#include "Shared/Profile.h" #include "Shared/Utils.h" #include <cassert> |