diff --git a/llvm/include/llvm/MC/MCAsmBackend.h b/llvm/include/llvm/MC/MCAsmBackend.h index 9eabacf2f7f10..ef924e167029d 100644 --- a/llvm/include/llvm/MC/MCAsmBackend.h +++ b/llvm/include/llvm/MC/MCAsmBackend.h @@ -90,7 +90,7 @@ class MCAsmBackend { // Hook used by the default `addReloc` to check if a relocation is needed. virtual bool shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &, const MCSubtargetInfo *) { + const MCValue &) { return false; } @@ -111,7 +111,6 @@ class MCAsmBackend { virtual bool evaluateTargetFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCFragment *DF, const MCValue &Target, - const MCSubtargetInfo *STI, uint64_t &Value) { llvm_unreachable("Need to implement hook if target has custom fixups"); } diff --git a/llvm/lib/MC/MCAsmBackend.cpp b/llvm/lib/MC/MCAsmBackend.cpp index 2dae9c0266722..622838f59a466 100644 --- a/llvm/lib/MC/MCAsmBackend.cpp +++ b/llvm/lib/MC/MCAsmBackend.cpp @@ -122,7 +122,7 @@ bool MCAsmBackend::addReloc(MCAssembler &Asm, const MCFragment &F, const MCFixup &Fixup, const MCValue &Target, uint64_t &FixedValue, bool IsResolved, const MCSubtargetInfo *STI) { - if (IsResolved && shouldForceRelocation(Asm, Fixup, Target, STI)) + if (IsResolved && shouldForceRelocation(Asm, Fixup, Target)) IsResolved = false; if (!IsResolved) Asm.getWriter().recordRelocation(Asm, &F, Fixup, Target, FixedValue); diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index ec39d3ba64ca0..96225b03893d6 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -160,7 +160,7 @@ bool MCAssembler::evaluateFixup(const MCFixup &Fixup, const MCFragment *DF, unsigned FixupFlags = getBackend().getFixupKindInfo(Fixup.getKind()).Flags; if (FixupFlags & MCFixupKindInfo::FKF_IsTarget) { IsResolved = - getBackend().evaluateTargetFixup(*this, Fixup, DF, Target, STI, Value); + getBackend().evaluateTargetFixup(*this, Fixup, DF, Target, Value); } else { const MCSymbol *Add = Target.getAddSym(); const MCSymbol *Sub = Target.getSubSym(); diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp index c1cfa9520508b..74f083cc8845e 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp @@ -96,8 +96,7 @@ class AArch64AsmBackend : public MCAsmBackend { unsigned getFixupKindContainereSizeInBytes(unsigned Kind) const; bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; + const MCValue &Target) override; }; } // end anonymous namespace @@ -523,8 +522,7 @@ bool AArch64AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count, bool AArch64AsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) { + 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 // up to one step depending on where the ADRP is in memory. For example: diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp index 0c98c32c21c2c..9ec7c3595e555 100644 --- a/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp +++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp @@ -53,7 +53,7 @@ class AMDGPUAsmBackend : public MCAsmBackend { std::optional getFixupKind(StringRef Name) const override; MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override; bool shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &, const MCSubtargetInfo *) override; + const MCValue &) override; }; } //End anonymous namespace @@ -194,8 +194,7 @@ MCFixupKindInfo AMDGPUAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { bool AMDGPUAsmBackend::shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &Target, - const MCSubtargetInfo *) { + 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 9b0aafe620c73..66bbaef5d705d 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp @@ -971,8 +971,7 @@ unsigned ARMAsmBackend::adjustFixupValue(const MCAssembler &Asm, bool ARMAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) { + const MCValue &Target) { const MCSymbol *Sym = Target.getAddSym(); const unsigned FixupKind = Fixup.getKind(); if (FixupKind == ARM::fixup_arm_thumb_bl) { diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h index 4f017d82aa541..e8ade37e0ac5e 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h @@ -31,8 +31,7 @@ class ARMAsmBackend : public MCAsmBackend { MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override; bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; + const MCValue &Target) override; unsigned adjustFixupValue(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, uint64_t Value, diff --git a/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp b/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp index 47e7539fa472e..da259c6dd1ffa 100644 --- a/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp +++ b/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp @@ -377,7 +377,7 @@ bool AVRAsmBackend::addReloc(MCAssembler &Asm, const MCFragment &F, if (IsResolved) { auto TargetVal = MCValue::get(Target.getAddSym(), Target.getSubSym(), FixedValue, Target.getSpecifier()); - if (shouldForceRelocation(Asm, Fixup, TargetVal, STI)) + if (forceRelocation(Asm, Fixup, TargetVal, STI)) IsResolved = false; } if (!IsResolved) @@ -515,10 +515,9 @@ bool AVRAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count, return true; } -bool AVRAsmBackend::shouldForceRelocation(const MCAssembler &Asm, - const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) { +bool AVRAsmBackend::forceRelocation(const MCAssembler &Asm, + const MCFixup &Fixup, const MCValue &Target, + const MCSubtargetInfo *STI) { switch ((unsigned)Fixup.getKind()) { default: return false; diff --git a/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h b/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h index b71ce4957b533..66f83f221e0c1 100644 --- a/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h +++ b/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h @@ -52,9 +52,8 @@ class AVRAsmBackend : public MCAsmBackend { bool writeNopData(raw_ostream &OS, uint64_t Count, const MCSubtargetInfo *STI) const override; - bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; + bool forceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, + const MCValue &Target, const MCSubtargetInfo *); private: Triple::OSType OSType; diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp index 62763b3a57b3d..0c710b8ecdfef 100644 --- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp +++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp @@ -253,8 +253,7 @@ bool CSKYAsmBackend::mayNeedRelaxation(const MCInst &Inst, bool CSKYAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo * /*STI*/) { + const MCValue &Target /*STI*/) { if (Target.getSpecifier()) return true; switch (Fixup.getTargetKind()) { diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h index b0421d1017499..33aaf985577ec 100644 --- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h +++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h @@ -47,8 +47,7 @@ class CSKYAsmBackend : public MCAsmBackend { const MCSubtargetInfo *STI) const override; bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; + const MCValue &Target) override; std::unique_ptr createObjectTargetWriter() const override; diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp index 9f4a2fd539fa9..0aa6e63a06fe4 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp @@ -199,8 +199,7 @@ class HexagonAsmBackend : public MCAsmBackend { } bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override { + const MCValue &Target) override { switch(Fixup.getTargetKind()) { default: llvm_unreachable("Unknown Fixup Kind!"); diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp index 970a6d9c12186..ab3ae5eedfc7d 100644 --- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp +++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp @@ -246,11 +246,10 @@ bool LoongArchAsmBackend::shouldInsertFixupForCodeAlign(MCAssembler &Asm, bool LoongArchAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) { + const MCValue &Target) { switch (Fixup.getTargetKind()) { default: - return STI->hasFeature(LoongArch::FeatureRelax); + return STI.hasFeature(LoongArch::FeatureRelax); case FK_Data_1: case FK_Data_2: case FK_Data_4: diff --git a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h index f6eb0c6c42a2b..8669f735d2d64 100644 --- a/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h +++ b/llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h @@ -53,9 +53,7 @@ class LoongArchAsmBackend : public MCAsmBackend { MCAlignFragment &AF) override; bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; - + const MCValue &Target) override; std::optional getFixupKind(StringRef Name) const override; diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp index 4f7b2c6d25252..3cf485167a2f0 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp @@ -559,8 +559,7 @@ bool MipsAsmBackend::writeNopData(raw_ostream &OS, uint64_t Count, bool MipsAsmBackend::shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) { + const MCValue &Target) { const unsigned FixupKind = Fixup.getKind(); switch (FixupKind) { default: diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h index 971611b6d8db6..b518769e385bb 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h @@ -51,8 +51,7 @@ class MipsAsmBackend : public MCAsmBackend { const MCSubtargetInfo *STI) const override; bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override; + const MCValue &Target) override; }; // class MipsAsmBackend } // namespace diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp index eea00b2e94def..2738feabba874 100644 --- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp +++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp @@ -170,8 +170,7 @@ class PPCAsmBackend : public MCAsmBackend { } bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override { + const MCValue &Target) override { // If there is a @ specifier, unless it is optimized out (e.g. constant @l), // force a relocation. if (Target.getSpecifier()) diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp index f5950979a2058..b18a488542057 100644 --- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp +++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp @@ -569,9 +569,11 @@ bool RISCVAsmBackend::isPCRelFixupResolved(const MCAssembler &Asm, return !Res.getSubSym(); } -bool RISCVAsmBackend::evaluateTargetFixup( - const MCAssembler &Asm, const MCFixup &Fixup, const MCFragment *DF, - const MCValue &Target, const MCSubtargetInfo *STI, uint64_t &Value) { +bool RISCVAsmBackend::evaluateTargetFixup(const MCAssembler &Asm, + const MCFixup &Fixup, + const MCFragment *DF, + const MCValue &Target, + uint64_t &Value) { const MCFixup *AUIPCFixup; const MCFragment *AUIPCDF; MCValue AUIPCTarget; diff --git a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h index 6e59d25205480..cfb8e9a09d090 100644 --- a/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h +++ b/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h @@ -47,7 +47,6 @@ class RISCVAsmBackend : public MCAsmBackend { bool evaluateTargetFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCFragment *DF, const MCValue &Target, - const MCSubtargetInfo *STI, uint64_t &Value) override; bool addReloc(MCAssembler &Asm, const MCFragment &F, const MCFixup &Fixup, diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp index bbb405ff77068..a456ae0c52e10 100644 --- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp +++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp @@ -114,7 +114,7 @@ class SystemZMCAsmBackend : public MCAsmBackend { std::optional getFixupKind(StringRef Name) const override; MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override; bool shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &, const MCSubtargetInfo *) override; + const MCValue &) override; void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef Data, uint64_t Value, bool IsResolved, @@ -157,8 +157,7 @@ MCFixupKindInfo SystemZMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { bool SystemZMCAsmBackend::shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &Target, - const MCSubtargetInfo *) { + 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 6be168b2c52a6..d51423942eec4 100644 --- a/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp +++ b/llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp @@ -130,8 +130,7 @@ class VEAsmBackend : public MCAsmBackend { } bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup, - const MCValue &Target, - const MCSubtargetInfo *STI) override { + const MCValue &Target) override { switch ((VE::Fixups)Fixup.getKind()) { default: return false; diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp index 81bdd8cb24b88..7869856ced67d 100644 --- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp +++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp @@ -170,7 +170,7 @@ class X86AsmBackend : public MCAsmBackend { MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override; bool shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &, const MCSubtargetInfo *) override; + const MCValue &) override; void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup, const MCValue &Target, MutableArrayRef Data, @@ -693,8 +693,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@plt; local:. bool X86AsmBackend::shouldForceRelocation(const MCAssembler &, const MCFixup &, - const MCValue &Target, - const MCSubtargetInfo *) { + const MCValue &Target) { return Target.getSpecifier(); }