[llvm] 3f9ca80 - [ORC] Move Mangler functions into header. (#224209)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 17 02:11:22 PDT 2026
Author: Lang Hames
Date: 2026-09-17T19:11:16+10:00
New Revision: 3f9ca800da7b22e3fcc37eeb89af0bd116959d0e
URL: https://github.com/llvm/llvm-project/commit/3f9ca800da7b22e3fcc37eeb89af0bd116959d0e
DIFF: https://github.com/llvm/llvm-project/commit/3f9ca800da7b22e3fcc37eeb89af0bd116959d0e.diff
LOG: [ORC] Move Mangler functions into header. (#224209)
Move Mangler functions into Mangler.h so that they can be used from
OrcTargetProcess without introducing a dependence on OrcJIT.
This is a temporary fix to enable use of SymbolNameSpec in
OrcTargetProcess (see https://github.com/llvm/llvm-project/pull/224188).
Future work will reorganize these libraries and should allow this code
to sink back down into a .cpp file.
Added:
Modified:
llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h
llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
Removed:
llvm/lib/ExecutionEngine/Orc/Mangler.cpp
################################################################################
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h b/llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h
index e9a2f268fbaff..142fa29900f8a 100644
--- a/llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h
+++ b/llvm/include/llvm/ExecutionEngine/Orc/Shared/Mangler.h
@@ -14,9 +14,12 @@
#define LLVM_EXECUTIONENGINE_ORC_SHARED_MANGLER_H
#include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ExecutionEngine/Orc/Shared/SymbolNameSpec.h"
#include "llvm/Support/Compiler.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/TargetParser/Triple.h"
namespace llvm {
@@ -75,8 +78,45 @@ class Mangler {
}
private:
- LLVM_ABI static Mode fromDataLayoutStr(StringRef DLStr);
- LLVM_ABI static Mode fromTriple(const Triple &TT, StringRef ABIName);
+ // TODO: Sink this back into a .cpp file once OrcJIT and OrcSupport have
+ // been reorganized.
+ static Mode fromDataLayoutStr(StringRef DLStr) {
+
+ for (StringRef Spec : split(DLStr, '-')) {
+ if (!Spec.starts_with("m:"))
+ continue;
+ auto ModeStr = Spec.drop_front(2);
+ assert(ModeStr.size() == 1 &&
+ "invalid data layout string from Triple::computeDataLayout");
+ switch (ModeStr[0]) {
+ case 'e':
+ return Mode::ELF;
+ case 'l':
+ return Mode::GOFF;
+ case 'o':
+ return Mode::MachO;
+ case 'm':
+ return Mode::Mips;
+ case 'w':
+ return Mode::WinCOFF;
+ case 'x':
+ return Mode::WinCOFFX86;
+ case 'a':
+ return Mode::XCOFF;
+ default:
+ llvm_unreachable(
+ "Invalid mangling mode from Triple::computeDataLayout");
+ }
+ }
+ return Mode::None;
+ }
+
+ // TODO: Sink this back into a .cpp file once OrcJIT and OrcSupport have
+ // been reorganized.
+ static Mode fromTriple(const Triple &TT, StringRef ABIName) {
+ return fromDataLayoutStr(TT.computeDataLayout(ABIName));
+ }
+
bool doNotMangleLeadingQuestionMark() const {
return MM == Mode::WinCOFF || MM == Mode::WinCOFFX86;
}
diff --git a/llvm/lib/ExecutionEngine/Orc/CMakeLists.txt b/llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
index 06c01f26f194d..11604d94fba34 100644
--- a/llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
+++ b/llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
@@ -47,7 +47,6 @@ add_llvm_component_library(LLVMOrcJIT
LLJIT.cpp
MachO.cpp
MachOPlatform.cpp
- Mangler.cpp
MapperJITLinkMemoryManager.cpp
MemoryMapper.cpp
ELFNixPlatform.cpp
diff --git a/llvm/lib/ExecutionEngine/Orc/Mangler.cpp b/llvm/lib/ExecutionEngine/Orc/Mangler.cpp
deleted file mode 100644
index 824b3d7053ddd..0000000000000
--- a/llvm/lib/ExecutionEngine/Orc/Mangler.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//===------------- Mangler.cpp -- Linker name mangling for ORC ------------===//
-//
-// 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/ExecutionEngine/Orc/Shared/Mangler.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/ErrorHandling.h"
-#include "llvm/TargetParser/Triple.h"
-
-#include <cassert>
-
-#define DEBUG_TYPE "orc"
-
-namespace llvm::orc {
-
-Mangler::Mode Mangler::fromDataLayoutStr(StringRef DLStr) {
- for (StringRef Spec : split(DLStr, '-')) {
- if (!Spec.starts_with("m:"))
- continue;
- auto ModeStr = Spec.drop_front(2);
- assert(ModeStr.size() == 1 &&
- "invalid data layout string from Triple::computeDataLayout");
- switch (ModeStr[0]) {
- case 'e':
- return Mode::ELF;
- case 'l':
- return Mode::GOFF;
- case 'o':
- return Mode::MachO;
- case 'm':
- return Mode::Mips;
- case 'w':
- return Mode::WinCOFF;
- case 'x':
- return Mode::WinCOFFX86;
- case 'a':
- return Mode::XCOFF;
- default:
- llvm_unreachable("Invalid mangling mode from Triple::computeDataLayout");
- }
- }
- return Mode::None;
-}
-
-Mangler::Mode Mangler::fromTriple(const Triple &TT, StringRef ABIName) {
- return fromDataLayoutStr(TT.computeDataLayout(ABIName));
-}
-
-} // namespace llvm::orc
More information about the llvm-commits
mailing list