Skip to content

Commit 6d0f573

Browse files
committed
MCFragment: Remove MCDataFragment/MCRelaxableFragment type aliases
Follow-up to #148544
1 parent dc3a4c0 commit 6d0f573

File tree

8 files changed

+23
-31
lines changed

8 files changed

+23
-31
lines changed

llvm/include/llvm/MC/MCAsmBackend.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,7 @@ class LLVM_ABI MCAsmBackend {
224224

225225
bool isDarwinCanonicalPersonality(const MCSymbol *Sym) const;
226226

227-
// Return STI for fragments of type MCRelaxableFragment and MCFragment
228-
// with hasInstructions() == true.
227+
// Return STI for fragments with hasInstructions() == true.
229228
static const MCSubtargetInfo *getSubtargetInfo(const MCFragment &F);
230229
};
231230

llvm/include/llvm/MC/MCSection.h

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,13 @@ class MCFragment {
225225
FragmentType Kind;
226226

227227
protected:
228-
/// Used by subclasses for better packing.
228+
bool LinkerRelaxable : 1;
229+
230+
/// Used by certain fragment types for better packing.
229231
///
230-
/// MCEncodedFragment
232+
/// FT_Data, FT_Relaxable
231233
bool HasInstructions : 1;
232-
/// MCDataFragment
233-
bool LinkerRelaxable : 1;
234-
/// MCRelaxableFragment: x86-specific
234+
/// FT_Relaxable, x86-specific
235235
bool AllowAutoPadding : 1;
236236

237237
uint32_t ContentStart = 0;
@@ -486,10 +486,6 @@ class MCEncodedFragment : public MCFragment {
486486
: MCFragment(FType, HasInstructions) {}
487487
};
488488

489-
// TODO Delete
490-
using MCDataFragment = MCFragment;
491-
using MCRelaxableFragment = MCFragment;
492-
493489
class MCAlignFragment : public MCFragment {
494490
/// Flag to indicate that (optimal) NOPs should be emitted instead
495491
/// of using the provided value. The exact interpretation of this flag is

llvm/lib/MC/MCAssembler.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -966,8 +966,7 @@ bool MCAssembler::relaxFragment(MCFragment &F) {
966966
default:
967967
return false;
968968
case MCFragment::FT_Relaxable:
969-
assert(!getRelaxAll() &&
970-
"Did not expect a MCRelaxableFragment in RelaxAll mode");
969+
assert(!getRelaxAll() && "Did not expect a FT_Relaxable in RelaxAll mode");
971970
return relaxInstruction(F);
972971
case MCFragment::FT_LEB:
973972
return relaxLEB(F);

llvm/lib/MC/MCFragment.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ static_assert(std::is_trivially_destructible_v<MCFragment>,
2828
"fragment classes must be trivially destructible");
2929

3030
MCFragment::MCFragment(FragmentType Kind, bool HasInstructions)
31-
: Kind(Kind), HasInstructions(HasInstructions), LinkerRelaxable(false),
31+
: Kind(Kind), LinkerRelaxable(false), HasInstructions(HasInstructions),
3232
AllowAutoPadding(false) {
3333
static_assert(sizeof(MCFragment::Tail) <= 16,
3434
"Keep the variable-size tail small");

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ class ARMELFStreamer : public MCELFStreamer {
638638
Offset = 0;
639639
}
640640
bool hasInfo() { return F != nullptr; }
641-
MCDataFragment *F = nullptr;
641+
MCFragment *F = nullptr;
642642
uint64_t Offset = 0;
643643
ElfMappingSymbol State = EMS_None;
644644
};
@@ -686,7 +686,7 @@ class ARMELFStreamer : public MCELFStreamer {
686686
Symbol->setBinding(ELF::STB_LOCAL);
687687
}
688688

689-
void emitMappingSymbol(StringRef Name, MCDataFragment &F, uint64_t Offset) {
689+
void emitMappingSymbol(StringRef Name, MCFragment &F, uint64_t Offset) {
690690
auto *Symbol = cast<MCSymbolELF>(getContext().createLocalSymbol(Name));
691691
emitLabelAtPos(Symbol, SMLoc(), F, Offset);
692692
Symbol->setType(ELF::STT_NOTYPE);
@@ -1207,7 +1207,7 @@ inline void ARMELFStreamer::SwitchToExIdxSection(const MCSymbol &FnStart) {
12071207
}
12081208

12091209
void ARMELFStreamer::EmitFixup(const MCExpr *Expr, MCFixupKind Kind) {
1210-
MCDataFragment *Frag = getOrCreateDataFragment();
1210+
MCFragment *Frag = getOrCreateDataFragment();
12111211
Frag->addFixup(MCFixup::create(Frag->getContents().size(), Expr, Kind));
12121212
}
12131213

@@ -1295,7 +1295,7 @@ void ARMELFStreamer::EmitPersonalityFixup(StringRef Name) {
12951295
MCSymbolRefExpr::create(PersonalitySym, ARM::S_ARM_NONE, getContext());
12961296

12971297
visitUsedExpr(*PersonalityRef);
1298-
MCDataFragment *DF = getOrCreateDataFragment();
1298+
MCFragment *DF = getOrCreateDataFragment();
12991299
DF->addFixup(
13001300
MCFixup::create(DF->getContents().size(), PersonalityRef, FK_Data_4));
13011301
}

llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,42 +1033,42 @@ MCELFStreamer &MipsTargetELFStreamer::getStreamer() {
10331033
}
10341034

10351035
void MipsTargetELFStreamer::emitGPRel32Value(const MCExpr *Value) {
1036-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1036+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10371037
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10381038
Mips::fixup_Mips_GPREL32));
10391039
DF->appendContents(4, 0);
10401040
}
10411041

10421042
void MipsTargetELFStreamer::emitGPRel64Value(const MCExpr *Value) {
1043-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1043+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10441044
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10451045
Mips::fixup_Mips_GPREL32));
10461046
DF->appendContents(8, 0);
10471047
}
10481048

10491049
void MipsTargetELFStreamer::emitDTPRel32Value(const MCExpr *Value) {
1050-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1050+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10511051
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10521052
Mips::fixup_Mips_DTPREL32));
10531053
DF->appendContents(4, 0);
10541054
}
10551055

