[llvm] [Offload] Debug message update part 2 (PR #171683)
Hansang Bae via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 11 06:21:48 PST 2025
https://github.com/hansangbae updated https://github.com/llvm/llvm-project/pull/171683
>From 26864dc14e7d91bf9fd7b41c4936bd1340a97bf2 Mon Sep 17 00:00:00 2001
From: Hansang Bae <hansang.bae at intel.com>
Date: Wed, 10 Dec 2025 13:17:30 -0600
Subject: [PATCH 1/2] [Offload] Debug message update part 2
Update debug messages based on the new method from #170425.
Added a new debug type `Tool` and updated the following files.
- include/OffloadPolicy.h
- include/OpenMP/OMPT/Connector.h
- include/Shared/Debug.h
- include/Shared/EnvironmentVar.h
- libomptarget/OpenMP/Mapping.cpp
- libomptarget/OpenMP/OMPT/Callback.cpp
- libomptarget/PluginManager.cpp
---
offload/include/OffloadPolicy.h | 10 +-
offload/include/OpenMP/OMPT/Connector.h | 11 ++-
offload/include/Shared/Debug.h | 1 +
offload/include/Shared/EnvironmentVar.h | 12 ++-
offload/libomptarget/OpenMP/Mapping.cpp | 87 +++++++++--------
offload/libomptarget/OpenMP/OMPT/Callback.cpp | 19 ++--
offload/libomptarget/PluginManager.cpp | 97 ++++++++++---------
7 files changed, 128 insertions(+), 109 deletions(-)
diff --git a/offload/include/OffloadPolicy.h b/offload/include/OffloadPolicy.h
index 9bbd1fffb3798..9354e45b61af7 100644
--- a/offload/include/OffloadPolicy.h
+++ b/offload/include/OffloadPolicy.h
@@ -16,6 +16,8 @@
#include "PluginManager.h"
+using namespace llvm::omp::target::debug;
+
enum kmp_target_offload_kind_t {
tgt_disabled = 0,
tgt_default = 1,
@@ -35,12 +37,12 @@ class OffloadPolicy {
return;
default:
if (PM.getNumDevices()) {
- DP("Default TARGET OFFLOAD policy is now mandatory "
- "(devices were found)\n");
+ ODBG(ODT_Init) << "Default TARGET OFFLOAD policy is now mandatory "
+ << "(devices were found)";
Kind = MANDATORY;
} else {
- DP("Default TARGET OFFLOAD policy is now disabled "
- "(no devices were found)\n");
+ ODBG(ODT_Init) << "Default TARGET OFFLOAD policy is now disabled "
+ << "(no devices were found)";
Kind = DISABLED;
}
return;
diff --git a/offload/include/OpenMP/OMPT/Connector.h b/offload/include/OpenMP/OMPT/Connector.h
index c7b37740d5642..add8941cc4905 100644
--- a/offload/include/OpenMP/OMPT/Connector.h
+++ b/offload/include/OpenMP/OMPT/Connector.h
@@ -27,6 +27,8 @@
#include "Shared/Debug.h"
+using namespace llvm::omp::target::debug;
+
#pragma push_macro("DEBUG_PREFIX")
#undef DEBUG_PREFIX
#define DEBUG_PREFIX "OMPT"
@@ -76,7 +78,7 @@ class OmptLibraryConnectorTy {
std::string LibName = LibIdent;
LibName += ".so";
- DP("OMPT: Trying to load library %s\n", LibName.c_str());
+ ODBG(ODT_Tool) << "OMPT: Trying to load library " << LibName;
auto DynLibHandle = std::make_unique<llvm::sys::DynamicLibrary>(
llvm::sys::DynamicLibrary::getPermanentLibrary(LibName.c_str(),
&ErrMsg));
@@ -85,12 +87,13 @@ class OmptLibraryConnectorTy {
LibConnHandle = nullptr;
} else {
auto LibConnRtn = "ompt_" + LibIdent + "_connect";
- DP("OMPT: Trying to get address of connection routine %s\n",
- LibConnRtn.c_str());
+ ODBG(ODT_Tool) << "OMPT: Trying to get address of connection routine "
+ << LibConnRtn;
LibConnHandle = reinterpret_cast<OmptConnectRtnTy>(
DynLibHandle->getAddressOfSymbol(LibConnRtn.c_str()));
}
- DP("OMPT: Library connection handle = %p\n", LibConnHandle);
+ ODBG(ODT_Tool) << "OMPT: Library connection handle = "
+ << reinterpret_cast<void *>(LibConnHandle);
IsInitialized = true;
}
diff --git a/offload/include/Shared/Debug.h b/offload/include/Shared/Debug.h
index d5cf719f1ebf3..3a1a00e83a654 100644
--- a/offload/include/Shared/Debug.h
+++ b/offload/include/Shared/Debug.h
@@ -529,6 +529,7 @@ constexpr const char *ODT_EmptyMapping = "EmptyMapping";
constexpr const char *ODT_Device = "Device";
constexpr const char *ODT_Interface = "Interface";
constexpr const char *ODT_Alloc = "Alloc";
+constexpr const char *ODT_Tool = "Tool";
static inline odbg_ostream reportErrorStream() {
#ifdef OMPTARGET_DEBUG
diff --git a/offload/include/Shared/EnvironmentVar.h b/offload/include/Shared/EnvironmentVar.h
index 82f434e91a85b..5acafa3b175bb 100644
--- a/offload/include/Shared/EnvironmentVar.h
+++ b/offload/include/Shared/EnvironmentVar.h
@@ -19,6 +19,8 @@
#include <sstream>
#include <string>
+using namespace llvm::omp::target::debug;
+
/// Utility class for parsing strings to other types.
struct StringParser {
/// Parse a string to another type.
@@ -61,7 +63,8 @@ template <typename Ty> class Envar {
IsPresent = StringParser::parse<Ty>(EnvStr, Data);
if (!IsPresent) {
- DP("Ignoring invalid value %s for envar %s\n", EnvStr, Name.data());
+ ODBG(ODT_Init) << "Ignoring invalid value " << EnvStr << " for envar "
+ << Name;
Data = Default;
}
}
@@ -180,12 +183,13 @@ inline llvm::Error Envar<Ty>::init(llvm::StringRef Name, GetterFunctor Getter,
// not present and reset to the getter value (default).
IsPresent = false;
Data = Default;
- DP("Setter of envar %s failed, resetting to %s\n", Name.data(),
- std::to_string(Data).data());
+ ODBG(ODT_Init) << "Setter of envar " << Name << " failed, resetting to "
+ << std::to_string(Data);
consumeError(std::move(Err));
}
} else {
- DP("Ignoring invalid value %s for envar %s\n", EnvStr, Name.data());
+ ODBG(ODT_Init) << "Ignoring invalid value " << EnvStr << " for envar "
+ << Name;
Data = Default;
}
} else {
diff --git a/offload/libomptarget/OpenMP/Mapping.cpp b/offload/libomptarget/OpenMP/Mapping.cpp
index 9b3533895f2a6..1ded326f2f6fb 100644
--- a/offload/libomptarget/OpenMP/Mapping.cpp
+++ b/offload/libomptarget/OpenMP/Mapping.cpp
@@ -15,6 +15,8 @@
#include "Shared/Requirements.h"
#include "device.h"
+using namespace llvm::omp::target::debug;
+
/// Dump a table of all the host-target pointer pairs on failure
void dumpTargetPointerMappings(const ident_t *Loc, DeviceTy &Device,
bool toStdOut) {
@@ -59,12 +61,13 @@ int MappingInfoTy::associatePtr(void *HstPtrBegin, void *TgtPtrBegin,
bool IsValid = HDTT.HstPtrEnd == (uintptr_t)HstPtrBegin + Size &&
HDTT.TgtPtrBegin == (uintptr_t)TgtPtrBegin;
if (IsValid) {
- DP("Attempt to re-associate the same device ptr+offset with the same "
- "host ptr, nothing to do\n");
+ ODBG(ODT_MappingExists) << "Attempt to re-associate the same device "
+ << "ptr+offset with the same "
+ << "host ptr, nothing to do";
return OFFLOAD_SUCCESS;
}
- REPORT("Not allowed to re-associate a different device ptr+offset with "
- "the same host ptr\n");
+ REPORT() << "Not allowed to re-associate a different device ptr+offset "
+ << "with the same host ptr";
return OFFLOAD_FAIL;
}
@@ -80,12 +83,12 @@ int MappingInfoTy::associatePtr(void *HstPtrBegin, void *TgtPtrBegin,
/*UseHoldRefCount=*/false, /*Name=*/nullptr,
/*IsRefCountINF=*/true))
.first->HDTT;
- DP("Creating new map entry: HstBase=" DPxMOD ", HstBegin=" DPxMOD
- ", HstEnd=" DPxMOD ", TgtBegin=" DPxMOD ", DynRefCount=%s, "
- "HoldRefCount=%s\n",
- DPxPTR(NewEntry.HstPtrBase), DPxPTR(NewEntry.HstPtrBegin),
- DPxPTR(NewEntry.HstPtrEnd), DPxPTR(NewEntry.TgtPtrBegin),
- NewEntry.dynRefCountToStr().c_str(), NewEntry.holdRefCountToStr().c_str());
+ ODBG(ODT_Mapping) << "Creating new map entry: HstBase=" << NewEntry.HstPtrBase
+ << ", HstBegin=" << NewEntry.HstPtrBegin
+ << ", HstEnd=" << NewEntry.HstPtrEnd
+ << ", TgtBegin=" << NewEntry.TgtPtrBegin
+ << ", DynRefCount=" << NewEntry.dynRefCountToStr()
+ << ", HoldRefCount=" << NewEntry.holdRefCountToStr();
(void)NewEntry;
// Notify the plugin about the new mapping.
@@ -97,7 +100,7 @@ int MappingInfoTy::disassociatePtr(void *HstPtrBegin) {
auto It = HDTTMap->find(HstPtrBegin);
if (It == HDTTMap->end()) {
- REPORT("Association not found\n");
+ REPORT() << "Association not found";
return OFFLOAD_FAIL;
}
// Mapping exists
@@ -108,13 +111,13 @@ int MappingInfoTy::disassociatePtr(void *HstPtrBegin) {
// This is based on OpenACC 3.1, sec 3.2.33 "acc_unmap_data", L3656-3657:
// "It is an error to call acc_unmap_data if the structured reference
// count for the pointer is not zero."
- REPORT("Trying to disassociate a pointer with a non-zero hold reference "
- "count\n");
+ REPORT() << "Trying to disassociate a pointer with a non-zero "
+ << "hold reference count";
return OFFLOAD_FAIL;
}
if (HDTT.isDynRefCountInf()) {
- DP("Association found, removing it\n");
+ ODBG(ODT_Mapping) << "Association found, removing it";
void *Event = HDTT.getEvent();
delete &HDTT;
if (Event)
@@ -123,8 +126,8 @@ int MappingInfoTy::disassociatePtr(void *HstPtrBegin) {
return Device.notifyDataUnmapped(HstPtrBegin);
}
- REPORT("Trying to disassociate a pointer which was not mapped via "
- "omp_target_associate_ptr\n");
+ REPORT() << "Trying to disassociate a pointer which was not mapped via "
+ << "omp_target_associate_ptr";
return OFFLOAD_FAIL;
}
@@ -135,8 +138,8 @@ LookupResult MappingInfoTy::lookupMapping(HDTTMapAccessorTy &HDTTMap,
uintptr_t HP = (uintptr_t)HstPtrBegin;
LookupResult LR;
- DP("Looking up mapping(HstPtrBegin=" DPxMOD ", Size=%" PRId64 ")...\n",
- DPxPTR(HP), Size);
+ ODBG(ODT_Mapping) << "Looking up mapping(HstPtrBegin=" << HP
+ << ", Size=" << Size << ")...";
if (HDTTMap->empty())
return LR;
@@ -185,12 +188,12 @@ LookupResult MappingInfoTy::lookupMapping(HDTTMapAccessorTy &HDTTMap,
}
if (LR.Flags.ExtendsBefore) {
- DP("WARNING: Pointer is not mapped but section extends into already "
- "mapped data\n");
+ ODBG(ODT_Mapping) << "WARNING: Pointer is not mapped but section extends "
+ << "into already mapped data";
}
if (LR.Flags.ExtendsAfter) {
- DP("WARNING: Pointer is already mapped but section extends beyond mapped "
- "region\n");
+ ODBG(ODT_Mapping) << "WARNING: Pointer is already mapped but section "
+ << "extends beyond mapped region";
}
}
@@ -269,17 +272,16 @@ TargetPointerResultTy MappingInfoTy::getTargetPointer(
"Return HstPtrBegin " DPxMOD " Size=%" PRId64 " for unified shared "
"memory\n",
DPxPTR((uintptr_t)HstPtrBegin), Size);
- DP("Return HstPtrBegin " DPxMOD " Size=%" PRId64 " for unified shared "
- "memory\n",
- DPxPTR((uintptr_t)HstPtrBegin), Size);
+ ODBG(ODT_Mapping) << "Return HstPtrBegin " << HstPtrBegin
+ << " Size=" << Size << " for unified shared memory";
LR.TPR.Flags.IsPresent = false;
LR.TPR.Flags.IsHostPointer = true;
LR.TPR.TargetPointer = HstPtrBegin;
}
} else if (HasPresentModifier) {
- DP("Mapping required by 'present' map type modifier does not exist for "
- "HstPtrBegin=" DPxMOD ", Size=%" PRId64 "\n",
- DPxPTR(HstPtrBegin), Size);
+ ODBG(ODT_Mapping) << "Mapping required by 'present' map type modifier does "
+ << "not exist for HstPtrBegin=" << HstPtrBegin
+ << ", Size=" << Size;
MESSAGE("device mapping required by 'present' map type modifier does not "
"exist for host address " DPxMOD " (%" PRId64 " bytes)",
DPxPTR(HstPtrBegin), Size);
@@ -342,19 +344,19 @@ TargetPointerResultTy MappingInfoTy::getTargetPointer(
};
if (LR.TPR.getEntry()->foreachShadowPointerInfo(FailOnPtrFound) ==
OFFLOAD_FAIL) {
- DP("Multiple new mappings of %" PRId64 " bytes detected (hst:" DPxMOD
- ") -> (tgt:" DPxMOD ")\n",
- Size, DPxPTR(HstPtrBegin), DPxPTR(LR.TPR.TargetPointer));
+ ODBG(ODT_Mapping) << "Multiple new mappings of " << Size
+ << " bytes detected (hst:" << HstPtrBegin
+ << ") -> (tgt:" << LR.TPR.TargetPointer;
return std::move(LR.TPR);
}
- DP("Moving %" PRId64 " bytes (hst:" DPxMOD ") -> (tgt:" DPxMOD ")\n", Size,
- DPxPTR(HstPtrBegin), DPxPTR(LR.TPR.TargetPointer));
+ ODBG(ODT_Mapping) << "Moving " << Size << " bytes (hst:" << HstPtrBegin
+ << ") -> (tgt:" << LR.TPR.TargetPointer;
int Ret = Device.submitData(LR.TPR.TargetPointer, HstPtrBegin, Size,
AsyncInfo, LR.TPR.getEntry());
if (Ret != OFFLOAD_SUCCESS) {
- REPORT("Copying data to device failed.\n");
+ REPORT() << "Copying data to device failed.";
// We will also return nullptr if the data movement fails because that
// pointer points to a corrupted memory region so it doesn't make any
// sense to continue to use it.
@@ -374,7 +376,7 @@ TargetPointerResultTy MappingInfoTy::getTargetPointer(
if (Ret != OFFLOAD_SUCCESS) {
// If it fails to wait for the event, we need to return nullptr in
// case of any data race.
- REPORT("Failed to wait for event " DPxMOD ".\n", DPxPTR(Event));
+ REPORT() << "Failed to wait for event " << Event;
return TargetPointerResultTy{};
}
}
@@ -444,9 +446,8 @@ TargetPointerResultTy MappingInfoTy::getTgtPtrBegin(
// If the value isn't found in the mapping and unified shared memory
// is on then it means we have stumbled upon a value which we need to
// use directly from the host.
- DP("Get HstPtrBegin " DPxMOD " Size=%" PRId64 " for unified shared "
- "memory\n",
- DPxPTR((uintptr_t)HstPtrBegin), Size);
+ ODBG(ODT_Mapping) << "Get HstPtrBegin " << HstPtrBegin << " Size=" << Size
+ << " for unified shared memory";
LR.TPR.Flags.IsPresent = false;
LR.TPR.Flags.IsHostPointer = true;
LR.TPR.TargetPointer = HstPtrBegin;
@@ -490,7 +491,7 @@ int MappingInfoTy::eraseMapEntry(HDTTMapAccessorTy &HDTTMap,
: "unknown");
if (HDTTMap->erase(Entry) == 0) {
- REPORT("Trying to remove a non-existent map entry\n");
+ REPORT() << "Trying to remove a non-existent map entry";
return OFFLOAD_FAIL;
}
@@ -501,13 +502,13 @@ int MappingInfoTy::deallocTgtPtrAndEntry(HostDataToTargetTy *Entry,
int64_t Size) {
assert(Entry && "Trying to deallocate a null entry.");
- DP("Deleting tgt data " DPxMOD " of size %" PRId64 " by freeing allocation "
- "starting at " DPxMOD "\n",
- DPxPTR(Entry->TgtPtrBegin), Size, DPxPTR(Entry->TgtAllocBegin));
+ ODBG(ODT_Mapping) << "Deleting tgt data " << Entry->TgtPtrBegin << " of size "
+ << Size << " by freeing allocation "
+ << "starting at " << Entry->TgtAllocBegin;
void *Event = Entry->getEvent();
if (Event && Device.destroyEvent(Event) != OFFLOAD_SUCCESS) {
- REPORT("Failed to destroy event " DPxMOD "\n", DPxPTR(Event));
+ REPORT() << "Failed to destroy event " << Event;
return OFFLOAD_FAIL;
}
diff --git a/offload/libomptarget/OpenMP/OMPT/Callback.cpp b/offload/libomptarget/OpenMP/OMPT/Callback.cpp
index ab0942ed4fd3f..99c8a122c81f4 100644
--- a/offload/libomptarget/OpenMP/OMPT/Callback.cpp
+++ b/offload/libomptarget/OpenMP/OMPT/Callback.cpp
@@ -35,6 +35,7 @@ FOREACH_OMPT_EMI_EVENT(defineOmptCallback)
#undef defineOmptCallback
using namespace llvm::omp::target::ompt;
+using namespace llvm::omp::target::debug;
/// Forward declaration
class LibomptargetRtlFinalizer;
@@ -410,11 +411,13 @@ void Interface::endTarget(int64_t DeviceId, void *Code) {
}
void Interface::beginTargetDataOperation() {
- DP("in ompt_target_region_begin (TargetRegionId = %lu)\n", TargetData.value);
+ ODBG(ODT_Tool) << "in ompt_target_region_begin (TargetRegionId = "
+ << TargetData.value << ")";
}
void Interface::endTargetDataOperation() {
- DP("in ompt_target_region_end (TargetRegionId = %lu)\n", TargetData.value);
+ ODBG(ODT_Tool) << "in ompt_target_region_end (TargetRegionId = "
+ << TargetData.value << ")";
}
void Interface::beginTargetRegion() {
@@ -462,12 +465,12 @@ class LibomptargetRtlFinalizer {
int llvm::omp::target::ompt::initializeLibrary(ompt_function_lookup_t lookup,
int initial_device_num,
ompt_data_t *tool_data) {
- DP("Executing initializeLibrary\n");
+ ODBG(ODT_Tool) << "Executing initializeLibrary";
#define bindOmptFunctionName(OmptFunction, DestinationFunction) \
if (lookup) \
DestinationFunction = (OmptFunction##_t)lookup(#OmptFunction); \
- DP("initializeLibrary bound %s=%p\n", #DestinationFunction, \
- ((void *)(uint64_t)DestinationFunction));
+ ODBG(ODT_Tool) << "initializeLibrary bound " << #DestinationFunction << "=" \
+ << ((void *)(uint64_t)DestinationFunction);
bindOmptFunctionName(ompt_get_callback, lookupCallbackByCode);
bindOmptFunctionName(ompt_get_task_data, ompt_get_task_data_fn);
@@ -493,7 +496,7 @@ int llvm::omp::target::ompt::initializeLibrary(ompt_function_lookup_t lookup,
}
void llvm::omp::target::ompt::finalizeLibrary(ompt_data_t *data) {
- DP("Executing finalizeLibrary\n");
+ ODBG(ODT_Tool) << "Executing finalizeLibrary";
// Before disabling OMPT, call the (plugin) finalizations that were registered
// with this library
LibraryFinalizer->finalize();
@@ -502,7 +505,7 @@ void llvm::omp::target::ompt::finalizeLibrary(ompt_data_t *data) {
}
void llvm::omp::target::ompt::connectLibrary() {
- DP("Entering connectLibrary\n");
+ ODBG(ODT_Tool) << "Entering connectLibrary";
// Connect with libomp
static OmptLibraryConnectorTy LibompConnector("libomp");
static ompt_start_tool_result_t OmptResult;
@@ -525,7 +528,7 @@ void llvm::omp::target::ompt::connectLibrary() {
FOREACH_OMPT_EMI_EVENT(bindOmptCallback)
#undef bindOmptCallback
- DP("Exiting connectLibrary\n");
+ ODBG(ODT_Tool) << "Exiting connectLibrary";
}
#endif // OMPT_SUPPORT
diff --git a/offload/libomptarget/PluginManager.cpp b/offload/libomptarget/PluginManager.cpp
index cd6d0371e8b50..4152b4087d91f 100644
--- a/offload/libomptarget/PluginManager.cpp
+++ b/offload/libomptarget/PluginManager.cpp
@@ -22,6 +22,7 @@
using namespace llvm;
using namespace llvm::sys;
+using namespace llvm::omp::target::debug;
PluginManager *PM = nullptr;
@@ -32,11 +33,11 @@ PluginManager *PM = nullptr;
void PluginManager::init() {
TIMESCOPE();
if (OffloadPolicy::isOffloadDisabled()) {
- DP("Offload is disabled. Skipping plugin initialization\n");
+ ODBG(ODT_Init) << "Offload is disabled. Skipping plugin initialization";
return;
}
- ODBG("Init") << "Loading RTLs";
+ ODBG(ODT_Init) << "Loading RTLs";
// Attempt to create an instance of each supported plugin.
#define PLUGIN_TARGET(Name) \
@@ -46,12 +47,12 @@ void PluginManager::init() {
} while (false);
#include "Shared/Targets.def"
- DP("RTLs loaded!\n");
+ ODBG(ODT_Init) << "RTLs loaded!";
}
void PluginManager::deinit() {
TIMESCOPE();
- DP("Unloading RTLs...\n");
+ ODBG(ODT_Deinit) << "Unloading RTLs...";
for (auto &Plugin : Plugins) {
if (!Plugin->is_initialized())
@@ -59,12 +60,12 @@ void PluginManager::deinit() {
if (auto Err = Plugin->deinit()) {
[[maybe_unused]] std::string InfoMsg = toString(std::move(Err));
- DP("Failed to deinit plugin: %s\n", InfoMsg.c_str());
+ ODBG(ODT_Deinit) << "Failed to deinit plugin: " << InfoMsg;
}
Plugin.release();
}
- DP("RTLs unloaded!\n");
+ ODBG(ODT_Deinit) << "RTLs unloaded!";
}
bool PluginManager::initializePlugin(GenericPluginTy &Plugin) {
@@ -73,12 +74,13 @@ bool PluginManager::initializePlugin(GenericPluginTy &Plugin) {
if (auto Err = Plugin.init()) {
[[maybe_unused]] std::string InfoMsg = toString(std::move(Err));
- DP("Failed to init plugin: %s\n", InfoMsg.c_str());
+ ODBG(ODT_Init) << "Failed to init plugin: " << InfoMsg;
return false;
}
- DP("Registered plugin %s with %d visible device(s)\n", Plugin.getName(),
- Plugin.number_of_devices());
+ ODBG(ODT_Init) << "Registered plugin " << Plugin.getName() << " with "
+ << Plugin.number_of_devices() << " visible device(s)";
+
return true;
}
@@ -105,7 +107,7 @@ bool PluginManager::initializeDevice(GenericPluginTy &Plugin,
auto Device = std::make_unique<DeviceTy>(&Plugin, UserId, DeviceId);
if (auto Err = Device->init()) {
[[maybe_unused]] std::string InfoMsg = toString(std::move(Err));
- DP("Failed to init device %d: %s\n", DeviceId, InfoMsg.c_str());
+ ODBG(ODT_Init) << "Failed to init device " << DeviceId << ": " << InfoMsg;
return false;
}
@@ -229,7 +231,8 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
continue;
if (!R.number_of_devices()) {
- DP("Skipping plugin %s with no visible devices\n", R.getName());
+ ODBG(ODT_Init) << "Skipping plugin " << R.getName()
+ << " with no visible devices";
continue;
}
@@ -239,17 +242,18 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
// registered for the same device in the case that they are mutually
// compatible, such as sm_80 and sm_89.
if (UsedDevices[&R].contains(DeviceId)) {
- DP("Image " DPxMOD
- " is a duplicate, not loaded on RTL %s device %d!\n",
- DPxPTR(Img->ImageStart), R.getName(), DeviceId);
+ ODBG(ODT_Init) << "Image " << Img->ImageStart
+ << " is a duplicate, not loaded on RTL " << R.getName()
+ << " device " << DeviceId;
continue;
}
if (!R.isDeviceCompatible(DeviceId, Buffer))
continue;
- DP("Image " DPxMOD " is compatible with RTL %s device %d!\n",
- DPxPTR(Img->ImageStart), R.getName(), DeviceId);
+ ODBG(ODT_Init) << "Image " << Img->ImageStart
+ << " is compatible with RTL " << R.getName()
+ << " device " << DeviceId;
if (!initializeDevice(R, DeviceId))
continue;
@@ -269,8 +273,8 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
TranslationTable &TT =
(PM->HostEntriesBeginToTransTable)[Desc->HostEntriesBegin];
- DP("Registering image " DPxMOD " with RTL %s!\n",
- DPxPTR(Img->ImageStart), R.getName());
+ ODBG(ODT_Init) << "Registering image " << Img->ImageStart
+ << " with RTL " << R.getName();
auto UserId = PM->DeviceIds[std::make_pair(&R, DeviceId)];
if (TT.TargetsTable.size() < static_cast<size_t>(UserId + 1)) {
@@ -292,7 +296,7 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
}
}
if (!FoundRTL)
- DP("No RTL found for image " DPxMOD "!\n", DPxPTR(Img->ImageStart));
+ ODBG(ODT_Init) << "No RTL found for image " << Img->ImageStart;
}
PM->RTLsMtx.unlock();
@@ -309,7 +313,7 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
if (UseAutoZeroCopy)
addRequirements(OMPX_REQ_AUTO_ZERO_COPY);
- DP("Done registering entries!\n");
+ ODBG(ODT_Init) << "Done registering entries!";
}
// Temporary forward declaration, old style CTor/DTor handling is going away.
@@ -317,7 +321,7 @@ int target(ident_t *Loc, DeviceTy &Device, void *HostPtr,
KernelArgsTy &KernelArgs, AsyncInfoTy &AsyncInfo);
void PluginManager::unregisterLib(__tgt_bin_desc *Desc) {
- DP("Unloading target library!\n");
+ ODBG(ODT_Deinit) << "Unloading target library!";
Desc = upgradeLegacyEntries(Desc);
@@ -341,19 +345,20 @@ void PluginManager::unregisterLib(__tgt_bin_desc *Desc) {
FoundRTL = &R;
- DP("Unregistered image " DPxMOD " from RTL\n", DPxPTR(Img->ImageStart));
+ ODBG(ODT_Deinit) << "Unregistered image " << Img->ImageStart
+ << " from RTL";
break;
}
// if no RTL was found proceed to unregister the next image
if (!FoundRTL) {
- DP("No RTLs in use support the image " DPxMOD "!\n",
- DPxPTR(Img->ImageStart));
+ ODBG(ODT_Deinit) << "No RTLs in use support the image "
+ << Img->ImageStart;
}
}
PM->RTLsMtx.unlock();
- DP("Done unregistering images!\n");
+ ODBG(ODT_Deinit) << "Done unregistering images!";
// Remove entries from PM->HostPtrToTableMap
PM->TblMapMtx.lock();
@@ -367,18 +372,18 @@ void PluginManager::unregisterLib(__tgt_bin_desc *Desc) {
auto TransTable =
PM->HostEntriesBeginToTransTable.find(Desc->HostEntriesBegin);
if (TransTable != PM->HostEntriesBeginToTransTable.end()) {
- DP("Removing translation table for descriptor " DPxMOD "\n",
- DPxPTR(Desc->HostEntriesBegin));
+ ODBG(ODT_Deinit) << "Removing translation table for descriptor "
+ << Desc->HostEntriesBegin;
PM->HostEntriesBeginToTransTable.erase(TransTable);
} else {
- DP("Translation table for descriptor " DPxMOD " cannot be found, probably "
- "it has been already removed.\n",
- DPxPTR(Desc->HostEntriesBegin));
+ ODBG(ODT_Deinit) << "Translation table for descriptor "
+ << Desc->HostEntriesBegin << " cannot be found, probably "
+ << "it has been already removed.";
}
PM->TblMapMtx.unlock();
- DP("Done unregistering library!\n");
+ ODBG(ODT_Deinit) << "Done unregistering library!";
}
/// Map global data and execute pending ctors
@@ -393,8 +398,8 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
for (auto *HostEntriesBegin : PM->HostEntriesBeginRegistrationOrder) {
TranslationTable *TransTable =
&PM->HostEntriesBeginToTransTable[HostEntriesBegin];
- DP("Trans table %p : %p\n", TransTable->HostTable.EntriesBegin,
- TransTable->HostTable.EntriesEnd);
+ ODBG(ODT_Init) << "Trans table " << TransTable->HostTable.EntriesBegin
+ << " : " << TransTable->HostTable.EntriesEnd;
if (TransTable->HostTable.EntriesBegin ==
TransTable->HostTable.EntriesEnd) {
// No host entry so no need to proceed
@@ -411,7 +416,7 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
"Not expecting a device ID outside the table's bounds!");
__tgt_device_image *Img = TransTable->TargetsImages[DeviceId];
if (!Img) {
- REPORT("No image loaded for device id %d.\n", DeviceId);
+ REPORT() << "No image loaded for device id " << DeviceId;
Rc = OFFLOAD_FAIL;
break;
}
@@ -419,8 +424,7 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
// 2) Load the image onto the given device.
auto BinaryOrErr = Device.loadBinary(Img);
if (llvm::Error Err = BinaryOrErr.takeError()) {
- REPORT("Failed to load image %s\n",
- llvm::toString(std::move(Err)).c_str());
+ REPORT() << "Failed to load image " << llvm::toString(std::move(Err));
Rc = OFFLOAD_FAIL;
break;
}
@@ -440,7 +444,7 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
if (!(Entry.Flags & OMP_DECLARE_TARGET_INDIRECT_VTABLE))
if (Device.RTL->get_global(Binary, Entry.Size, Entry.SymbolName,
&DeviceEntry.Address) != OFFLOAD_SUCCESS)
- REPORT("Failed to load symbol %s\n", Entry.SymbolName);
+ REPORT() << "Failed to load symbol " << Entry.SymbolName;
// If unified memory is active, the corresponding global is a device
// reference to the host global. We need to initialize the pointer on
@@ -452,15 +456,16 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
if (Device.RTL->data_submit(DeviceId, DeviceEntry.Address,
Entry.Address,
Entry.Size) != OFFLOAD_SUCCESS)
- REPORT("Failed to write symbol for USM %s\n", Entry.SymbolName);
+ REPORT() << "Failed to write symbol for USM " << Entry.SymbolName;
} else if (Entry.Address) {
if (Device.RTL->get_function(Binary, Entry.SymbolName,
&DeviceEntry.Address) != OFFLOAD_SUCCESS)
- REPORT("Failed to load kernel %s\n", Entry.SymbolName);
+ REPORT() << "Failed to load kernel " << Entry.SymbolName;
}
- DP("Entry point " DPxMOD " maps to%s %s (" DPxMOD ")\n",
- DPxPTR(Entry.Address), (Entry.Size) ? " global" : "",
- Entry.SymbolName, DPxPTR(DeviceEntry.Address));
+ ODBG(ODT_Mapping) << "Entry point " << Entry.Address << " maps to"
+ << (Entry.Size ? " global" : "") << " "
+ << Entry.SymbolName << " (" << DeviceEntry.Address
+ << ")";
DeviceEntries.emplace_back(DeviceEntry);
}
@@ -511,10 +516,10 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
CurrDeviceEntryAddr = DevPtr;
}
- DP("Add mapping from host " DPxMOD " to device " DPxMOD " with size %zu"
- ", name \"%s\"\n",
- DPxPTR(CurrHostEntry->Address), DPxPTR(CurrDeviceEntry->Address),
- CurrDeviceEntry->Size, CurrDeviceEntry->SymbolName);
+ ODBG(ODT_Mapping) << "Add mapping from host " << CurrHostEntry->Address
+ << " to device " << CurrDeviceEntry->Address
+ << " with size " << CurrDeviceEntry->Size
+ << ", name \"" << CurrDeviceEntry->SymbolName << "\"";
HDTTMap->emplace(new HostDataToTargetTy(
(uintptr_t)CurrHostEntry->Address /*HstPtrBase*/,
(uintptr_t)CurrHostEntry->Address /*HstPtrBegin*/,
>From 2705ba11cc62b0585bb6d6da97876bec707a0a0e Mon Sep 17 00:00:00 2001
From: Hansang Bae <hansang.bae at intel.com>
Date: Thu, 11 Dec 2025 08:15:38 -0600
Subject: [PATCH 2/2] Address comments
---
offload/libomptarget/OpenMP/Mapping.cpp | 2 +-
offload/libomptarget/PluginManager.cpp | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/offload/libomptarget/OpenMP/Mapping.cpp b/offload/libomptarget/OpenMP/Mapping.cpp
index 1ded326f2f6fb..4e9125468b468 100644
--- a/offload/libomptarget/OpenMP/Mapping.cpp
+++ b/offload/libomptarget/OpenMP/Mapping.cpp
@@ -376,7 +376,7 @@ TargetPointerResultTy MappingInfoTy::getTargetPointer(
if (Ret != OFFLOAD_SUCCESS) {
// If it fails to wait for the event, we need to return nullptr in
// case of any data race.
- REPORT() << "Failed to wait for event " << Event;
+ REPORT() << "Failed to wait for event " << Event << ".";
return TargetPointerResultTy{};
}
}
diff --git a/offload/libomptarget/PluginManager.cpp b/offload/libomptarget/PluginManager.cpp
index 4152b4087d91f..924a986fbb105 100644
--- a/offload/libomptarget/PluginManager.cpp
+++ b/offload/libomptarget/PluginManager.cpp
@@ -296,7 +296,7 @@ void PluginManager::registerLib(__tgt_bin_desc *Desc) {
}
}
if (!FoundRTL)
- ODBG(ODT_Init) << "No RTL found for image " << Img->ImageStart;
+ ODBG(ODT_Init) << "No RTL found for image " << Img->ImageStart << "!";
}
PM->RTLsMtx.unlock();
@@ -416,7 +416,7 @@ static int loadImagesOntoDevice(DeviceTy &Device) {
"Not expecting a device ID outside the table's bounds!");
__tgt_device_image *Img = TransTable->TargetsImages[DeviceId];
if (!Img) {
- REPORT() << "No image loaded for device id " << DeviceId;
+ REPORT() << "No image loaded for device id " << DeviceId << ".";
Rc = OFFLOAD_FAIL;
break;
}
More information about the llvm-commits
mailing list