Skip to content

Commit 3a90c27

Browse files
committed
[MC] Remove an overload of isSymbolRefDifferenceFullyResolvedImpl
e3a20f5 (2015) overloaded isSymbolRefDifferenceFullyResolvedImpl with the IsPCRel parameter. The overload without IsPCRel is only customized by Mach-O to dsiable `.long L_var4 - L_var3` folding in darwin-x86_64-diff-reloc-assign-2.s, but that seems unnecessary.
1 parent eb5dbaf commit 3a90c27

File tree

5 files changed

+3
-47
lines changed

5 files changed

+3
-47
lines changed

llvm/include/llvm/MC/MCMachObjectWriter.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,6 @@ class MachObjectWriter : public MCObjectWriter {
254254
void executePostLayoutBinding(MCAssembler &Asm,
255255
const MCAsmLayout &Layout) override;
256256

257-
bool isSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
258-
const MCSymbol &A,
259-
const MCSymbol &B,
260-
bool InSet) const override;
261-
262257
bool isSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
263258
const MCSymbol &SymA,
264259
const MCFragment &FB, bool InSet,

llvm/include/llvm/MC/MCObjectWriter.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,6 @@ class MCObjectWriter {
7878
const MCSymbolRefExpr *B,
7979
bool InSet) const;
8080

81-
virtual bool isSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
82-
const MCSymbol &A,
83-
const MCSymbol &B,
84-
bool InSet) const;
85-
8681
virtual bool isSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm,
8782
const MCSymbol &SymA,
8883
const MCFragment &FB,

llvm/lib/MC/MCObjectWriter.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,11 @@ bool MCObjectWriter::isSymbolRefDifferenceFullyResolved(
2929
const MCSymbol &SA = A->getSymbol();
3030
const MCSymbol &SB = B->getSymbol();
3131
assert(!SA.isUndefined() && !SB.isUndefined());
32-
if (!SA.getFragment() || !SB.getFragment())
32+
MCFragment *FB = SB.getFragment();
33+
if (!FB || !SA.getFragment())
3334
return false;
3435

35-
return isSymbolRefDifferenceFullyResolvedImpl(Asm, SA, SB, InSet);
36-
}
37-
38-
bool MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(
39-
const MCAssembler &Asm, const MCSymbol &A, const MCSymbol &B,
40-
bool InSet) const {
41-
return isSymbolRefDifferenceFullyResolvedImpl(Asm, A, *B.getFragment(), InSet,
42-
false);
36+
return isSymbolRefDifferenceFullyResolvedImpl(Asm, SA, *FB, InSet, /*IsPCRel=*/false);
4337
}
4438

4539
bool MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(

llvm/lib/MC/MachObjectWriter.cpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -661,18 +661,6 @@ void MachObjectWriter::executePostLayoutBinding(MCAssembler &Asm,
661661
bindIndirectSymbols(Asm);
662662
}
663663

664-
bool MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(
665-
const MCAssembler &Asm, const MCSymbol &A, const MCSymbol &B,
666-
bool InSet) const {
667-
// FIXME: We don't handle things like
668-
// foo = .
669-
// creating atoms.
670-
if (A.isVariable() || B.isVariable())
671-
return false;
672-
return MCObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(Asm, A, B,
673-
InSet);
674-
}
675-
676664
bool MachObjectWriter::isSymbolRefDifferenceFullyResolvedImpl(
677665
const MCAssembler &Asm, const MCSymbol &SymA, const MCFragment &FB,
678666
bool InSet, bool IsPCRel) const {

llvm/test/MC/MachO/darwin-x86_64-diff-reloc-assign-2.s

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,4 @@ L_var2:
99
.long L_var4 - L_var3
1010

1111
// CHECK: Relocations [
12-
// CHECK-NEXT: Section __data {
13-
// CHECK-NEXT: Relocation {
14-
// CHECK-NEXT: Offset: 0x4
15-
// CHECK-NEXT: PCRel: 0
16-
// CHECK-NEXT: Length: 2
17-
// CHECK-NEXT: Type: X86_64_RELOC_SUBTRACTOR (5)
18-
// CHECK-NEXT: Section: __data (2)
19-
// CHECK-NEXT: }
20-
// CHECK-NEXT: Relocation {
21-
// CHECK-NEXT: Offset: 0x4
22-
// CHECK-NEXT: PCRel: 0
23-
// CHECK-NEXT: Length: 2
24-
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
25-
// CHECK-NEXT: Section: __data (2)
26-
// CHECK-NEXT: }
27-
// CHECK-NEXT: }
2812
// CHECK-NEXT: ]

0 commit comments

Comments
 (0)