[llvm] 1193f62 - MachObjectWriter: Remove the MCAssembler argument from getSymbolAddress
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun May 25 12:38:13 PDT 2025
Author: Fangrui Song
Date: 2025-05-25T12:38:08-07:00
New Revision: 1193f62f7c19e4e0cc36ee5006fa27ec108dc466
URL: https://github.com/llvm/llvm-project/commit/1193f62f7c19e4e0cc36ee5006fa27ec108dc466
DIFF: https://github.com/llvm/llvm-project/commit/1193f62f7c19e4e0cc36ee5006fa27ec108dc466.diff
LOG: MachObjectWriter: Remove the MCAssembler argument from getSymbolAddress
Added:
Modified:
llvm/include/llvm/MC/MCLinkerOptimizationHint.h
llvm/include/llvm/MC/MCMachObjectWriter.h
llvm/lib/MC/MCLinkerOptimizationHint.cpp
llvm/lib/MC/MachObjectWriter.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCLinkerOptimizationHint.h b/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
index 530f2883ab9ee..dc086f94e5c59 100644
--- a/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
+++ b/llvm/include/llvm/MC/MCLinkerOptimizationHint.h
@@ -108,7 +108,7 @@ class MCLOHDirective {
/// Emit this directive in \p OutStream using the information available
/// in the given \p ObjWriter and \p Layout to get the address of the
/// arguments within the object file.
- void emit_impl(const MCAssembler &Asm, raw_ostream &OutStream,
+ void emit_impl(raw_ostream &OutStream,
const MachObjectWriter &ObjWriter) const;
public:
diff --git a/llvm/include/llvm/MC/MCMachObjectWriter.h b/llvm/include/llvm/MC/MCMachObjectWriter.h
index 2dbe2e619324b..1b6c182d086dd 100644
--- a/llvm/include/llvm/MC/MCMachObjectWriter.h
+++ b/llvm/include/llvm/MC/MCMachObjectWriter.h
@@ -208,7 +208,7 @@ class MachObjectWriter final : public MCObjectWriter {
uint64_t getSectionAddress(const MCSection *Sec) const {
return SectionAddress.lookup(Sec);
}
- uint64_t getSymbolAddress(const MCSymbol &S, const MCAssembler &Asm) const;
+ uint64_t getSymbolAddress(const MCSymbol &S) const;
uint64_t getFragmentAddress(const MCAssembler &Asm,
const MCFragment *Fragment) const;
diff --git a/llvm/lib/MC/MCLinkerOptimizationHint.cpp b/llvm/lib/MC/MCLinkerOptimizationHint.cpp
index a0901af4f124b..34d29191468b6 100644
--- a/llvm/lib/MC/MCLinkerOptimizationHint.cpp
+++ b/llvm/lib/MC/MCLinkerOptimizationHint.cpp
@@ -23,20 +23,20 @@ using namespace llvm;
// - Its argN.
// <arg1> to <argN> are absolute addresses in the object file, i.e.,
// relative addresses from the beginning of the object file.
-void MCLOHDirective::emit_impl(const MCAssembler &Asm, raw_ostream &OutStream,
+void MCLOHDirective::emit_impl(raw_ostream &OutStream,
const MachObjectWriter &ObjWriter
) const {
encodeULEB128(Kind, OutStream);
encodeULEB128(Args.size(), OutStream);
for (const MCSymbol *Arg : Args)
- encodeULEB128(ObjWriter.getSymbolAddress(*Arg, Asm), OutStream);
+ encodeULEB128(ObjWriter.getSymbolAddress(*Arg), OutStream);
}
void MCLOHDirective::emit(const MCAssembler &Asm,
MachObjectWriter &ObjWriter) const {
raw_ostream &OutStream = ObjWriter.W.OS;
- emit_impl(Asm, OutStream, ObjWriter);
+ emit_impl(OutStream, ObjWriter);
}
uint64_t MCLOHDirective::getEmitSize(const MCAssembler &Asm,
@@ -54,6 +54,6 @@ uint64_t MCLOHDirective::getEmitSize(const MCAssembler &Asm,
};
raw_counting_ostream OutStream;
- emit_impl(Asm, OutStream, ObjWriter);
+ emit_impl(OutStream, ObjWriter);
return OutStream.tell();
}
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp
index 76194e275d27e..44d7b75cf3fdb 100644
--- a/llvm/lib/MC/MachObjectWriter.cpp
+++ b/llvm/lib/MC/MachObjectWriter.cpp
@@ -94,8 +94,7 @@ MachObjectWriter::getFragmentAddress(const MCAssembler &Asm,
Asm.getFragmentOffset(*Fragment);
}
-uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
- const MCAssembler &Asm) const {
+uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S) const {
// If this is a variable, then recursively evaluate now.
if (S.isVariable()) {
if (const MCConstantExpr *C =
@@ -103,7 +102,7 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
return C->getValue();
MCValue Target;
- if (!S.getVariableValue()->evaluateAsRelocatable(Target, &Asm))
+ if (!S.getVariableValue()->evaluateAsRelocatable(Target, Asm))
report_fatal_error("unable to evaluate offset for variable '" +
S.getName() + "'");
@@ -117,14 +116,14 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
uint64_t Address = Target.getConstant();
if (Target.getAddSym())
- Address += getSymbolAddress(*Target.getAddSym(), Asm);
+ Address += getSymbolAddress(*Target.getAddSym());
if (Target.getSubSym())
- Address -= getSymbolAddress(*Target.getSubSym(), Asm);
+ Address -= getSymbolAddress(*Target.getSubSym());
return Address;
}
return getSectionAddress(S.getFragment()->getParent()) +
- Asm.getSymbolOffset(S);
+ Asm->getSymbolOffset(S);
}
uint64_t MachObjectWriter::getPaddingSize(const MCAssembler &Asm,
@@ -432,7 +431,7 @@ void MachObjectWriter::writeNlist(MachSymbolData &MSD, const MCAssembler &Asm) {
if (IsAlias && Symbol->isUndefined())
Address = AliaseeInfo->StringIndex;
else if (Symbol->isDefined())
- Address = getSymbolAddress(OrigSymbol, Asm);
+ Address = getSymbolAddress(OrigSymbol);
else if (Symbol->isCommon()) {
// Common symbols are encoded with the size in the address
// field, and their alignment in the flags.
@@ -1052,10 +1051,10 @@ uint64_t MachObjectWriter::writeObject() {
// Write out the data-in-code region payload, if there is one.
for (DataRegionData Data : DataRegions) {
- uint64_t Start = getSymbolAddress(*Data.Start, Asm);
+ uint64_t Start = getSymbolAddress(*Data.Start);
uint64_t End;
if (Data.End)
- End = getSymbolAddress(*Data.End, Asm);
+ End = getSymbolAddress(*Data.End);
else
report_fatal_error("Data region not terminated");
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
index d2c7e7871ae82..04ca434c764c2 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
@@ -274,14 +274,14 @@ void AArch64MachObjectWriter::recordRelocation(
return;
}
- Value += (!A->getFragment() ? 0 : Writer->getSymbolAddress(*A, Asm)) -
- (!A_Base || !A_Base->getFragment()
- ? 0
- : Writer->getSymbolAddress(*A_Base, Asm));
- Value -= (!B->getFragment() ? 0 : Writer->getSymbolAddress(*B, Asm)) -
- (!B_Base || !B_Base->getFragment()
- ? 0
- : Writer->getSymbolAddress(*B_Base, Asm));
+ Value +=
+ (!A->getFragment() ? 0 : Writer->getSymbolAddress(*A)) -
+ (!A_Base || !A_Base->getFragment() ? 0
+ : Writer->getSymbolAddress(*A_Base));
+ Value -=
+ (!B->getFragment() ? 0 : Writer->getSymbolAddress(*B)) -
+ (!B_Base || !B_Base->getFragment() ? 0
+ : Writer->getSymbolAddress(*B_Base));
Type = MachO::ARM64_RELOC_UNSIGNED;
@@ -350,7 +350,7 @@ void AArch64MachObjectWriter::recordRelocation(
// The index is the section ordinal (1-based).
const MCSection &Sec = Symbol->getSection();
Index = Sec.getOrdinal() + 1;
- Value += Writer->getSymbolAddress(*Symbol, Asm);
+ Value += Writer->getSymbolAddress(*Symbol);
if (IsPCRel)
Value -= Writer->getFragmentAddress(Asm, Fragment) + Fixup.getOffset() +
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
index 009607eb357f1..72502c5749d91 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
@@ -158,7 +158,7 @@ void ARMMachObjectWriter::recordARMScatteredHalfRelocation(
return;
}
- uint32_t Value = Writer->getSymbolAddress(*A, Asm);
+ uint32_t Value = Writer->getSymbolAddress(*A);
uint32_t Value2 = 0;
uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());
FixedValue += SecAddr;
@@ -174,7 +174,7 @@ void ARMMachObjectWriter::recordARMScatteredHalfRelocation(
// Select the appropriate
diff erence relocation type.
Type = MachO::ARM_RELOC_HALF_SECTDIFF;
- Value2 = Writer->getSymbolAddress(*SB, Asm);
+ Value2 = Writer->getSymbolAddress(*SB);
FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
}
@@ -266,7 +266,7 @@ void ARMMachObjectWriter::recordARMScatteredRelocation(
return;
}
- uint32_t Value = Writer->getSymbolAddress(*A, Asm);
+ uint32_t Value = Writer->getSymbolAddress(*A);
uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());
FixedValue += SecAddr;
uint32_t Value2 = 0;
@@ -284,7 +284,7 @@ void ARMMachObjectWriter::recordARMScatteredRelocation(
// Select the appropriate
diff erence relocation type.
Type = MachO::ARM_RELOC_SECTDIFF;
- Value2 = Writer->getSymbolAddress(*SB, Asm);
+ Value2 = Writer->getSymbolAddress(*SB);
FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
}
@@ -422,8 +422,8 @@ void ARMMachObjectWriter::recordRelocation(MachObjectWriter *Writer,
int64_t Res = Val.getConstant();
bool isAbs = Val.isAbsolute();
if (Relocatable && Val.getAddSym() && Val.getSubSym()) {
- Res += Writer->getSymbolAddress(*Val.getAddSym(), Asm) -
- Writer->getSymbolAddress(*Val.getSubSym(), Asm);
+ Res += Writer->getSymbolAddress(*Val.getAddSym()) -
+ Writer->getSymbolAddress(*Val.getSubSym());
isAbs = true;
}
if (isAbs) {
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
index 10df56a05c4e4..896c1c3712266 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp
@@ -191,10 +191,10 @@ void X86MachObjectWriter::RecordX86_64Relocation(
return;
}
- Value += Writer->getSymbolAddress(*A, Asm) -
- (!A_Base ? 0 : Writer->getSymbolAddress(*A_Base, Asm));
- Value -= Writer->getSymbolAddress(*B, Asm) -
- (!B_Base ? 0 : Writer->getSymbolAddress(*B_Base, Asm));
+ Value += Writer->getSymbolAddress(*A) -
+ (!A_Base ? 0 : Writer->getSymbolAddress(*A_Base));
+ Value -= Writer->getSymbolAddress(*B) -
+ (!B_Base ? 0 : Writer->getSymbolAddress(*B_Base));
if (!A_Base)
Index = A->getFragment()->getParent()->getOrdinal() + 1;
@@ -241,12 +241,12 @@ void X86MachObjectWriter::RecordX86_64Relocation(
} else if (Symbol->isInSection() && !Symbol->isVariable()) {
// The index is the section ordinal (1-based).
Index = Symbol->getFragment()->getParent()->getOrdinal() + 1;
- Value += Writer->getSymbolAddress(*Symbol, Asm);
+ Value += Writer->getSymbolAddress(*Symbol);
if (IsPCRel)
Value -= FixupAddress + (1 << Log2Size);
} else if (Symbol->isVariable()) {
- FixedValue = Writer->getSymbolAddress(*Symbol, Asm);
+ FixedValue = Writer->getSymbolAddress(*Symbol);
return;
} else {
Asm.getContext().reportError(
@@ -369,7 +369,7 @@ bool X86MachObjectWriter::recordScatteredRelocation(MachObjectWriter *Writer,
return false;
}
- uint32_t Value = Writer->getSymbolAddress(*A, Asm);
+ uint32_t Value = Writer->getSymbolAddress(*A);
uint64_t SecAddr = Writer->getSectionAddress(A->getFragment()->getParent());
FixedValue += SecAddr;
uint32_t Value2 = 0;
@@ -390,7 +390,7 @@ bool X86MachObjectWriter::recordScatteredRelocation(MachObjectWriter *Writer,
// pedantic compatibility with 'as'.
Type = A->isExternal() ? (unsigned)MachO::GENERIC_RELOC_SECTDIFF
: (unsigned)MachO::GENERIC_RELOC_LOCAL_SECTDIFF;
- Value2 = Writer->getSymbolAddress(*SB, Asm);
+ Value2 = Writer->getSymbolAddress(*SB);
FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
}
@@ -466,8 +466,8 @@ void X86MachObjectWriter::recordTLVPRelocation(MachObjectWriter *Writer,
uint32_t FixupAddress =
Writer->getFragmentAddress(Asm, Fragment) + Fixup.getOffset();
IsPCRel = 1;
- FixedValue = FixupAddress - Writer->getSymbolAddress(*SymB, Asm) +
- Target.getConstant();
+ FixedValue =
+ FixupAddress - Writer->getSymbolAddress(*SymB) + Target.getConstant();
FixedValue += 1ULL << Log2Size;
} else {
FixedValue = 0;
@@ -543,8 +543,8 @@ void X86MachObjectWriter::RecordX86Relocation(MachObjectWriter *Writer,
int64_t Res = Val.getConstant();
bool isAbs = Val.isAbsolute();
if (Relocatable && Val.getAddSym() && Val.getSubSym()) {
- Res += Writer->getSymbolAddress(*Val.getAddSym(), Asm) -
- Writer->getSymbolAddress(*Val.getSubSym(), Asm);
+ Res += Writer->getSymbolAddress(*Val.getAddSym()) -
+ Writer->getSymbolAddress(*Val.getSubSym());
isAbs = true;
}
if (isAbs) {
More information about the llvm-commits
mailing list