<div dir="ltr">Yay!<div><br></div><div>Thank you for cleaning up,</div><div><br></div><div> Filipe</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"> F<br></div></div>
<br><div class="gmail_quote">On Wed, May 27, 2015 at 8:14 AM, Rafael Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rafael<br>
Date: Wed May 27 10:14:11 2015<br>
New Revision: 238331<br>
<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject-3Frev-3D238331-26view-3Drev&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=8oh4PD_5yy7hosqnawVGWSb_5K4XYo7RnkwYPVzrh8E&e=" target="_blank">http://llvm.org/viewvc/llvm-project?rev=238331&view=rev</a><br>
Log:<br>
Delete MCSectionData.<br>
<br>
Modified:<br>
llvm/trunk/include/llvm/MC/MCObjectStreamer.h<br>
llvm/trunk/include/llvm/MC/MCSection.h<br>
llvm/trunk/lib/MC/ELFObjectWriter.cpp<br>
llvm/trunk/lib/MC/MCAssembler.cpp<br>
llvm/trunk/lib/MC/MCMachOStreamer.cpp<br>
llvm/trunk/lib/MC/MCObjectStreamer.cpp<br>
llvm/trunk/lib/MC/MCSection.cpp<br>
<br>
Modified: llvm/trunk/include/llvm/MC/MCObjectStreamer.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_MC_MCObjectStreamer.h-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=E8iMtSEhoTSeCBRV6T0C_fSpUPgA5_hnXcwD1seUDAQ&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectStreamer.h?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/MC/MCObjectStreamer.h (original)<br>
+++ llvm/trunk/include/llvm/MC/MCObjectStreamer.h Wed May 27 10:14:11 2015<br>
@@ -36,7 +36,7 @@ class raw_pwrite_stream;<br>
class MCObjectStreamer : public MCStreamer {<br>
MCAssembler *Assembler;<br>
MCSection *CurSectionData;<br>
- MCSectionData::iterator CurInsertionPoint;<br>
+ MCSection::iterator CurInsertionPoint;<br>
bool EmitEHFrame;<br>
bool EmitDebugFrame;<br>
SmallVector<MCSymbolData *, 2> PendingLabels;<br>
<br>
Modified: llvm/trunk/include/llvm/MC/MCSection.h<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_include_llvm_MC_MCSection.h-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=zoEEM9wTxzGcwcVkkpr37aFhI49ZJ8krdQVPdtuiZ1c&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCSection.h?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/MC/MCSection.h (original)<br>
+++ llvm/trunk/include/llvm/MC/MCSection.h Wed May 27 10:14:11 2015<br>
@@ -31,73 +31,6 @@ class MCSection;<br>
class MCSymbol;<br>
class raw_ostream;<br>
<br>
-class MCSectionData {<br>
- friend class MCAsmLayout;<br>
- friend class MCSection;<br>
-<br>
- MCSectionData(const MCSectionData &) = delete;<br>
- void operator=(const MCSectionData &) = delete;<br>
-<br>
-public:<br>
- typedef iplist<MCFragment> FragmentListType;<br>
-<br>
- typedef FragmentListType::const_iterator const_iterator;<br>
- typedef FragmentListType::iterator iterator;<br>
-<br>
- typedef FragmentListType::const_reverse_iterator const_reverse_iterator;<br>
- typedef FragmentListType::reverse_iterator reverse_iterator;<br>
-<br>
-private:<br>
- FragmentListType Fragments;<br>
- MCSection *Section;<br>
-<br>
- /// \name Assembler Backend Data<br>
- /// @{<br>
- //<br>
- // FIXME: This could all be kept private to the assembler implementation.<br>
-<br>
- /// Mapping from subsection number to insertion point for subsection numbers<br>
- /// below that number.<br>
- SmallVector<std::pair<unsigned, MCFragment *>, 1> SubsectionFragmentMap;<br>
-<br>
- /// @}<br>
-<br>
-public:<br>
- explicit MCSectionData(MCSection &Section);<br>
-<br>
- MCSection &getSection() const { return *Section; }<br>
-<br>
- /// \name Fragment Access<br>
- /// @{<br>
-<br>
- const FragmentListType &getFragmentList() const { return Fragments; }<br>
- FragmentListType &getFragmentList() { return Fragments; }<br>
-<br>
- iterator begin();<br>
- const_iterator begin() const {<br>
- return const_cast<MCSectionData *>(this)->begin();<br>
- }<br>
-<br>
- iterator end();<br>
- const_iterator end() const {<br>
- return const_cast<MCSectionData *>(this)->end();<br>
- }<br>
-<br>
- reverse_iterator rbegin();<br>
- const_reverse_iterator rbegin() const {<br>
- return const_cast<MCSectionData *>(this)->rbegin();<br>
- }<br>
-<br>
- reverse_iterator rend();<br>
- const_reverse_iterator rend() const {<br>
- return const_cast<MCSectionData *>(this)->rend();<br>
- }<br>
-<br>
- void dump();<br>
-<br>
- /// @}<br>
-};<br>
-<br>
/// Instances of this class represent a uniqued identifier for a section in the<br>
/// current translation unit. The MCContext class uniques and creates these.<br>
class MCSection {<br>
@@ -111,6 +44,14 @@ public:<br>
BundleLockedAlignToEnd<br>
};<br>
<br>
+ typedef iplist<MCFragment> FragmentListType;<br>
+<br>
+ typedef FragmentListType::const_iterator const_iterator;<br>
+ typedef FragmentListType::iterator iterator;<br>
+<br>
+ typedef FragmentListType::const_reverse_iterator const_reverse_iterator;<br>
+ typedef FragmentListType::reverse_iterator reverse_iterator;<br>
+<br>
private:<br>
MCSection(const MCSection &) = delete;<br>
void operator=(const MCSection &) = delete;<br>
@@ -137,7 +78,11 @@ private:<br>
/// Whether this section has had instructions emitted into it.<br>
unsigned HasInstructions : 1;<br>
<br>
- MCSectionData Data;<br>
+ FragmentListType Fragments;<br>
+<br>
+ /// Mapping from subsection number to insertion point for subsection numbers<br>
+ /// below that number.<br>
+ SmallVector<std::pair<unsigned, MCFragment *>, 1> SubsectionFragmentMap;<br>
<br>
protected:<br>
MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin);<br>
@@ -185,37 +130,34 @@ public:<br>
bool hasInstructions() const { return HasInstructions; }<br>
void setHasInstructions(bool Value) { HasInstructions = Value; }<br>
<br>
- MCSectionData &getSectionData() { return Data; }<br>
- const MCSectionData &getSectionData() const {<br>
- return const_cast<MCSection *>(this)->getSectionData();<br>
- }<br>
-<br>
- MCSectionData::FragmentListType &getFragmentList();<br>
- const MCSectionData::FragmentListType &getFragmentList() const {<br>
+ MCSection::FragmentListType &getFragmentList() { return Fragments; }<br>
+ const MCSection::FragmentListType &getFragmentList() const {<br>
return const_cast<MCSection *>(this)->getFragmentList();<br>
}<br>
<br>
- MCSectionData::iterator begin();<br>
- MCSectionData::const_iterator begin() const {<br>
+ MCSection::iterator begin();<br>
+ MCSection::const_iterator begin() const {<br>
return const_cast<MCSection *>(this)->begin();<br>
}<br>
<br>
- MCSectionData::iterator end();<br>
- MCSectionData::const_iterator end() const {<br>
+ MCSection::iterator end();<br>
+ MCSection::const_iterator end() const {<br>
return const_cast<MCSection *>(this)->end();<br>
}<br>
<br>
- MCSectionData::reverse_iterator rbegin();<br>
- MCSectionData::const_reverse_iterator rbegin() const {<br>
+ MCSection::reverse_iterator rbegin();<br>
+ MCSection::const_reverse_iterator rbegin() const {<br>
return const_cast<MCSection *>(this)->rbegin();<br>
}<br>
<br>
- MCSectionData::reverse_iterator rend();<br>
- MCSectionData::const_reverse_iterator rend() const {<br>
+ MCSection::reverse_iterator rend();<br>
+ MCSection::const_reverse_iterator rend() const {<br>
return const_cast<MCSection *>(this)->rend();<br>
}<br>
<br>
- MCSectionData::iterator getSubsectionInsertionPoint(unsigned Subsection);<br>
+ MCSection::iterator getSubsectionInsertionPoint(unsigned Subsection);<br>
+<br>
+ void dump();<br>
<br>
virtual void PrintSwitchToSection(const MCAsmInfo &MAI, raw_ostream &OS,<br>
const MCExpr *Subsection) const = 0;<br>
<br>
Modified: llvm/trunk/lib/MC/ELFObjectWriter.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_ELFObjectWriter.cpp-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=sTHA4zrkNCsl9j2WHQ52YVdPV0WRrD7WkPScLUvRa4k&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/ELFObjectWriter.cpp?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/ELFObjectWriter.cpp (original)<br>
+++ llvm/trunk/lib/MC/ELFObjectWriter.cpp Wed May 27 10:14:11 2015<br>
@@ -1096,7 +1096,7 @@ ELFObjectWriter::createRelocationSection<br>
<br>
static SmallVector<char, 128><br>
getUncompressedData(const MCAsmLayout &Layout,<br>
- const MCSectionData::FragmentListType &Fragments) {<br>
+ const MCSection::FragmentListType &Fragments) {<br>
SmallVector<char, 128> UncompressedData;<br>
for (const MCFragment &F : Fragments) {<br>
const SmallVectorImpl<char> *Contents;<br>
@@ -1154,7 +1154,7 @@ void ELFObjectWriter::writeSectionData(c<br>
}<br>
<br>
// Gather the uncompressed data from all the fragments.<br>
- const MCSectionData::FragmentListType &Fragments = Section.getFragmentList();<br>
+ const MCSection::FragmentListType &Fragments = Section.getFragmentList();<br>
SmallVector<char, 128> UncompressedData =<br>
getUncompressedData(Layout, Fragments);<br>
<br>
<br>
Modified: llvm/trunk/lib/MC/MCAssembler.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_MCAssembler.cpp-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=rNmm2hruPOEX0odp8vngoHE_Nu0p3wsaYoZ21SWUds4&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAssembler.cpp?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCAssembler.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCAssembler.cpp Wed May 27 10:14:11 2015<br>
@@ -288,10 +288,6 @@ MCEncodedFragmentWithFixups::~MCEncodedF<br>
<br>
/* *** */<br>
<br>
-MCSectionData::MCSectionData(MCSection &Section) : Section(&Section) {}<br>
-<br>
-/* *** */<br>
-<br>
MCAssembler::MCAssembler(MCContext &Context_, MCAsmBackend &Backend_,<br>
MCCodeEmitter &Emitter_, MCObjectWriter &Writer_,<br>
raw_ostream &OS_)<br>
@@ -744,8 +740,8 @@ void MCAssembler::writeSectionData(const<br>
assert(Layout.getSectionFileSize(Sec) == 0 && "Invalid size for section!");<br>
<br>
// Check that contents are only things legal inside a virtual section.<br>
- for (MCSectionData::const_iterator it = Sec->begin(), ie = Sec->end();<br>
- it != ie; ++it) {<br>
+ for (MCSection::const_iterator it = Sec->begin(), ie = Sec->end(); it != ie;<br>
+ ++it) {<br>
switch (it->getKind()) {<br>
default: llvm_unreachable("Invalid fragment in virtual section!");<br>
case MCFragment::FT_Data: {<br>
@@ -786,8 +782,8 @@ void MCAssembler::writeSectionData(const<br>
uint64_t Start = getWriter().getStream().tell();<br>
(void)Start;<br>
<br>
- for (MCSectionData::const_iterator it = Sec->begin(), ie = Sec->end();<br>
- it != ie; ++it)<br>
+ for (MCSection::const_iterator it = Sec->begin(), ie = Sec->end(); it != ie;<br>
+ ++it)<br>
writeFragment(*this, Layout, *it);<br>
<br>
assert(getWriter().getStream().tell() - Start ==<br>
@@ -837,7 +833,7 @@ void MCAssembler::Finish() {<br>
Sec->setLayoutOrder(i);<br>
<br>
unsigned FragmentIndex = 0;<br>
- for (MCSectionData::iterator iFrag = Sec->begin(), iFragEnd = Sec->end();<br>
+ for (MCSection::iterator iFrag = Sec->begin(), iFragEnd = Sec->end();<br>
iFrag != iFragEnd; ++iFrag)<br>
iFrag->setLayoutOrder(FragmentIndex++);<br>
}<br>
@@ -865,8 +861,8 @@ void MCAssembler::Finish() {<br>
<br>
// Evaluate and apply the fixups, generating relocation entries as necessary.<br>
for (MCAssembler::iterator it = begin(), ie = end(); it != ie; ++it) {<br>
- for (MCSectionData::iterator it2 = it->begin(),<br>
- ie2 = it->end(); it2 != ie2; ++it2) {<br>
+ for (MCSection::iterator it2 = it->begin(), ie2 = it->end(); it2 != ie2;<br>
+ ++it2) {<br>
MCEncodedFragmentWithFixups *F =<br>
dyn_cast<MCEncodedFragmentWithFixups>(it2);<br>
if (F) {<br>
@@ -1009,7 +1005,7 @@ bool MCAssembler::layoutSectionOnce(MCAs<br>
MCFragment *FirstRelaxedFragment = nullptr;<br>
<br>
// Attempt to relax all the fragments in the section.<br>
- for (MCSectionData::iterator I = Sec.begin(), IE = Sec.end(); I != IE; ++I) {<br>
+ for (MCSection::iterator I = Sec.begin(), IE = Sec.end(); I != IE; ++I) {<br>
// Check if this is a fragment that needs relaxation.<br>
bool RelaxedFrag = false;<br>
switch(I->getKind()) {<br>
@@ -1188,18 +1184,6 @@ void MCFragment::dump() {<br>
OS << ">";<br>
}<br>
<br>
-void MCSectionData::dump() {<br>
- raw_ostream &OS = llvm::errs();<br>
-<br>
- OS << "<MCSectionData";<br>
- OS << " Fragments:[\n ";<br>
- for (iterator it = begin(), ie = end(); it != ie; ++it) {<br>
- if (it != begin()) OS << ",\n ";<br>
- it->dump();<br>
- }<br>
- OS << "]>";<br>
-}<br>
-<br>
void MCSymbolData::dump() const {<br>
raw_ostream &OS = llvm::errs();<br>
<br>
@@ -1225,7 +1209,7 @@ void MCAssembler::dump() {<br>
OS << " Sections:[\n ";<br>
for (iterator it = begin(), ie = end(); it != ie; ++it) {<br>
if (it != begin()) OS << ",\n ";<br>
- it->getSectionData().dump();<br>
+ it->dump();<br>
}<br>
OS << "],\n";<br>
OS << " Symbols:[";<br>
<br>
Modified: llvm/trunk/lib/MC/MCMachOStreamer.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_MCMachOStreamer.cpp-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=QrqvJwkxHj80SUVzAkl_VdSpJRUDMUblcxcqH2Dy2ho&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachOStreamer.cpp?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCMachOStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCMachOStreamer.cpp Wed May 27 10:14:11 2015<br>
@@ -479,8 +479,8 @@ void MCMachOStreamer::FinishImpl() {<br>
for (MCAssembler::iterator it = getAssembler().begin(),<br>
ie = getAssembler().end(); it != ie; ++it) {<br>
const MCSymbol *CurrentAtom = nullptr;<br>
- for (MCSectionData::iterator it2 = it->begin(),<br>
- ie2 = it->end(); it2 != ie2; ++it2) {<br>
+ for (MCSection::iterator it2 = it->begin(), ie2 = it->end(); it2 != ie2;<br>
+ ++it2) {<br>
if (const MCSymbol *Symbol = DefiningSymbolMap.lookup(it2))<br>
CurrentAtom = Symbol;<br>
it2->setAtom(CurrentAtom);<br>
<br>
Modified: llvm/trunk/lib/MC/MCObjectStreamer.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_MCObjectStreamer.cpp-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=wCFwg82g6x1x5ptSsEwcq6IvgYjMm5jFUhB0c6FKJd4&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCObjectStreamer.cpp?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCObjectStreamer.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCObjectStreamer.cpp Wed May 27 10:14:11 2015<br>
@@ -80,7 +80,7 @@ void MCObjectStreamer::reset() {<br>
if (Assembler)<br>
Assembler->reset();<br>
CurSectionData = nullptr;<br>
- CurInsertionPoint = MCSectionData::iterator();<br>
+ CurInsertionPoint = MCSection::iterator();<br>
EmitEHFrame = true;<br>
EmitDebugFrame = false;<br>
PendingLabels.clear();<br>
<br>
Modified: llvm/trunk/lib/MC/MCSection.cpp<br>
URL: <a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__llvm.org_viewvc_llvm-2Dproject_llvm_trunk_lib_MC_MCSection.cpp-3Frev-3D238331-26r1-3D238330-26r2-3D238331-26view-3Ddiff&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=mQ4LZ2PUj9hpadE3cDHZnIdEwhEBrbAstXeMaFoB9tg&m=acwRpO6n6fQ8aSSNg7tLiZAhNJTlxH-4ipDbsoj3aIs&s=NXBf8bo7jHkw6VmR0C_1ob1yeuwJVVF5vBcZv-nomo0&e=" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSection.cpp?rev=238331&r1=238330&r2=238331&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCSection.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCSection.cpp Wed May 27 10:14:11 2015<br>
@@ -20,7 +20,7 @@ using namespace llvm;<br>
//===----------------------------------------------------------------------===//<br>
<br>
MCSection::MCSection(SectionVariant V, SectionKind K, MCSymbol *Begin)<br>
- : Begin(Begin), HasInstructions(false), Data(*this), Variant(V), Kind(K) {}<br>
+ : Begin(Begin), HasInstructions(false), Variant(V), Kind(K) {}<br>
<br>
MCSymbol *MCSection::getEndSymbol(MCContext &Ctx) {<br>
if (!End)<br>
@@ -52,23 +52,23 @@ void MCSection::setBundleLockState(Bundl<br>
++BundleLockNestingDepth;<br>
}<br>
<br>
-MCSectionData::iterator<br>
+MCSection::iterator<br>
MCSection::getSubsectionInsertionPoint(unsigned Subsection) {<br>
- if (Subsection == 0 && Data.SubsectionFragmentMap.empty())<br>
+ if (Subsection == 0 && SubsectionFragmentMap.empty())<br>
return end();<br>
<br>
SmallVectorImpl<std::pair<unsigned, MCFragment *>>::iterator MI =<br>
- std::lower_bound(Data.SubsectionFragmentMap.begin(),<br>
- Data.SubsectionFragmentMap.end(),<br>
+ std::lower_bound(SubsectionFragmentMap.begin(),<br>
+ SubsectionFragmentMap.end(),<br>
std::make_pair(Subsection, (MCFragment *)nullptr));<br>
bool ExactMatch = false;<br>
- if (MI != Data.SubsectionFragmentMap.end()) {<br>
+ if (MI != SubsectionFragmentMap.end()) {<br>
ExactMatch = MI->first == Subsection;<br>
if (ExactMatch)<br>
++MI;<br>
}<br>
- MCSectionData::iterator IP;<br>
- if (MI == Data.SubsectionFragmentMap.end())<br>
+ iterator IP;<br>
+ if (MI == SubsectionFragmentMap.end())<br>
IP = end();<br>
else<br>
IP = MI->second;<br>
@@ -76,7 +76,7 @@ MCSection::getSubsectionInsertionPoint(u<br>
// The GNU as documentation claims that subsections have an alignment of 4,<br>
// although this appears not to be the case.<br>
MCFragment *F = new MCDataFragment();<br>
- Data.SubsectionFragmentMap.insert(MI, std::make_pair(Subsection, F));<br>
+ SubsectionFragmentMap.insert(MI, std::make_pair(Subsection, F));<br>
getFragmentList().insert(IP, F);<br>
F->setParent(this);<br>
}<br>
@@ -84,24 +84,23 @@ MCSection::getSubsectionInsertionPoint(u<br>
return IP;<br>
}<br>
<br>
-MCSectionData::iterator MCSection::begin() { return Data.begin(); }<br>
+void MCSection::dump() {<br>
+ raw_ostream &OS = llvm::errs();<br>
<br>
-MCSectionData::iterator MCSection::end() { return Data.end(); }<br>
-<br>
-MCSectionData::reverse_iterator MCSection::rbegin() { return Data.rbegin(); }<br>
-<br>
-MCSectionData::FragmentListType &MCSection::getFragmentList() {<br>
- return Data.getFragmentList();<br>
+ OS << "<MCSection";<br>
+ OS << " Fragments:[\n ";<br>
+ for (auto it = begin(), ie = end(); it != ie; ++it) {<br>
+ if (it != begin())<br>
+ OS << ",\n ";<br>
+ it->dump();<br>
+ }<br>
+ OS << "]>";<br>
}<br>
<br>
-MCSectionData::iterator MCSectionData::begin() { return Fragments.begin(); }<br>
+MCSection::iterator MCSection::begin() { return Fragments.begin(); }<br>
<br>
-MCSectionData::iterator MCSectionData::end() { return Fragments.end(); }<br>
+MCSection::iterator MCSection::end() { return Fragments.end(); }<br>
<br>
-MCSectionData::reverse_iterator MCSectionData::rbegin() {<br>
- return Fragments.rbegin();<br>
-}<br>
+MCSection::reverse_iterator MCSection::rbegin() { return Fragments.rbegin(); }<br>
<br>
-MCSectionData::reverse_iterator MCSectionData::rend() {<br>
- return Fragments.rend();<br>
-}<br>
+MCSection::reverse_iterator MCSection::rend() { return Fragments.rend(); }<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>