@@ -309,13 +309,8 @@ class MCFragment {
309309 }
310310};
311311
312- // / Interface implemented by fragments that contain encoded instructions and/or
313- // / data.
314- class MCEncodedFragment : public MCFragment {
315- protected:
316- MCEncodedFragment (MCFragment::FragmentType FType, bool HasInstructions)
317- : MCFragment(FType, HasInstructions) {}
318- };
312+ // MCFragment subclasses do not use the fixed-size part or variable-size tail of
313+ // MCFragment. Instead, they encode content in a specialized way.
319314
320315class MCFillFragment : public MCFragment {
321316 uint8_t ValueSize;
@@ -331,7 +326,7 @@ class MCFillFragment : public MCFragment {
331326public:
332327 MCFillFragment (uint64_t Value, uint8_t VSize, const MCExpr &NumValues,
333328 SMLoc Loc)
334- : MCFragment(FT_Fill, false ), ValueSize(VSize), Value(Value),
329+ : MCFragment(FT_Fill), ValueSize(VSize), Value(Value),
335330 NumValues (NumValues), Loc(Loc) {}
336331
337332 uint64_t getValue () const { return Value; }
@@ -362,7 +357,7 @@ class MCNopsFragment : public MCFragment {
362357public:
363358 MCNopsFragment (int64_t NumBytes, int64_t ControlledNopLength, SMLoc L,
364359 const MCSubtargetInfo &STI)
365- : MCFragment(FT_Nops, false ), Size(NumBytes),
360+ : MCFragment(FT_Nops), Size(NumBytes),
366361 ControlledNopLength (ControlledNopLength), Loc(L), STI(STI) {}
367362
368363 int64_t getNumBytes () const { return Size; }
@@ -389,7 +384,7 @@ class MCOrgFragment : public MCFragment {
389384
390385public:
391386 MCOrgFragment (const MCExpr &Offset, int8_t Value, SMLoc Loc)
392- : MCFragment(FT_Org, false ), Value(Value), Offset(&Offset), Loc(Loc) {}
387+ : MCFragment(FT_Org), Value(Value), Offset(&Offset), Loc(Loc) {}
393388
394389 const MCExpr &getOffset () const { return *Offset; }
395390
@@ -407,8 +402,7 @@ class MCSymbolIdFragment : public MCFragment {
407402 const MCSymbol *Sym;
408403
409404public:
410- MCSymbolIdFragment (const MCSymbol *Sym)
411- : MCFragment(FT_SymbolId, false ), Sym(Sym) {}
405+ MCSymbolIdFragment (const MCSymbol *Sym) : MCFragment(FT_SymbolId), Sym(Sym) {}
412406
413407 const MCSymbol *getSymbol () { return Sym; }
414408 const MCSymbol *getSymbol () const { return Sym; }
@@ -420,7 +414,7 @@ class MCSymbolIdFragment : public MCFragment {
420414
421415// / Fragment representing the binary annotations produced by the
422416// / .cv_inline_linetable directive.
423- class MCCVInlineLineTableFragment : public MCEncodedFragment {
417+ class MCCVInlineLineTableFragment : public MCFragment {
424418 unsigned SiteFuncId;
425419 unsigned StartFileId;
426420 unsigned StartLineNum;
@@ -435,7 +429,7 @@ class MCCVInlineLineTableFragment : public MCEncodedFragment {
435429 MCCVInlineLineTableFragment (unsigned SiteFuncId, unsigned StartFileId,
436430 unsigned StartLineNum, const MCSymbol *FnStartSym,
437431 const MCSymbol *FnEndSym)
438- : MCEncodedFragment (FT_CVInlineLines, false ), SiteFuncId(SiteFuncId),
432+ : MCFragment (FT_CVInlineLines), SiteFuncId(SiteFuncId),
439433 StartFileId (StartFileId), StartLineNum(StartLineNum),
440434 FnStartSym(FnStartSym), FnEndSym(FnEndSym) {}
441435
@@ -448,7 +442,7 @@ class MCCVInlineLineTableFragment : public MCEncodedFragment {
448442};
449443
450444// / Fragment representing the .cv_def_range directive.
451- class MCCVDefRangeFragment : public MCEncodedFragment {
445+ class MCCVDefRangeFragment : public MCFragment {
452446 ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges;
453447 StringRef FixedSizePortion;
454448
@@ -460,8 +454,7 @@ class MCCVDefRangeFragment : public MCEncodedFragment {
460454 MCCVDefRangeFragment (
461455 ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> Ranges,
462456 StringRef FixedSizePortion)
463- : MCEncodedFragment(FT_CVDefRange, false ),
464- Ranges (Ranges.begin(), Ranges.end()),
457+ : MCFragment(FT_CVDefRange), Ranges(Ranges.begin(), Ranges.end()),
465458 FixedSizePortion (FixedSizePortion) {}
466459
467460 ArrayRef<std::pair<const MCSymbol *, const MCSymbol *>> getRanges () const {
@@ -492,8 +485,7 @@ class MCBoundaryAlignFragment : public MCFragment {
492485
493486public:
494487 MCBoundaryAlignFragment (Align AlignBoundary, const MCSubtargetInfo &STI)
495- : MCFragment(FT_BoundaryAlign, false ), AlignBoundary(AlignBoundary),
496- STI (STI) {}
488+ : MCFragment(FT_BoundaryAlign), AlignBoundary(AlignBoundary), STI(STI) {}
497489
498490 uint64_t getSize () const { return Size; }
499491 void setSize (uint64_t Value) { Size = Value; }
0 commit comments