aboutsummaryrefslogtreecommitdiff
path: root/openmp
diff options
context:
space:
mode:
authorJohannes Doerfert <johannes@jdoerfert.de>2023-11-29 07:54:35 -0800
committerGitHub <noreply@github.com>2023-11-29 07:54:35 -0800
commit2cfe7b1b6625ae982d8d0d489bdf0f0d15b234f7 (patch)
tree87277abfef03cbfe894f34097ad04425a4e07ed5 /openmp
parentdc16964f0ecc1dc292c064ef439c1f48629e8c41 (diff)
downloadllvm-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.h36
-rw-r--r--openmp/libomptarget/src/LegacyAPI.cpp2
-rw-r--r--openmp/libomptarget/src/api.cpp2
-rw-r--r--openmp/libomptarget/src/interface.cpp1
-rw-r--r--openmp/libomptarget/src/omptarget.cpp2
-rw-r--r--openmp/libomptarget/src/private.h19
-rw-r--r--openmp/libomptarget/src/rtl.cpp1
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>