Skip to content

Commit dbf12b2

Browse files
committed
[MC] Remove MCAsmLayout::{getSymbolOffset,getBaseSymbol}
The MCAsmLayout::* forwarders added by 67957a4 have all been removed.
1 parent 0323d8d commit dbf12b2

File tree

9 files changed

+28
-52
lines changed

9 files changed

+28
-52
lines changed

bolt/lib/Core/BinaryContext.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2422,14 +2422,14 @@ BinaryContext::calculateEmittedSize(BinaryFunction &BF, bool FixBranches) {
24222422
// Obtain fragment sizes.
24232423
std::vector<uint64_t> FragmentSizes;
24242424
// Main fragment size.
2425-
const uint64_t HotSize =
2426-
Layout.getSymbolOffset(*EndLabel) - Layout.getSymbolOffset(*StartLabel);
2425+
const uint64_t HotSize = Assembler.getSymbolOffset(*EndLabel) -
2426+
Assembler.getSymbolOffset(*StartLabel);
24272427
FragmentSizes.push_back(HotSize);
24282428
// Split fragment sizes.
24292429
uint64_t ColdSize = 0;
24302430
for (const auto &Labels : SplitLabels) {
2431-
uint64_t Size = Layout.getSymbolOffset(*Labels.second) -
2432-
Layout.getSymbolOffset(*Labels.first);
2431+
uint64_t Size = Assembler.getSymbolOffset(*Labels.second) -
2432+
Assembler.getSymbolOffset(*Labels.first);
24332433
FragmentSizes.push_back(Size);
24342434
ColdSize += Size;
24352435
}
@@ -2439,7 +2439,8 @@ BinaryContext::calculateEmittedSize(BinaryFunction &BF, bool FixBranches) {
24392439
for (FunctionFragment &FF : BF.getLayout().fragments()) {
24402440
BinaryBasicBlock *PrevBB = nullptr;
24412441
for (BinaryBasicBlock *BB : FF) {
2442-
const uint64_t BBStartOffset = Layout.getSymbolOffset(*(BB->getLabel()));
2442+
const uint64_t BBStartOffset =
2443+
Assembler.getSymbolOffset(*(BB->getLabel()));
24432444
BB->setOutputStartAddress(BBStartOffset);
24442445
if (PrevBB)
24452446
PrevBB->setOutputEndAddress(BBStartOffset);

bolt/lib/Rewrite/DWARFRewriter.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
#include "llvm/DebugInfo/DWARF/DWARFUnit.h"
3131
#include "llvm/MC/MCAsmBackend.h"
3232
#include "llvm/MC/MCAsmLayout.h"
33+
#include "llvm/MC/MCAssembler.h"
3334
#include "llvm/MC/MCObjectWriter.h"
3435
#include "llvm/MC/MCStreamer.h"
3536
#include "llvm/Object/ObjectFile.h"
@@ -1392,7 +1393,8 @@ void DWARFRewriter::updateLineTableOffsets(const MCAsmLayout &Layout) {
13921393
if (!StmtOffset)
13931394
continue;
13941395

1395-
const uint64_t LineTableOffset = Layout.getSymbolOffset(*Label);
1396+
const uint64_t LineTableOffset =
1397+
Layout.getAssembler().getSymbolOffset(*Label);
13961398
DebugLineOffsetMap[*StmtOffset] = LineTableOffset;
13971399
assert(DbgInfoSection && ".debug_info section must exist");
13981400
LineTablePatchMap[CU.get()] = LineTableOffset;

llvm/include/llvm/MC/MCAsmLayout.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@
1414

1515
namespace llvm {
1616
class MCAssembler;
17-
class MCFragment;
1817
class MCSection;
19-
class MCSymbol;
2018

2119
/// Encapsulates the layout of an assembly file at a particular point in time.
2220
///
@@ -45,22 +43,6 @@ class MCAsmLayout {
4543
const llvm::SmallVectorImpl<MCSection *> &getSectionOrder() const {
4644
return SectionOrder;
4745
}
48-
49-
/// @}
50-
/// \name Fragment Layout Data
51-
/// @{
52-
53-
/// @}
54-
/// \name Utility Functions
55-
/// @{
56-
57-
/// Variant that reports a fatal error if the offset is not computable.
58-
uint64_t getSymbolOffset(const MCSymbol &S) const;
59-
60-
/// If this symbol is equivalent to A + Constant, return A.
61-
const MCSymbol *getBaseSymbol(const MCSymbol &Symbol) const;
62-
63-
/// @}
6446
};
6547

6648
} // end namespace llvm

llvm/lib/MC/MCAssembler.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -554,10 +554,6 @@ uint64_t MCAssembler::getSymbolOffset(const MCSymbol &S) const {
554554
return Val;
555555
}
556556

557-
uint64_t MCAsmLayout::getSymbolOffset(const MCSymbol &S) const {
558-
return Assembler.getSymbolOffset(S);
559-
}
560-
561557
const MCSymbol *MCAssembler::getBaseSymbol(const MCSymbol &Symbol) const {
562558
assert(Layout);
563559
if (!Symbol.isVariable())
@@ -594,9 +590,6 @@ const MCSymbol *MCAssembler::getBaseSymbol(const MCSymbol &Symbol) const {
594590

595591
return &ASym;
596592
}
597-
const MCSymbol *MCAsmLayout::getBaseSymbol(const MCSymbol &Symbol) const {
598-
return Assembler.getBaseSymbol(Symbol);
599-
}
600593

601594
uint64_t MCAssembler::getSectionAddressSize(const MCSection &Sec) const {
602595
// The size is the last fragment's end offset.

llvm/lib/MC/MCExpr.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -646,8 +646,8 @@ static void AttemptToFoldSymbolOffsetDifference(
646646
}
647647

648648
// Eagerly evaluate when layout is finalized.
649-
Addend += Layout->getSymbolOffset(A->getSymbol()) -
650-
Layout->getSymbolOffset(B->getSymbol());
649+
Addend += Asm->getSymbolOffset(A->getSymbol()) -
650+
Asm->getSymbolOffset(B->getSymbol());
651651
if (Addrs && (&SecA != &SecB))
652652
Addend += (Addrs->lookup(&SecA) - Addrs->lookup(&SecB));
653653

llvm/lib/MC/MachObjectWriter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ uint64_t MachObjectWriter::getSymbolAddress(const MCSymbol &S,
118118
}
119119

120120
return getSectionAddress(S.getFragment()->getParent()) +
121-
Layout.getSymbolOffset(S);
121+
Layout.getAssembler().getSymbolOffset(S);
122122
}
123123

124124
uint64_t MachObjectWriter::getPaddingSize(const MCAssembler &Asm,

llvm/lib/MC/WasmObjectWriter.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -350,8 +350,8 @@ class WasmObjectWriter : public MCObjectWriter {
350350
const MCAssembler &Asm, const MCAsmLayout &Layout);
351351
void writeCustomRelocSections();
352352

353-
uint64_t getProvisionalValue(const WasmRelocationEntry &RelEntry,
354-
const MCAsmLayout &Layout);
353+
uint64_t getProvisionalValue(const MCAssembler &Asm,
354+
const WasmRelocationEntry &RelEntry);
355355
void applyRelocations(ArrayRef<WasmRelocationEntry> Relocations,
356356
uint64_t ContentsOffset, const MCAsmLayout &Layout);
357357

@@ -638,8 +638,8 @@ void WasmObjectWriter::recordRelocation(MCAssembler &Asm,
638638
// to make the object format more readable and more likely to be directly
639639
// useable.
640640
uint64_t
641-
WasmObjectWriter::getProvisionalValue(const WasmRelocationEntry &RelEntry,
642-
const MCAsmLayout &Layout) {
641+
WasmObjectWriter::getProvisionalValue(const MCAssembler &Asm,
642+
const WasmRelocationEntry &RelEntry) {
643643
if ((RelEntry.Type == wasm::R_WASM_GLOBAL_INDEX_LEB ||
644644
RelEntry.Type == wasm::R_WASM_GLOBAL_INDEX_I32) &&
645645
!RelEntry.Symbol->isGlobal()) {
@@ -656,7 +656,7 @@ WasmObjectWriter::getProvisionalValue(const WasmRelocationEntry &RelEntry,
656656
case wasm::R_WASM_TABLE_INDEX_I64: {
657657
// Provisional value is table address of the resolved symbol itself
658658
const MCSymbolWasm *Base =
659-
cast<MCSymbolWasm>(Layout.getBaseSymbol(*RelEntry.Symbol));
659+
cast<MCSymbolWasm>(Asm.getBaseSymbol(*RelEntry.Symbol));
660660
assert(Base->isFunction());
661661
if (RelEntry.Type == wasm::R_WASM_TABLE_INDEX_REL_SLEB ||
662662
RelEntry.Type == wasm::R_WASM_TABLE_INDEX_REL_SLEB64)
@@ -772,7 +772,7 @@ void WasmObjectWriter::applyRelocations(
772772
RelEntry.Offset;
773773

774774
LLVM_DEBUG(dbgs() << "applyRelocation: " << RelEntry << "\n");
775-
uint64_t Value = getProvisionalValue(RelEntry, Layout);
775+
uint64_t Value = getProvisionalValue(Layout.getAssembler(), RelEntry);
776776

777777
switch (RelEntry.Type) {
778778
case wasm::R_WASM_FUNCTION_INDEX_LEB:
@@ -1353,7 +1353,7 @@ void WasmObjectWriter::prepareImports(
13531353
// Register types for all functions, including those with private linkage
13541354
// (because wasm always needs a type signature).
13551355
if (WS.isFunction()) {
1356-
const auto *BS = Layout.getBaseSymbol(S);
1356+
const auto *BS = Asm.getBaseSymbol(S);
13571357
if (!BS)
13581358
report_fatal_error(Twine(S.getName()) +
13591359
": absolute addressing not supported!");
@@ -1727,7 +1727,7 @@ uint64_t WasmObjectWriter::writeOneObject(MCAssembler &Asm,
17271727

17281728
assert(S.isDefined());
17291729

1730-
const auto *BS = Layout.getBaseSymbol(S);
1730+
const auto *BS = Asm.getBaseSymbol(S);
17311731
if (!BS)
17321732
report_fatal_error(Twine(S.getName()) +
17331733
": absolute addressing not supported!");
@@ -1830,7 +1830,7 @@ uint64_t WasmObjectWriter::writeOneObject(MCAssembler &Asm,
18301830
return;
18311831
assert(Rel.Symbol->isFunction());
18321832
const MCSymbolWasm *Base =
1833-
cast<MCSymbolWasm>(Layout.getBaseSymbol(*Rel.Symbol));
1833+
cast<MCSymbolWasm>(Asm.getBaseSymbol(*Rel.Symbol));
18341834
uint32_t FunctionIndex = WasmIndices.find(Base)->second;
18351835
uint32_t TableIndex = TableElems.size() + InitialTableOffset;
18361836
if (TableIndices.try_emplace(Base, TableIndex).second) {

llvm/lib/MC/WinCOFFObjectWriter.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,7 @@ class WinCOFFWriter {
175175
void defineSection(const MCAssembler &Asm, MCSectionCOFF const &Sec);
176176

177177
COFFSymbol *getLinkedSymbol(const MCSymbol &Symbol);
178-
void DefineSymbol(const MCSymbol &Symbol, MCAssembler &Assembler,
179-
const MCAsmLayout &Layout);
178+
void defineSymbol(const MCAssembler &Asm, const MCSymbol &Symbol);
180179

181180
void SetSymbolName(COFFSymbol &S);
182181
void SetSectionName(COFFSection &S);
@@ -395,9 +394,9 @@ COFFSymbol *WinCOFFWriter::getLinkedSymbol(const MCSymbol &Symbol) {
395394

396395
/// This function takes a symbol data object from the assembler
397396
/// and creates the associated COFF symbol staging object.
398-
void WinCOFFWriter::DefineSymbol(const MCSymbol &MCSym, MCAssembler &Assembler,
399-
const MCAsmLayout &Layout) {
400-
const MCSymbol *Base = Layout.getBaseSymbol(MCSym);
397+
void WinCOFFWriter::defineSymbol(const MCAssembler &Asm,
398+
const MCSymbol &MCSym) {
399+
const MCSymbol *Base = Asm.getBaseSymbol(MCSym);
401400
COFFSection *Sec = nullptr;
402401
MCSectionCOFF *MCSec = nullptr;
403402
if (Base && Base->getFragment()) {
@@ -444,7 +443,7 @@ void WinCOFFWriter::DefineSymbol(const MCSymbol &MCSym, MCAssembler &Assembler,
444443
}
445444

446445
if (Local) {
447-
Local->Data.Value = getSymbolValue(MCSym, Assembler);
446+
Local->Data.Value = getSymbolValue(MCSym, Asm);
448447

449448
const MCSymbolCOFF &SymbolCOFF = cast<MCSymbolCOFF>(MCSym);
450449
Local->Data.Type = SymbolCOFF.getType();
@@ -834,7 +833,6 @@ void WinCOFFWriter::reset() {
834833
}
835834

836835
void WinCOFFWriter::executePostLayoutBinding(MCAssembler &Asm) {
837-
auto &Layout = *Asm.getLayout();
838836
// "Define" each section & symbol. This creates section & symbol
839837
// entries in the staging area.
840838
for (const auto &Section : Asm) {
@@ -849,7 +847,7 @@ void WinCOFFWriter::executePostLayoutBinding(MCAssembler &Asm) {
849847
// Define non-temporary or temporary static (private-linkage) symbols
850848
if (!Symbol.isTemporary() ||
851849
cast<MCSymbolCOFF>(Symbol).getClass() == COFF::IMAGE_SYM_CLASS_STATIC)
852-
DefineSymbol(Symbol, Asm, Layout);
850+
defineSymbol(Asm, Symbol);
853851
}
854852

855853
void WinCOFFWriter::recordRelocation(MCAssembler &Asm,

llvm/lib/MC/XCOFFObjectWriter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1491,7 +1491,7 @@ void XCOFFObjectWriter::assignAddressesAndIndices(MCAssembler &Asm,
14911491
if (Entry != ExceptionSection.ExceptionTable.end()) {
14921492
hasExceptEntry = true;
14931493
for (auto &TrapEntry : Entry->second.Entries) {
1494-
TrapEntry.TrapAddress = Layout.getSymbolOffset(*(Sym.MCSym)) +
1494+
TrapEntry.TrapAddress = Asm.getSymbolOffset(*(Sym.MCSym)) +
14951495
TrapEntry.Trap->getOffset();
14961496
}
14971497
}

0 commit comments

Comments
 (0)