[llvm] [JITLink][ORC] Clean up unused and assert-only function templates (NFC) (PR #202973)
Aditya Medhane via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 10 06:48:13 PDT 2026
https://github.com/flash1729 created https://github.com/llvm/llvm-project/pull/202973
These function templates trip `-Wunused-template`.
In `aarch32.cpp`, `writeRegister` has no callers, so it's removed. `checkRegister` is only used inside `assert`, so it gets compiled out in release builds (`-DNDEBUG`) and never instantiates; it's marked `[[maybe_unused]]`. Same story for `stubAndPointerRangesOk` in `OrcABISupport.cpp`, which is only used in asserts.
NFC.
Part of #202945.
>From d353b18596a5c118524b11dec18714d7521b80a0 Mon Sep 17 00:00:00 2001
From: flash1729 <sherlockedaditya at gmail.com>
Date: Wed, 10 Jun 2026 19:17:15 +0530
Subject: [PATCH] [JITLink][ORC] Clean up unused and assert-only function
templates (NFC)
These function templates trip `-Wunused-template`.
In `aarch32.cpp`, `writeRegister` has no callers, so it's removed.
`checkRegister` is only used inside `assert`, so it gets compiled out in release
builds (`-DNDEBUG`) and never instantiates; it's marked `[[maybe_unused]]`. Same
story for `stubAndPointerRangesOk` in `OrcABISupport.cpp`, which is only used in
asserts.
NFC.
Part of #202945.
---
llvm/lib/ExecutionEngine/JITLink/aarch32.cpp | 20 ++-----------------
.../lib/ExecutionEngine/Orc/OrcABISupport.cpp | 6 +++---
2 files changed, 5 insertions(+), 21 deletions(-)
diff --git a/llvm/lib/ExecutionEngine/JITLink/aarch32.cpp b/llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
index 2f3234683bf55..cc606b8278d26 100644
--- a/llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
+++ b/llvm/lib/ExecutionEngine/JITLink/aarch32.cpp
@@ -341,34 +341,18 @@ const FixupInfoBase *FixupInfoBase::getDynFixupInfo(Edge::Kind K) {
}
template <EdgeKind_aarch32 Kind>
-bool checkRegister(const ThumbRelocation &R, HalfWords Reg) {
+[[maybe_unused]] bool checkRegister(const ThumbRelocation &R, HalfWords Reg) {
uint16_t Hi = R.Hi & FixupInfo<Kind>::RegMask.Hi;
uint16_t Lo = R.Lo & FixupInfo<Kind>::RegMask.Lo;
return Hi == Reg.Hi && Lo == Reg.Lo;
}
template <EdgeKind_aarch32 Kind>
-bool checkRegister(const ArmRelocation &R, uint32_t Reg) {
+[[maybe_unused]] bool checkRegister(const ArmRelocation &R, uint32_t Reg) {
uint32_t Wd = R.Wd & FixupInfo<Kind>::RegMask;
return Wd == Reg;
}
-template <EdgeKind_aarch32 Kind>
-void writeRegister(WritableThumbRelocation &R, HalfWords Reg) {
- static constexpr HalfWords Mask = FixupInfo<Kind>::RegMask;
- assert((Mask.Hi & Reg.Hi) == Reg.Hi && (Mask.Lo & Reg.Lo) == Reg.Lo &&
- "Value bits exceed bit range of given mask");
- R.Hi = (R.Hi & ~Mask.Hi) | Reg.Hi;
- R.Lo = (R.Lo & ~Mask.Lo) | Reg.Lo;
-}
-
-template <EdgeKind_aarch32 Kind>
-void writeRegister(WritableArmRelocation &R, uint32_t Reg) {
- static constexpr uint32_t Mask = FixupInfo<Kind>::RegMask;
- assert((Mask & Reg) == Reg && "Value bits exceed bit range of given mask");
- R.Wd = (R.Wd & ~Mask) | Reg;
-}
-
template <EdgeKind_aarch32 Kind>
void writeImmediate(WritableThumbRelocation &R, HalfWords Imm) {
static constexpr HalfWords Mask = FixupInfo<Kind>::ImmMask;
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp b/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
index abf3931d94d1f..8e6728281575f 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp
@@ -16,9 +16,9 @@ using namespace llvm;
using namespace llvm::orc;
template <typename ORCABI>
-static bool stubAndPointerRangesOk(ExecutorAddr StubBlockAddr,
- ExecutorAddr PointerBlockAddr,
- unsigned NumStubs) {
+[[maybe_unused]] static bool
+stubAndPointerRangesOk(ExecutorAddr StubBlockAddr,
+ ExecutorAddr PointerBlockAddr, unsigned NumStubs) {
constexpr unsigned MaxDisp = ORCABI::StubToPointerMaxDisplacement;
ExecutorAddr FirstStub = StubBlockAddr;
ExecutorAddr LastStub = FirstStub + ((NumStubs - 1) * ORCABI::StubSize);
More information about the llvm-commits
mailing list