[llvm] 9ee950b - MCValue: Simplify code with getSubSym
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 24 21:52:45 PDT 2025
Author: Fangrui Song
Date: 2025-03-24T21:52:40-07:00
New Revision: 9ee950be9538f06f673ad134512ea60cc9af49a8
URL: https://github.com/llvm/llvm-project/commit/9ee950be9538f06f673ad134512ea60cc9af49a8
DIFF: https://github.com/llvm/llvm-project/commit/9ee950be9538f06f673ad134512ea60cc9af49a8.diff
LOG: MCValue: Simplify code with getSubSym
The MCValue::SymB MCSymbolRefExpr member might be replaced with a
MCSymbol in the future. Reduce direct access.
Added:
Modified:
llvm/lib/MC/MCAssembler.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
Removed:
################################################################################
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index 0e541ffa51716..6ae99ecc3a746 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -175,7 +175,7 @@ bool MCAssembler::evaluateFixup(const MCFixup &Fixup, const MCFragment *DF,
bool IsPCRel = FixupFlags & MCFixupKindInfo::FKF_IsPCRel;
bool IsResolved = false;
if (IsPCRel) {
- if (Target.getSymB()) {
+ if (Target.getSubSym()) {
IsResolved = false;
} else if (!Target.getSymA()) {
IsResolved = false;
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
index 5ede746af768c..3deee6548f279 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
@@ -222,7 +222,6 @@ void AArch64MachObjectWriter::recordRelocation(
// Ltmp0:
// ... _foo at got - Ltmp0
if (Target.getSymA()->getKind() == MCSymbolRefExpr::VK_GOT &&
- Target.getSymB()->getKind() == MCSymbolRefExpr::VK_None &&
Asm.getSymbolOffset(*B) ==
Asm.getFragmentOffset(*Fragment) + Fixup.getOffset()) {
// SymB is the PC, so use a PC-rel pointer-to-GOT relocation.
@@ -233,8 +232,7 @@ void AArch64MachObjectWriter::recordRelocation(
MRE.r_word1 = (IsPCRel << 24) | (Log2Size << 25) | (Type << 28);
Writer->addRelocation(A_Base, Fragment->getParent(), MRE);
return;
- } else if (Target.getSymA()->getKind() != MCSymbolRefExpr::VK_None ||
- Target.getSymB()->getKind() != MCSymbolRefExpr::VK_None) {
+ } else if (Target.getSymA()->getKind() != MCSymbolRefExpr::VK_None) {
// Otherwise, neither symbol can be modified.
Asm.getContext().reportError(Fixup.getLoc(),
"unsupported relocation of modified symbol");
@@ -411,7 +409,7 @@ void AArch64MachObjectWriter::recordRelocation(
return;
}
- if (Target.getSymB()) {
+ if (Target.getSubSym()) {
Asm.getContext().reportError(
Fixup.getLoc(),
"invalid auth relocation, can't reference two symbols");
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
index 1d8388390336c..5b9fd9a29156a 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp
@@ -272,20 +272,20 @@ void ARMMachObjectWriter::recordARMScatteredRelocation(
FixedValue += SecAddr;
uint32_t Value2 = 0;
- if (const MCSymbolRefExpr *B = Target.getSymB()) {
+ if (const MCSymbol *SB = Target.getSubSym()) {
assert(Type == MachO::ARM_RELOC_VANILLA && "invalid reloc for 2 symbols");
- const MCSymbol *SB = &B->getSymbol();
if (!SB->getFragment()) {
- Asm.getContext().reportError(Fixup.getLoc(),
- "symbol '" + B->getSymbol().getName() +
- "' can not be undefined in a subtraction expression");
+ Asm.getContext().reportError(
+ Fixup.getLoc(),
+ "symbol '" + SB->getName() +
+ "' can not be undefined in a subtraction expression");
return;
}
// Select the appropriate
diff erence relocation type.
Type = MachO::ARM_RELOC_SECTDIFF;
- Value2 = Writer->getSymbolAddress(B->getSymbol(), Asm);
+ Value2 = Writer->getSymbolAddress(*SB, Asm);
FixedValue -= Writer->getSectionAddress(SB->getFragment()->getParent());
}
More information about the llvm-commits
mailing list