10561056
void MipsTargetELFStreamer::emitDTPRel64Value(const MCExpr *Value) {
1057-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1057+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10581058
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10591059
Mips::fixup_Mips_DTPREL64));
10601060
DF->appendContents(8, 0);
10611061
}
10621062

10631063
void MipsTargetELFStreamer::emitTPRel32Value(const MCExpr *Value) {
1064-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1064+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10651065
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10661066
Mips::fixup_Mips_TPREL32));
10671067
DF->appendContents(4, 0);
10681068
}
10691069

10701070
void MipsTargetELFStreamer::emitTPRel64Value(const MCExpr *Value) {
1071-
MCDataFragment *DF = getStreamer().getOrCreateDataFragment();
1071+
MCFragment *DF = getStreamer().getOrCreateDataFragment();
10721072
DF->addFixup(MCFixup::create(DF->getContents().size(), Value,
10731073
Mips::fixup_Mips_TPREL64));
10741074
DF->appendContents(8, 0);

llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,10 @@ void PPCELFStreamer::emitGOTToPCRelReloc(const MCInst &Inst) {
155155
const MCExpr *SubExpr2 =
156156
MCBinaryExpr::createSub(CurrentLocationExpr, SubExpr, getContext());
157157

158-
MCDataFragment *DF = static_cast<MCDataFragment *>(LabelSym->getFragment());
159-
assert(DF && "Expecting a valid data fragment.");
160-
MCFixupKind FixupKind = static_cast<MCFixupKind>(FirstLiteralRelocationKind +
161-
ELF::R_PPC64_PCREL_OPT);
162-
DF->addFixup(MCFixup::create(LabelSym->getOffset() - 8, SubExpr2, FixupKind));
158+
MCFragment *F = LabelSym->getFragment();
159+
F->addFixup(
160+
MCFixup::create(LabelSym->getOffset() - 8, SubExpr2,
161+
FirstLiteralRelocationKind + ELF::R_PPC64_PCREL_OPT));
163162
emitLabel(CurrentLocation, Inst.getLoc());
164163
}
165164

llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -567,8 +567,7 @@ void X86AsmBackend::emitInstructionEnd(MCObjectStreamer &OS,
567567
// DataFragment, so that we can get the size of instructions later in
568568
// MCAssembler::relaxBoundaryAlign. The easiest way is to insert a new empty
569569
// DataFragment.
570-
if (isa_and_nonnull<MCDataFragment>(CF))
571-
OS.insert(OS.getContext().allocFragment<MCDataFragment>());
570+
OS.insert(OS.getContext().allocFragment<MCFragment>());
572571

573572
// Update the maximum alignment on the current section if necessary.
574573
MCSection *Sec = OS.getCurrentSectionOnly();

0 commit comments

Comments
 (0)