@@ -48,7 +48,6 @@ constexpr StringLiteral PaddingRef::KindString;
48
48
#define MCFRAGMENT_NODE_REF (MCFragmentName, MCEnumName, MCEnumIdentifier ) \
49
49
constexpr StringLiteral MCFragmentName##Ref::KindString;
50
50
#include " llvm/MCCAS/MCCASObjectV1.def"
51
- constexpr StringLiteral MCGenericFragmentRef::KindString;
52
51
constexpr StringLiteral DebugInfoSectionRef::KindString;
53
52
54
53
void MCSchema::anchor () {}
@@ -173,7 +172,6 @@ Error MCSchema::fillCache() {
173
172
PaddingRef::KindString,
174
173
MCAssemblerRef::KindString,
175
174
DebugInfoSectionRef::KindString,
176
- MCGenericFragmentRef::KindString,
177
175
#define CASV1_SIMPLE_DATA_REF (RefName, IdentifierName ) RefName::KindString,
178
176
#define CASV1_SIMPLE_GROUP_REF (RefName, IdentifierName ) RefName::KindString,
179
177
#define MCFRAGMENT_NODE_REF (MCFragmentName, MCEnumName, MCEnumIdentifier ) \
@@ -1533,33 +1531,34 @@ Expected<uint64_t> AtomRef::materialize(MCCASReader &Reader,
1533
1531
return Size;
1534
1532
}
1535
1533
1536
- Expected<MCGenericFragmentRef >
1537
- MCGenericFragmentRef::createGenericAlignFragmentRef (
1538
- MCCASBuilder &MB, const MCFragment &F, unsigned FragmentSize,
1539
- ArrayRef<char > FragmentContents) {
1534
+ Expected<MCAlignFragmentRef >
1535
+ MCAlignFragmentRef::create (MCCASBuilder &MB, const MCAlignFragment &F,
1536
+ unsigned FragmentSize,
1537
+ ArrayRef<char > FragmentContents) {
1540
1538
Expected<Builder> B = Builder::startNode (MB.Schema , KindString);
1541
1539
if (!B)
1542
1540
return B.takeError ();
1543
1541
1544
- uint64_t Count = FragmentSize / F.getAlignFillLen ();
1545
- if (F.hasAlignEmitNops ()) {
1542
+ uint64_t Count = FragmentSize / F.getFillLen ();
1543
+ if (F.hasEmitNops ()) {
1546
1544
// Write 0 as size and use backend to emit nop.
1547
1545
writeVBR8 (0 , B->Data );
1548
1546
if (!MB.Asm .getBackend ().writeNopData (MB.FragmentOS , Count,
1549
1547
F.getSubtargetInfo ()))
1550
1548
report_fatal_error (" unable to write nop sequence of " + Twine (Count) +
1551
1549
" bytes" );
1552
1550
B->Data .append (MB.FragmentData );
1553
- return get (B->build (), MCFragment::FT_Align );
1551
+ return get (B->build ());
1554
1552
}
1555
1553
writeVBR8 (Count, B->Data );
1556
- writeVBR8 (F.getAlignFill (), B->Data );
1557
- writeVBR8 (F.getAlignFillLen (), B->Data );
1558
- return get (B->build (), MCFragment::FT_Align );
1554
+ writeVBR8 (F.getFill (), B->Data );
1555
+ writeVBR8 (F.getFillLen (), B->Data );
1556
+ return get (B->build ());
1559
1557
}
1560
1558
1561
- Expected<uint64_t > MCGenericFragmentRef::materializeGenericAlignFragmentRef (
1562
- MCCASReader &Reader, raw_ostream *Stream) const {
1559
+ Expected<uint64_t > MCAlignFragmentRef::materialize (MCCASReader &Reader,
1560
+ raw_ostream *Stream) const
1561
+ {
1563
1562
uint64_t Count;
1564
1563
auto Remaining = getData ();
1565
1564
auto Endian = Reader.getEndian ();
@@ -1687,76 +1686,23 @@ Expected<uint64_t> MCFillFragmentRef::materialize(MCCASReader &Reader,
1687
1686
return Size;
1688
1687
}
1689
1688
1690
- Expected<MCGenericFragmentRef >
1691
- MCGenericFragmentRef::createGenericLEBFragmentRef (
1692
- MCCASBuilder &MB, const MCFragment &F, unsigned FragmentSize,
1693
- ArrayRef<char > FragmentContents) {
1689
+ Expected<MCLEBFragmentRef >
1690
+ MCLEBFragmentRef::create (MCCASBuilder &MB, const MCLEBFragment &F,
1691
+ unsigned FragmentSize,
1692
+ ArrayRef<char > FragmentContents) {
1694
1693
Expected<Builder> B = Builder::startNode (MB.Schema , KindString);
1695
1694
if (!B)
1696
1695
return B.takeError ();
1697
1696
llvm::append_range (B->Data , F.getContents ());
1698
- return get (B->build (), MCFragment::FT_LEB );
1697
+ return get (B->build ());
1699
1698
}
1700
1699
1701
- Expected<uint64_t > MCGenericFragmentRef::materializeGenericLEBFragmentRef (
1702
- MCCASReader &Reader, raw_ostream *Stream) const {
1700
+ Expected<uint64_t > MCLEBFragmentRef::materialize (MCCASReader &Reader,
1701
+ raw_ostream *Stream) const {
1703
1702
*Stream << getData ();
1704
1703
return getData ().size ();
1705
1704
}
1706
1705
1707
- Expected<MCGenericFragmentRef>
1708
- MCGenericFragmentRef::create (MCCASBuilder &MB, const MCFragment &Fragment,
1709
- unsigned int FragmentSize,
1710
- ArrayRef<char > FragmentContents) {
1711
- auto FragType = Fragment.getKind ();
1712
- switch (FragType) {
1713
- case MCFragment::FT_Align:
1714
- return createGenericAlignFragmentRef (MB, Fragment, FragmentSize,
1715
- FragmentContents);
1716
- case MCFragment::FT_LEB:
1717
- return createGenericLEBFragmentRef (MB, Fragment, FragmentSize,
1718
- FragmentContents);
1719
- case MCFragment::FT_Relaxable:
1720
- case MCFragment::FT_Data:
1721
- case MCFragment::FT_Dwarf:
1722
- case MCFragment::FT_DwarfFrame: {
1723
- Expected<Builder> B = Builder::startNode (MB.Schema , KindString);
1724
- if (!B)
1725
- return B.takeError ();
1726
- B->Data .append (MB.FragmentData );
1727
- B->Data .append (FragmentContents.begin (), FragmentContents.end ());
1728
- assert (((MB.FragmentData .empty () && Fragment.getContents ().empty ()) ||
1729
- (MB.FragmentData .size () + Fragment.getContents ().size () ==
1730
- FragmentSize)) &&
1731
- " Size should match" );
1732
- return get (B->build (), FragType);
1733
- }
1734
- default :
1735
- llvm_unreachable (" Other Fragment Kinds should be handled elsewhere!" );
1736
- }
1737
- }
1738
-
1739
- Expected<uint64_t >
1740
- MCGenericFragmentRef::materialize (const MCFragment::FragmentType FragType,
1741
- MCCASReader &Reader,
1742
- raw_ostream *Stream) const {
1743
- switch (FragType) {
1744
- case MCFragment::FT_Align:
1745
- return materializeGenericAlignFragmentRef (Reader, Stream);
1746
- case MCFragment::FT_LEB:
1747
- return materializeGenericLEBFragmentRef (Reader, Stream);
1748
- case MCFragment::FT_Relaxable:
1749
- case MCFragment::FT_Data:
1750
- case MCFragment::FT_Dwarf:
1751
- case MCFragment::FT_DwarfFrame: {
1752
- *Stream << getData ();
1753
- return getData ().size ();
1754
- }
1755
- default :
1756
- llvm_unreachable (" Other Fragment Kinds should be handled elsewhere!" );
1757
- }
1758
- }
1759
-
1760
1706
Expected<MCNopsFragmentRef>
1761
1707
MCNopsFragmentRef::create (MCCASBuilder &MB, const MCNopsFragment &F,
1762
1708
unsigned FragmentSize,
@@ -1912,18 +1858,6 @@ Error MCCASBuilder::buildFragment(const MCFragment &F, unsigned Size,
1912
1858
return Error::success (); \
1913
1859
}
1914
1860
#include " llvm/MCCAS/MCCASObjectV1.def"
1915
- case MCFragment::FT_Relaxable:
1916
- case MCFragment::FT_Data:
1917
- case MCFragment::FT_Align:
1918
- case MCFragment::FT_Dwarf:
1919
- case MCFragment::FT_DwarfFrame:
1920
- case MCFragment::FT_LEB: {
1921
- auto GF = MCGenericFragmentRef::create (*this , F, Size, FragmentContents);
1922
- if (!GF)
1923
- return GF.takeError ();
1924
- addNode (*GF);
1925
- return Error::success ();
1926
- }
1927
1861
}
1928
1862
llvm_unreachable (" unknown fragment" );
1929
1863
}
@@ -2050,14 +1984,6 @@ Error MCDataFragmentMerger::emitMergedFragments() {
2050
1984
return E;
2051
1985
break ;
2052
1986
}
2053
- case MCFragment::FT_Relaxable:
2054
- case MCFragment::FT_Data:
2055
- case MCFragment::FT_Dwarf:
2056
- case MCFragment::FT_DwarfFrame:
2057
- case MCFragment::FT_LEB: {
2058
- FragmentData.append (CandidateContents);
2059
- break ;
2060
- }
2061
1987
default :
2062
1988
llvm_unreachable (" other framgents should not be added" );
2063
1989
}
@@ -2935,11 +2861,6 @@ static ArrayRef<char> getFragmentContents(const MCFragment &Fragment) {
2935
2861
cast<MCCVInlineLineTableFragment>(Fragment);
2936
2862
return SF.getContents ();
2937
2863
}
2938
- case MCFragment::FT_Relaxable:
2939
- case MCFragment::FT_Data:
2940
- case MCFragment::FT_Align:
2941
- case MCFragment::FT_Dwarf:
2942
- case MCFragment::FT_DwarfFrame:
2943
2864
case MCFragment::FT_LEB: {
2944
2865
return Fragment.getContents ();
2945
2866
}
@@ -3681,9 +3602,6 @@ Expected<uint64_t> MCCASReader::materializeAtom(cas::ObjectRef ID,
3681
3602
return F->materialize (*Stream);
3682
3603
if (auto F = MergedFragmentRef::Cast (*Node))
3683
3604
return F->materialize (*Stream);
3684
- if (auto F = MCGenericFragmentRef::Cast (*Node)) {
3685
- return F->materialize (F->FragType , *this , Stream);
3686
- }
3687
3605
3688
3606
return createStringError (inconvertibleErrorCode (),
3689
3607
" unsupported CAS node for fragment" );
0 commit comments