[llvm] 15c9f27 - MCAsmBackend: Remove the MCAssembler argument from shouldForceRelocation
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Fri May 23 23:21:35 PDT 2025
Author: Fangrui Song
Date: 2025-05-23T23:21:30-07:00
New Revision: 15c9f2781e04e7c9a9d536b86c1834e0f9720681
URL: https://github.com/llvm/llvm-project/commit/15c9f2781e04e7c9a9d536b86c1834e0f9720681
DIFF: https://github.com/llvm/llvm-project/commit/15c9f2781e04e7c9a9d536b86c1834e0f9720681.diff
LOG: MCAsmBackend: Remove the MCAssembler argument from shouldForceRelocation
It is only required by ARM, which can now use the member variable.
Added:
Modified:
llvm/include/llvm/MC/MCAsmBackend.h
llvm/lib/MC/MCAsmBackend.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h
llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp
llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCAsmBackend.h b/llvm/include/llvm/MC/MCAsmBackend.h
index 29aa4b8f1de8f..0797adbe3f73d 100644
--- a/llvm/include/llvm/MC/MCAsmBackend.h
+++ b/llvm/include/llvm/MC/MCAsmBackend.h
@@ -95,8 +95,7 @@ class MCAsmBackend {
virtual MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const;
// Hook used by the default `addReloc` to check if a relocation is needed.
- virtual bool shouldForceRelocation(const MCAssembler &, const MCFixup &,
- const MCValue &) {
+ virtual bool shouldForceRelocation(const MCFixup &, const MCValue &) {
return false;
}
diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp
index dc24f8305904c..6f8fceb1a05c9 100644
--- a/llvm/lib/MC/MCAsmBackend.cpp
+++ b/llvm/lib/MC/MCAsmBackend.cpp
@@ -123,7 +123,7 @@ bool MCAsmBackend::fixupNeedsRelaxationAdvanced(const MCAssembler &,
bool MCAsmBackend::addReloc(MCAssembler &Asm, const MCFragment &F,
const MCFixup &Fixup, const MCValue &Target,
uint64_t &FixedValue, bool IsResolved) {
- if (IsResolved && shouldForceRelocation(Asm, Fixup, Target))
+ if (IsResolved && shouldForceRelocation(Fixup, Target))
IsResolved = false;
if (!IsResolved)
Asm.getWriter().recordRelocation(Asm, &F, Fixup, Target, FixedValue);
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
index eda0a09970f63..0d29316d843ee 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
@@ -94,7 +94,7 @@ class AArch64AsmBackend : public MCAsmBackend {
unsigned getFixupKindContainereSizeInBytes(unsigned Kind) const;
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override;
};
@@ -518,8 +518,7 @@ bool AArch64AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count,
return true;
}
-bool AArch64AsmBackend::shouldForceRelocation(const MCAssembler &Asm,
- const MCFixup &Fixup,
+bool AArch64AsmBackend::shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) {
// The ADRP instruction adds some multiple of 0x1000 to the current PC &
// ~0xfff. This means that the required offset to reach a symbol can vary by
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
index 505ddbd11f6c0..78bd8de07306f 100644
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp
@@ -50,8 +50,7 @@ class AMDGPUAsmBackend : public MCAsmBackend {
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
- bool shouldForceRelocation(const MCAssembler &, const MCFixup &,
- const MCValue &) override;
+ bool shouldForceRelocation(const MCFixup &, const MCValue &) override;
};
} //End anonymous namespace
@@ -189,8 +188,7 @@ MCFixupKindInfo AMDGPUAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
return Infos[Kind - FirstTargetFixupKind];
}
-bool AMDGPUAsmBackend::shouldForceRelocation(const MCAssembler &,
- const MCFixup &,
+bool AMDGPUAsmBackend::shouldForceRelocation(const MCFixup &,
const MCValue &Target) {
return Target.getSpecifier();
}
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
index 1e0665f6970a2..41dde80d675d9 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
@@ -969,8 +969,7 @@ unsigned ARMAsmBackend::adjustFixupValue(const MCAssembler &Asm,
}
}
-bool ARMAsmBackend::shouldForceRelocation(const MCAssembler &Asm,
- const MCFixup &Fixup,
+bool ARMAsmBackend::shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) {
const MCSymbol *Sym = Target.getAddSym();
const unsigned FixupKind = Fixup.getKind();
@@ -987,7 +986,7 @@ bool ARMAsmBackend::shouldForceRelocation(const MCAssembler &Asm,
}
// Create relocations for unconditional branches to function symbols with
//
diff erent execution mode in ELF binaries.
- if (needsInterworking(Asm, Sym, Fixup.getTargetKind()))
+ if (needsInterworking(*Asm, Sym, Fixup.getTargetKind()))
return true;
// We must always generate a relocation for BL/BLX instructions if we have
// a symbol to reference, as the linker relies on knowing the destination
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
index 49a346b51aa66..d52f48a5152f0 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h
@@ -30,7 +30,7 @@ class ARMAsmBackend : public MCAsmBackend {
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override;
unsigned adjustFixupValue(const MCAssembler &Asm, const MCFixup &Fixup,
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
index a9ca53728dda8..a482d26bf4e64 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp
@@ -250,8 +250,7 @@ bool CSKYAsmBackend::mayNeedRelaxation(const MCInst &Inst,
}
}
-bool CSKYAsmBackend::shouldForceRelocation(const MCAssembler &Asm,
- const MCFixup &Fixup,
+bool CSKYAsmBackend::shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target /*STI*/) {
if (Target.getSpecifier())
return true;
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h
index a765bfe86e80a..735ac8bc3ada0 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h
@@ -44,7 +44,7 @@ class CSKYAsmBackend : public MCAsmBackend {
bool writeNopData(raw_ostream &OS, uint64_t Count,
const MCSubtargetInfo *STI) const override;
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override;
std::unique_ptr<MCObjectTargetWriter>
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
index 170e6470af43a..5c08c8b5c0af3 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
@@ -198,7 +198,7 @@ class HexagonAsmBackend : public MCAsmBackend {
return Infos[Kind - FirstTargetFixupKind];
}
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override {
switch(Fixup.getTargetKind()) {
default:
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
index 467c443f9e898..e64903d1ed725 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp
@@ -242,8 +242,7 @@ bool LoongArchAsmBackend::shouldInsertFixupForCodeAlign(MCAssembler &Asm,
return true;
}
-bool LoongArchAsmBackend::shouldForceRelocation(const MCAssembler &Asm,
- const MCFixup &Fixup,
+bool LoongArchAsmBackend::shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) {
switch (Fixup.getTargetKind()) {
default:
diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
index 3b9b4214496e5..ed006c7239573 100644
--- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
+++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h
@@ -51,7 +51,7 @@ class LoongArchAsmBackend : public MCAsmBackend {
bool shouldInsertFixupForCodeAlign(MCAssembler &Asm,
MCAlignFragment &AF) override;
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override;
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
index 5ed8eb0996668..39d20f0e3c155 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
@@ -556,8 +556,7 @@ bool MipsAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count,
return true;
}
-bool MipsAsmBackend::shouldForceRelocation(const MCAssembler &Asm,
- const MCFixup &Fixup,
+bool MipsAsmBackend::shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) {
const unsigned FixupKind = Fixup.getKind();
switch (FixupKind) {
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
index 67857eb7bbd95..8661339d3b4ab 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h
@@ -49,7 +49,7 @@ class MipsAsmBackend : public MCAsmBackend {
bool writeNopData(raw_ostream &OS, uint64_t Count,
const MCSubtargetInfo *STI) const override;
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override;
}; // class MipsAsmBackend
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
index ceee36444cdf6..fd91f09bebac0 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
@@ -168,7 +168,7 @@ class PPCAsmBackend : public MCAsmBackend {
}
}
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override {
// If there is a @ specifier, unless it is optimized out (e.g. constant @l),
// force a relocation.
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
index 928f78a926074..4ec988338c1ad 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp
@@ -113,8 +113,7 @@ class SystemZMCAsmBackend : public MCAsmBackend {
// Override MCAsmBackend
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
- bool shouldForceRelocation(const MCAssembler &, const MCFixup &,
- const MCValue &) override;
+ bool shouldForceRelocation(const MCFixup &, const MCValue &) override;
void applyFixup(const MCFragment &, const MCFixup &, const MCValue &Target,
MutableArrayRef<char> Data, uint64_t Value,
bool IsResolved) override;
@@ -154,8 +153,7 @@ MCFixupKindInfo SystemZMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
return SystemZ::MCFixupKindInfos[Kind - FirstTargetFixupKind];
}
-bool SystemZMCAsmBackend::shouldForceRelocation(const MCAssembler &,
- const MCFixup &,
+bool SystemZMCAsmBackend::shouldForceRelocation(const MCFixup &,
const MCValue &Target) {
return Target.getSpecifier();
}
diff --git a/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp b/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp
index 4248439cb88a2..ecf8bf9dddfd7 100644
--- a/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp
+++ b/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp
@@ -129,7 +129,7 @@ class VEAsmBackend : public MCAsmBackend {
return Infos[Kind - FirstTargetFixupKind];
}
- bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
+ bool shouldForceRelocation(const MCFixup &Fixup,
const MCValue &Target) override {
switch ((VE::Fixups)Fixup.getKind()) {
default:
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index 9ae67d34e2a60..bf525137298ac 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -169,8 +169,7 @@ class X86AsmBackend : public MCAsmBackend {
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
- bool shouldForceRelocation(const MCAssembler &, const MCFixup &,
- const MCValue &) override;
+ bool shouldForceRelocation(const MCFixup &, const MCValue &) override;
void applyFixup(const MCFragment &, const MCFixup &, const MCValue &Target,
MutableArrayRef<char> Data, uint64_t Value,
@@ -691,7 +690,7 @@ static unsigned getFixupKindSize(unsigned Kind) {
// Force relocation when there is a specifier. This might be too conservative -
// GAS doesn't emit a relocation for call local at plt; local:.
-bool X86AsmBackend::shouldForceRelocation(const MCAssembler &, const MCFixup &,
+bool X86AsmBackend::shouldForceRelocation(const MCFixup &,
const MCValue &Target) {
return Target.getSpecifier();
}
More information about the llvm-commits
mailing list