[llvm] [llvm-c] Expose debug support for LLJIT in Orc C-API bindings (PR #73257)
Stefan Gränitz via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 11 09:47:43 PST 2023
https://github.com/weliveindetail updated https://github.com/llvm/llvm-project/pull/73257
>From a91f9b8454c18564967fdb4c720e3465419c86c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Wed, 29 Nov 2023 23:22:22 +0100
Subject: [PATCH 1/7] [llvm-c] Expose debug support for LLJIT in Orc bindings
---
llvm/include/llvm-c/LLJIT.h | 6 ++
.../Orc/Debugging/DebuggerSupport.cpp | 2 +-
.../ExecutionEngine/Orc/OrcV2CBindings.cpp | 5 ++
.../ExecutionEngine/Orc/CMakeLists.txt | 1 +
.../ExecutionEngine/Orc/OrcCAPITest.cpp | 64 +++++++++++++++++++
5 files changed, 77 insertions(+), 1 deletion(-)
diff --git a/llvm/include/llvm-c/LLJIT.h b/llvm/include/llvm-c/LLJIT.h
index a06133aac4fb0..88a2261aacd66 100644
--- a/llvm/include/llvm-c/LLJIT.h
+++ b/llvm/include/llvm-c/LLJIT.h
@@ -242,6 +242,12 @@ LLVMOrcIRTransformLayerRef LLVMOrcLLJITGetIRTransformLayer(LLVMOrcLLJITRef J);
*/
const char *LLVMOrcLLJITGetDataLayoutStr(LLVMOrcLLJITRef J);
+/**
+ * Install the plugin that submits debug objects to the executor. Executors must
+ * expose the llvm_orc_registerJITLoaderGDBWrapper symbol.
+ */
+LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J);
+
/**
* @}
*/
diff --git a/llvm/lib/ExecutionEngine/Orc/Debugging/DebuggerSupport.cpp b/llvm/lib/ExecutionEngine/Orc/Debugging/DebuggerSupport.cpp
index 9ba6dd90f50de..1668473c0eb47 100644
--- a/llvm/lib/ExecutionEngine/Orc/Debugging/DebuggerSupport.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Debugging/DebuggerSupport.cpp
@@ -39,7 +39,7 @@ Error enableDebuggerSupport(LLJIT &J) {
if (!Registrar)
return Registrar.takeError();
ObjLinkingLayer->addPlugin(std::make_unique<DebugObjectManagerPlugin>(
- ES, std::move(*Registrar), true, true));
+ ES, std::move(*Registrar), false, true));
return Error::success();
}
case Triple::MachO: {
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
index 72314cceedf33..698cb3241cb3d 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
@@ -11,6 +11,7 @@
#include "llvm-c/OrcEE.h"
#include "llvm-c/TargetMachine.h"
+#include "llvm/ExecutionEngine/Orc/Debugging/DebuggerSupport.h"
#include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
#include "llvm/ExecutionEngine/Orc/ObjectTransformLayer.h"
@@ -1179,3 +1180,7 @@ void LLVMOrcDisposeLazyCallThroughManager(
LLVMOrcLazyCallThroughManagerRef LCM) {
std::unique_ptr<LazyCallThroughManager> TmpLCM(unwrap(LCM));
}
+
+LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J) {
+ return wrap(llvm::orc::enableDebuggerSupport(*unwrap(J)));
+}
diff --git a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
index 37768e91fd447..f102ba59e3754 100644
--- a/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
+++ b/llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
IRReader
JITLink
Object
+ OrcDebugging
OrcJIT
OrcShared
OrcTargetProcess
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
index cbdd4af47e1d4..7b3be6532944e 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
@@ -494,6 +494,70 @@ TEST_F(OrcCAPITestBase, AddObjectBuffer) {
ASSERT_TRUE(!!SumAddr);
}
+// This must be kept in sync with gdb/gdb/jit.h .
+extern "C" {
+
+typedef enum {
+ JIT_NOACTION = 0,
+ JIT_REGISTER_FN,
+ JIT_UNREGISTER_FN
+} jit_actions_t;
+
+struct jit_code_entry {
+ struct jit_code_entry *next_entry;
+ struct jit_code_entry *prev_entry;
+ const char *symfile_addr;
+ uint64_t symfile_size;
+};
+
+struct jit_descriptor {
+ uint32_t version;
+ // This should be jit_actions_t, but we want to be specific about the
+ // bit-width.
+ uint32_t action_flag;
+ struct jit_code_entry *relevant_entry;
+ struct jit_code_entry *first_entry;
+};
+
+// We put information about the JITed function in this global, which the
+// debugger reads. Make sure to specify the version statically, because the
+// debugger checks the version before we can set it during runtime.
+struct jit_descriptor __jit_debug_descriptor;
+
+static void *findLastDebugDescriptorEntryPtr() {
+ struct jit_code_entry *Last = __jit_debug_descriptor.first_entry;
+ while (Last && Last->next_entry)
+ Last = Last->next_entry;
+ return Last;
+}
+}
+
+#if defined(_AIX) or (not defined(__ELF__) and not defined(__MACH__))
+TEST_F(OrcCAPITestBase, DISABLED_EnableDebugSupport) {
+#else
+TEST_F(OrcCAPITestBase, EnableDebugSupport) {
+#endif
+ if (LLVMErrorRef E = LLVMOrcLLJITEnableDebugSupport(Jit))
+ FAIL() << "Error testing LLJIT debug support (triple = " << TargetTriple
+ << "): " << toString(E);
+
+ void *Before = findLastDebugDescriptorEntryPtr();
+ LLVMMemoryBufferRef ObjBuffer = createTestObject(SumExample, "sum.ll");
+ LLVMOrcObjectLayerRef ObjLayer = LLVMOrcLLJITGetObjLinkingLayer(Jit);
+ if (LLVMErrorRef E =
+ LLVMOrcObjectLayerAddObjectFile(ObjLayer, MainDylib, ObjBuffer))
+ FAIL() << "Failed to add object file to ObjLinkingLayer (triple = "
+ << TargetTriple << "): " << toString(E);
+
+ LLVMOrcJITTargetAddress SumAddr;
+ if (LLVMErrorRef E = LLVMOrcLLJITLookup(Jit, &SumAddr, "sum"))
+ FAIL() << "Symbol \"sum\" was not added into JIT (triple = " << TargetTriple
+ << "): " << toString(E);
+
+ void *After = findLastDebugDescriptorEntryPtr();
+ ASSERT_NE(Before, After);
+}
+
#if defined(_AIX)
TEST_F(OrcCAPITestBase, DISABLED_ExecutionTest) {
#else
>From c6edfcfb3c45532d3285ba583d696e9d4fd8b4d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Wed, 29 Nov 2023 23:51:36 +0100
Subject: [PATCH 2/7] Temporarily disable the test for MachO
---
llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
index 7b3be6532944e..04d41eeb37f1f 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
@@ -532,7 +532,7 @@ static void *findLastDebugDescriptorEntryPtr() {
}
}
-#if defined(_AIX) or (not defined(__ELF__) and not defined(__MACH__))
+#if defined(_AIX) or not defined(__ELF__)
TEST_F(OrcCAPITestBase, DISABLED_EnableDebugSupport) {
#else
TEST_F(OrcCAPITestBase, EnableDebugSupport) {
>From 09de0168eb8387eea7f90352b00510a511631737 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Fri, 8 Dec 2023 11:36:55 +0100
Subject: [PATCH 3/7] Add example with minimal debug-info and re-enable MachO
test
---
.../ExecutionEngine/Orc/OrcCAPITest.cpp | 26 ++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
index 04d41eeb37f1f..836afd97a99e4 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
@@ -13,6 +13,7 @@
#include "gtest/gtest.h"
#include "llvm/ExecutionEngine/Orc/CompileUtils.h"
+#include "llvm/ExecutionEngine/Orc/TargetProcess/JITLoaderGDB.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IRReader/IRReader.h"
@@ -211,6 +212,20 @@ constexpr StringRef SumExample =
}
)";
+constexpr StringRef SumDebugExample =
+ R"(
+ define i32 @sum(i32 %x, i32 %y) {
+ entry:
+ %r = add nsw i32 %x, %y
+ ret i32 %r
+ }
+ !llvm.module.flags = !{!0}
+ !llvm.dbg.cu = !{!1}
+ !0 = !{i32 2, !"Debug Info Version", i32 3}
+ !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, emissionKind: FullDebug)
+ !2 = !DIFile(filename: "sum.c", directory: "/tmp")
+ )";
+
} // end anonymous namespace.
// Consumes the given error ref and returns the string error message.
@@ -522,7 +537,7 @@ struct jit_descriptor {
// We put information about the JITed function in this global, which the
// debugger reads. Make sure to specify the version statically, because the
// debugger checks the version before we can set it during runtime.
-struct jit_descriptor __jit_debug_descriptor;
+extern struct jit_descriptor __jit_debug_descriptor;
static void *findLastDebugDescriptorEntryPtr() {
struct jit_code_entry *Last = __jit_debug_descriptor.first_entry;
@@ -532,9 +547,14 @@ static void *findLastDebugDescriptorEntryPtr() {
}
}
-#if defined(_AIX) or not defined(__ELF__)
+#if defined(_AIX) or not(defined(__ELF__) or defined(__MACH__))
TEST_F(OrcCAPITestBase, DISABLED_EnableDebugSupport) {
#else
+static LLVM_ATTRIBUTE_USED void linkComponents() {
+ errs() << "Linking in runtime functions\n"
+ << (void *)&llvm_orc_registerJITLoaderGDBWrapper << '\n'
+ << (void *)&llvm_orc_registerJITLoaderGDBAllocAction << '\n';
+}
TEST_F(OrcCAPITestBase, EnableDebugSupport) {
#endif
if (LLVMErrorRef E = LLVMOrcLLJITEnableDebugSupport(Jit))
@@ -542,7 +562,7 @@ TEST_F(OrcCAPITestBase, EnableDebugSupport) {
<< "): " << toString(E);
void *Before = findLastDebugDescriptorEntryPtr();
- LLVMMemoryBufferRef ObjBuffer = createTestObject(SumExample, "sum.ll");
+ LLVMMemoryBufferRef ObjBuffer = createTestObject(SumDebugExample, "sum.ll");
LLVMOrcObjectLayerRef ObjLayer = LLVMOrcLLJITGetObjLinkingLayer(Jit);
if (LLVMErrorRef E =
LLVMOrcObjectLayerAddObjectFile(ObjLayer, MainDylib, ObjBuffer))
>From 8c94494ba6f4c0cb6e112702a14339d84d6ebfa4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Mon, 11 Dec 2023 10:47:40 +0100
Subject: [PATCH 4/7] Declare in new C-API header and implement in
libLLVMOrcDebugging
---
llvm/include/llvm-c/LLJIT.h | 6 --
llvm/include/llvm-c/LLJITUtils.h | 57 +++++++++++++++++++
.../Orc/Debugging/CMakeLists.txt | 1 +
.../Orc/Debugging/LLJITUtilsCBindings.cpp | 22 +++++++
.../ExecutionEngine/Orc/OrcCAPITest.cpp | 1 +
5 files changed, 81 insertions(+), 6 deletions(-)
create mode 100644 llvm/include/llvm-c/LLJITUtils.h
create mode 100644 llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
diff --git a/llvm/include/llvm-c/LLJIT.h b/llvm/include/llvm-c/LLJIT.h
index 88a2261aacd66..a06133aac4fb0 100644
--- a/llvm/include/llvm-c/LLJIT.h
+++ b/llvm/include/llvm-c/LLJIT.h
@@ -242,12 +242,6 @@ LLVMOrcIRTransformLayerRef LLVMOrcLLJITGetIRTransformLayer(LLVMOrcLLJITRef J);
*/
const char *LLVMOrcLLJITGetDataLayoutStr(LLVMOrcLLJITRef J);
-/**
- * Install the plugin that submits debug objects to the executor. Executors must
- * expose the llvm_orc_registerJITLoaderGDBWrapper symbol.
- */
-LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J);
-
/**
* @}
*/
diff --git a/llvm/include/llvm-c/LLJITUtils.h b/llvm/include/llvm-c/LLJITUtils.h
new file mode 100644
index 0000000000000..6c400173f0920
--- /dev/null
+++ b/llvm/include/llvm-c/LLJITUtils.h
@@ -0,0 +1,57 @@
+/*===--- llvm-c/LLJITUtils.h - OrcV2 LLJIT Utilities C bindings -*- 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 *|
+|* *|
+|*===----------------------------------------------------------------------===*|
+|* *|
+|* This header declares the C interface for extra utilities to be used with *|
+|* the LLJIT class from the llvm-c/LLJIT.h header. It requires to following *|
+|* link libraries in addition to libLLVMOrcJIT.a: *|
+|* - libLLVMOrcDebugging.a *|
+|* *|
+|* Many exotic languages can interoperate with C code but have a harder time *|
+|* with C++ due to name mangling. So in addition to C, this interface enables *|
+|* tools written in such languages. *|
+|* *|
+|* Note: This interface is experimental. It is *NOT* stable, and may be *|
+|* changed without warning. Only C API usage documentation is *|
+|* provided. See the C++ documentation for all higher level ORC API *|
+|* details. *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifndef LLVM_C_LLJITUTILS_H
+#define LLVM_C_LLJITUTILS_H
+
+#include "llvm-c/LLJIT.h"
+
+LLVM_C_EXTERN_C_BEGIN
+
+/**
+ * @defgroup LLVMCExecutionEngineLLJITUtils LLJIT Utilities
+ * @ingroup LLVMCExecutionEngineLLJIT
+ *
+ * @{
+ */
+
+/**
+ * A reference to an orc::LLJIT instance.
+ */
+typedef struct LLVMOrcOpaqueLLJIT *LLVMOrcLLJITRef;
+
+/**
+ * Install the plugin that submits debug objects to the executor. Executors must
+ * expose the llvm_orc_registerJITLoaderGDBWrapper symbol.
+ */
+LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J);
+
+/**
+ * @}
+ */
+
+LLVM_C_EXTERN_C_END
+
+#endif /* LLVM_C_LLJITUTILS_H */
diff --git a/llvm/lib/ExecutionEngine/Orc/Debugging/CMakeLists.txt b/llvm/lib/ExecutionEngine/Orc/Debugging/CMakeLists.txt
index 23b4714816185..5bf23a7ec0bc8 100644
--- a/llvm/lib/ExecutionEngine/Orc/Debugging/CMakeLists.txt
+++ b/llvm/lib/ExecutionEngine/Orc/Debugging/CMakeLists.txt
@@ -6,6 +6,7 @@ add_llvm_component_library(LLVMOrcDebugging
DebugInfoSupport.cpp
DebuggerSupport.cpp
DebuggerSupportPlugin.cpp
+ LLJITUtilsCBindings.cpp
PerfSupportPlugin.cpp
ADDITIONAL_HEADER_DIRS
diff --git a/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
new file mode 100644
index 0000000000000..8e53f779b26aa
--- /dev/null
+++ b/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
@@ -0,0 +1,22 @@
+//===--------------- OrcV2CBindings.cpp - C bindings OrcV2 APIs -----------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm-c/LLJIT.h"
+#include "llvm-c/LLJITUtils.h"
+
+#include "llvm/ExecutionEngine/Orc/Debugging/DebuggerSupport.h"
+#include "llvm/ExecutionEngine/Orc/LLJIT.h"
+
+using namespace llvm;
+using namespace llvm::orc;
+
+DEFINE_SIMPLE_CONVERSION_FUNCTIONS(LLJIT, LLVMOrcLLJITRef)
+
+LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J) {
+ return wrap(llvm::orc::enableDebuggerSupport(*unwrap(J)));
+}
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
index 836afd97a99e4..65d2f57234d0a 100644
--- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
@@ -9,6 +9,7 @@
#include "llvm-c/Core.h"
#include "llvm-c/Error.h"
#include "llvm-c/LLJIT.h"
+#include "llvm-c/LLJITUtils.h"
#include "llvm-c/Orc.h"
#include "gtest/gtest.h"
>From e0fbd64ebe1241b8a0b4cc2f01bc2922561dbfa9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Mon, 11 Dec 2023 13:41:32 +0100
Subject: [PATCH 5/7] Drop LLVMOrcLLJITEnableDebugSupport() from
OrcV2CBindings.cpp
---
llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp | 4 ----
1 file changed, 4 deletions(-)
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
index 698cb3241cb3d..bee7e72942892 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
@@ -1180,7 +1180,3 @@ void LLVMOrcDisposeLazyCallThroughManager(
LLVMOrcLazyCallThroughManagerRef LCM) {
std::unique_ptr<LazyCallThroughManager> TmpLCM(unwrap(LCM));
}
-
-LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J) {
- return wrap(llvm::orc::enableDebuggerSupport(*unwrap(J)));
-}
>From efc145dd21882cac11bb9e8f300cd6c878a04b2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Mon, 11 Dec 2023 15:06:42 +0100
Subject: [PATCH 6/7] Drop unnecessary include from OrcV2CBindings.cpp
---
llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
index bee7e72942892..72314cceedf33 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
@@ -11,7 +11,6 @@
#include "llvm-c/OrcEE.h"
#include "llvm-c/TargetMachine.h"
-#include "llvm/ExecutionEngine/Orc/Debugging/DebuggerSupport.h"
#include "llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h"
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
#include "llvm/ExecutionEngine/Orc/ObjectTransformLayer.h"
>From e842e061b289ae1ed634126dba91a1c22381de2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Gr=C3=A4nitz?= <stefan.graenitz at gmail.com>
Date: Mon, 11 Dec 2023 18:47:23 +0100
Subject: [PATCH 7/7] Fix file headers (NFC)
---
llvm/include/llvm-c/LLJIT.h | 2 +-
llvm/include/llvm-c/LLJITUtils.h | 2 +-
llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/llvm/include/llvm-c/LLJIT.h b/llvm/include/llvm-c/LLJIT.h
index a06133aac4fb0..a58c3b8bbef70 100644
--- a/llvm/include/llvm-c/LLJIT.h
+++ b/llvm/include/llvm-c/LLJIT.h
@@ -1,4 +1,4 @@
-/*===----------- llvm-c/LLJIT.h - OrcV2 LLJIT C bindings --------*- C++ -*-===*\
+/*===----------- llvm-c/LLJIT.h - OrcV2 LLJIT C bindings ----------*- C -*-===*\
|* *|
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
|* Exceptions. *|
diff --git a/llvm/include/llvm-c/LLJITUtils.h b/llvm/include/llvm-c/LLJITUtils.h
index 6c400173f0920..45488bf9268e2 100644
--- a/llvm/include/llvm-c/LLJITUtils.h
+++ b/llvm/include/llvm-c/LLJITUtils.h
@@ -1,4 +1,4 @@
-/*===--- llvm-c/LLJITUtils.h - OrcV2 LLJIT Utilities C bindings -*- C++ -*-===*\
+/*===------- llvm-c/LLJITUtils.h - Advanced LLJIT features --------*- C -*-===*\
|* *|
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
|* Exceptions. *|
diff --git a/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
index 8e53f779b26aa..2df5aef733fb3 100644
--- a/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/Debugging/LLJITUtilsCBindings.cpp
@@ -1,4 +1,4 @@
-//===--------------- OrcV2CBindings.cpp - C bindings OrcV2 APIs -----------===//
+//===--------- LLJITUtilsCBindings.cpp - Advanced LLJIT features ----------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
More information about the llvm-commits
mailing list