[llvm] [llvm] annotate remaining Telemetry and ToolDrivers interfaces for DLL export (PR #145369)
Andrew Rogers via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 23 12:03:56 PDT 2025
https://github.com/andrurogerz updated https://github.com/llvm/llvm-project/pull/145369
>From de5792bd5497efaacd95aedf44f264b9c609436a Mon Sep 17 00:00:00 2001
From: Andrew Rogers <andrurogerz at gmail.com>
Date: Mon, 23 Jun 2025 10:20:27 -0700
Subject: [PATCH 1/3] [llvm] auto-annotate remaining LLVM interfaces for DLL
---
llvm/include/llvm/Telemetry/Telemetry.h | 5 +++--
llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h | 2 +-
llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/llvm/include/llvm/Telemetry/Telemetry.h b/llvm/include/llvm/Telemetry/Telemetry.h
index bc0056ec7e848..a5cea60f1b222 100644
--- a/llvm/include/llvm/Telemetry/Telemetry.h
+++ b/llvm/include/llvm/Telemetry/Telemetry.h
@@ -14,6 +14,7 @@
#ifndef LLVM_TELEMETRY_TELEMETRY_H
#define LLVM_TELEMETRY_TELEMETRY_H
+#include "llvm/Support/Compiler.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
@@ -101,7 +102,7 @@ struct EntryKind {
/// For example, The LLDB debugger can define a DebugCommandInfo subclass
/// which has additional fields about the debug-command being instrumented,
/// such as `CommandArguments` or `CommandName`.
-struct TelemetryInfo {
+struct LLVM_ABI TelemetryInfo {
// This represents a unique-id, conventionally corresponding to
// a tool's session - i.e., every time the tool starts until it exits.
//
@@ -141,7 +142,7 @@ class Destination {
/// and this framework.
/// It is responsible for collecting telemetry data from the tool being
/// monitored and transmitting the data elsewhere.
-class Manager {
+class LLVM_ABI Manager {
public:
virtual ~Manager() = default;
diff --git a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
index d144f62f1cc1a..c02ada7b8ac0b 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
@@ -17,7 +17,7 @@
namespace llvm {
template <typename T> class ArrayRef;
-int dlltoolDriverMain(ArrayRef<const char *> ArgsArr);
+LLVM_ABI int dlltoolDriverMain(ArrayRef<const char *> ArgsArr);
} // namespace llvm
#endif
diff --git a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
index 23a2fc348a892..15e6d50cd59c2 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
@@ -17,7 +17,7 @@
namespace llvm {
template <typename T> class ArrayRef;
-int libDriverMain(ArrayRef<const char *> ARgs);
+LLVM_ABI int libDriverMain(ArrayRef<const char *> ARgs);
}
>From 58bdd4c67a60d5fa695feac000a7b6982fdc43da Mon Sep 17 00:00:00 2001
From: Andrew Rogers <andrurogerz at gmail.com>
Date: Mon, 23 Jun 2025 10:22:41 -0700
Subject: [PATCH 2/3] [llvm] manual fix-ups to LLVM annotations
---
llvm/include/llvm/Telemetry/Telemetry.h | 5 +++++
llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h | 2 ++
llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h | 2 ++
3 files changed, 9 insertions(+)
diff --git a/llvm/include/llvm/Telemetry/Telemetry.h b/llvm/include/llvm/Telemetry/Telemetry.h
index a5cea60f1b222..94bae6810e245 100644
--- a/llvm/include/llvm/Telemetry/Telemetry.h
+++ b/llvm/include/llvm/Telemetry/Telemetry.h
@@ -144,8 +144,13 @@ class Destination {
/// monitored and transmitting the data elsewhere.
class LLVM_ABI Manager {
public:
+ Manager() = default;
virtual ~Manager() = default;
+ // Explicitly non-copyable.
+ Manager(Manager const&) = delete;
+ Manager& operator=(Manager const&) = delete;
+
// Dispatch Telemetry data to the Destination(s).
// The argument is non-const because the Manager may add or remove
// data from the entry.
diff --git a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
index c02ada7b8ac0b..30a260c52f1d9 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-dlltool/DlltoolDriver.h
@@ -14,6 +14,8 @@
#ifndef LLVM_TOOLDRIVERS_LLVM_DLLTOOL_DLLTOOLDRIVER_H
#define LLVM_TOOLDRIVERS_LLVM_DLLTOOL_DLLTOOLDRIVER_H
+#include "llvm/Support/Compiler.h"
+
namespace llvm {
template <typename T> class ArrayRef;
diff --git a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
index 15e6d50cd59c2..749f845bfb878 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
@@ -14,6 +14,8 @@
#ifndef LLVM_TOOLDRIVERS_LLVM_LIB_LIBDRIVER_H
#define LLVM_TOOLDRIVERS_LLVM_LIB_LIBDRIVER_H
+#include "llvm/Support/Compiler.h"
+
namespace llvm {
template <typename T> class ArrayRef;
>From 9e15bf1be47c7f6f1ffd3c53025be559d89ce726 Mon Sep 17 00:00:00 2001
From: Andrew Rogers <andrurogerz at gmail.com>
Date: Mon, 23 Jun 2025 10:24:06 -0700
Subject: [PATCH 3/3] [llvm] clang-format changes
---
llvm/include/llvm/Telemetry/Telemetry.h | 6 +++---
llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h | 1 -
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/llvm/include/llvm/Telemetry/Telemetry.h b/llvm/include/llvm/Telemetry/Telemetry.h
index 94bae6810e245..708ec439ed40f 100644
--- a/llvm/include/llvm/Telemetry/Telemetry.h
+++ b/llvm/include/llvm/Telemetry/Telemetry.h
@@ -14,10 +14,10 @@
#ifndef LLVM_TELEMETRY_TELEMETRY_H
#define LLVM_TELEMETRY_TELEMETRY_H
-#include "llvm/Support/Compiler.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Compiler.h"
#include "llvm/Support/Error.h"
#include <map>
#include <memory>
@@ -148,8 +148,8 @@ class LLVM_ABI Manager {
virtual ~Manager() = default;
// Explicitly non-copyable.
- Manager(Manager const&) = delete;
- Manager& operator=(Manager const&) = delete;
+ Manager(Manager const &) = delete;
+ Manager &operator=(Manager const &) = delete;
// Dispatch Telemetry data to the Destination(s).
// The argument is non-const because the Manager may add or remove
diff --git a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
index 749f845bfb878..43fc5d72d3a89 100644
--- a/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
+++ b/llvm/include/llvm/ToolDrivers/llvm-lib/LibDriver.h
@@ -20,7 +20,6 @@ namespace llvm {
template <typename T> class ArrayRef;
LLVM_ABI int libDriverMain(ArrayRef<const char *> ARgs);
-
}
#endif
More information about the llvm-commits
mailing list