Skip to content

Commit 5701a97

Browse files
MaskRayAlexisPerry
authored andcommitted
[MC] emitLabelAtPos: change parameter to MCDataFragment &. NFC
emitLabelAtPos is only called by ARMELFStreamer with MCDataFragment.
1 parent b0907c8 commit 5701a97

File tree

7 files changed

+13
-23
lines changed

7 files changed

+13
-23
lines changed

llvm/include/llvm/MC/MCELFStreamer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class MCELFStreamer : public MCObjectStreamer {
4848
void initSections(bool NoExecStack, const MCSubtargetInfo &STI) override;
4949
void changeSection(MCSection *Section, const MCExpr *Subsection) override;
5050
void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
51-
void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCFragment *F,
51+
void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCDataFragment &F,
5252
uint64_t Offset) override;
5353
void emitAssemblerFlag(MCAssemblerFlag Flag) override;
5454
void emitThumbFunc(MCSymbol *Func) override;

llvm/include/llvm/MC/MCObjectStreamer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ class MCObjectStreamer : public MCStreamer {
130130
/// @{
131131

132132
void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
133-
virtual void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCFragment *F,
133+
virtual void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCDataFragment &F,
134134
uint64_t Offset);
135135
void emitAssignment(MCSymbol *Symbol, const MCExpr *Value) override;
136136
void emitConditionalAssignment(MCSymbol *Symbol,

llvm/include/llvm/MC/MCWasmStreamer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class MCWasmStreamer : public MCObjectStreamer {
4242

4343
void changeSection(MCSection *Section, const MCExpr *Subsection) override;
4444
void emitLabel(MCSymbol *Symbol, SMLoc Loc = SMLoc()) override;
45-
void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCFragment *F,
45+
void emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc, MCDataFragment &F,
4646
uint64_t Offset) override;
4747
void emitAssemblerFlag(MCAssemblerFlag Flag) override;
4848
void emitThumbFunc(MCSymbol *Func) override;

llvm/lib/MC/MCELFStreamer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void MCELFStreamer::emitLabel(MCSymbol *S, SMLoc Loc) {
7070
Symbol->setType(ELF::STT_TLS);
7171
}
7272

73-
void MCELFStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCFragment *F,
73+
void MCELFStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCDataFragment &F,
7474
uint64_t Offset) {
7575
auto *Symbol = cast<MCSymbolELF>(S);
7676
MCObjectStreamer::emitLabelAtPos(Symbol, Loc, F, Offset);

llvm/lib/MC/MCObjectStreamer.cpp

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -319,21 +319,12 @@ void MCObjectStreamer::emitPendingAssignments(MCSymbol *Symbol) {
319319
// Emit a label at a previously emitted fragment/offset position. This must be
320320
// within the currently-active section.
321321
void MCObjectStreamer::emitLabelAtPos(MCSymbol *Symbol, SMLoc Loc,
322-
MCFragment *F, uint64_t Offset) {
323-
assert(F->getParent() == getCurrentSectionOnly());
324-
322+
MCDataFragment &F, uint64_t Offset) {
323+
assert(F.getParent() == getCurrentSectionOnly());
325324
MCStreamer::emitLabel(Symbol, Loc);
326325
getAssembler().registerSymbol(*Symbol);
327-
auto *DF = dyn_cast_or_null<MCDataFragment>(F);
326+
Symbol->setFragment(&F);
328327
Symbol->setOffset(Offset);
329-
if (DF) {
330-
Symbol->setFragment(F);
331-
} else {
332-
assert(isa<MCDummyFragment>(F) &&
333-
"F must either be an MCDataFragment or the pending MCDummyFragment");
334-
assert(Offset == 0);
335-
addPendingLabel(Symbol);
336-
}
337328
}
338329

339330
void MCObjectStreamer::emitULEB128Value(const MCExpr *Value) {

llvm/lib/MC/MCWasmStreamer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ void MCWasmStreamer::emitLabel(MCSymbol *S, SMLoc Loc) {
4949
Symbol->setTLS();
5050
}
5151

52-
void MCWasmStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCFragment *F,
52+
void MCWasmStreamer::emitLabelAtPos(MCSymbol *S, SMLoc Loc, MCDataFragment &F,
5353
uint64_t Offset) {
5454
auto *Symbol = cast<MCSymbolWasm>(S);
5555
MCObjectStreamer::emitLabelAtPos(Symbol, Loc, F, Offset);

llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ class ARMELFStreamer : public MCELFStreamer {
555555
if (!LastEMSInfo->hasInfo())
556556
return;
557557
ElfMappingSymbolInfo *EMS = LastEMSInfo.get();
558-
EmitMappingSymbol("$d", SMLoc(), EMS->F, EMS->Offset);
558+
emitMappingSymbol("$d", *EMS->F, EMS->Offset);
559559
EMS->resetInfo();
560560
}
561561

@@ -630,7 +630,7 @@ class ARMELFStreamer : public MCELFStreamer {
630630
Offset = 0;
631631
}
632632
bool hasInfo() { return F != nullptr; }
633-
MCFragment *F = nullptr;
633+
MCDataFragment *F = nullptr;
634634
uint64_t Offset = 0;
635635
ElfMappingSymbol State = EMS_None;
636636
};
@@ -645,7 +645,7 @@ class ARMELFStreamer : public MCELFStreamer {
645645
auto *DF = dyn_cast_or_null<MCDataFragment>(getCurrentFragment());
646646
if (!DF)
647647
return;
648-
EMS->F = getCurrentFragment();
648+
EMS->F = DF;
649649
EMS->Offset = DF->getContents().size();
650650
LastEMSInfo->State = EMS_Data;
651651
return;
@@ -679,11 +679,10 @@ class ARMELFStreamer : public MCELFStreamer {
679679
Symbol->setBinding(ELF::STB_LOCAL);
680680
}
681681

682-
void EmitMappingSymbol(StringRef Name, SMLoc Loc, MCFragment *F,
683-
uint64_t Offset) {
682+
void emitMappingSymbol(StringRef Name, MCDataFragment &F, uint64_t Offset) {
684683
auto *Symbol = cast<MCSymbolELF>(getContext().getOrCreateSymbol(
685684
Name + "." + Twine(MappingSymbolCounter++)));
686-
emitLabelAtPos(Symbol, Loc, F, Offset);
685+
emitLabelAtPos(Symbol, SMLoc(), F, Offset);
687686
Symbol->setType(ELF::STT_NOTYPE);
688687
Symbol->setBinding(ELF::STB_LOCAL);
689688
}

0 commit comments

Comments
 (0)