[llvm] r238204 - Have getCurrentSectionData return a MCSection.
Rafael Espindola
rafael.espindola at gmail.com
Tue May 26 07:48:12 PDT 2015
Author: rafael
Date: Tue May 26 09:48:11 2015
New Revision: 238204
URL: http://llvm.org/viewvc/llvm-project?rev=238204&view=rev
Log:
Have getCurrentSectionData return a MCSection.
I will fix the name shortly.
Modified:
llvm/trunk/include/llvm/MC/MCObjectStreamer.h
llvm/trunk/lib/MC/MCELFStreamer.cpp
llvm/trunk/lib/MC/MCMachOStreamer.cpp
llvm/trunk/lib/MC/MCObjectStreamer.cpp
Modified: llvm/trunk/include/llvm/MC/MCObjectStreamer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCObjectStreamer.h?rev=238204&r1=238203&r2=238204&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCObjectStreamer.h (original)
+++ llvm/trunk/include/llvm/MC/MCObjectStreamer.h Tue May 26 09:48:11 2015
@@ -36,7 +36,7 @@ class raw_pwrite_stream;
/// implementation.
class MCObjectStreamer : public MCStreamer {
MCAssembler *Assembler;
- MCSectionData *CurSectionData;
+ MCSection *CurSectionData;
MCSectionData::iterator CurInsertionPoint;
bool EmitEHFrame;
bool EmitDebugFrame;
@@ -65,16 +65,14 @@ public:
void EmitCFISections(bool EH, bool Debug) override;
protected:
- MCSectionData *getCurrentSectionData() const {
- return CurSectionData;
- }
+ MCSection *getCurrentSectionData() const { return CurSectionData; }
MCFragment *getCurrentFragment() const;
void insert(MCFragment *F) {
flushPendingLabels(F);
CurSectionData->getFragmentList().insert(CurInsertionPoint, F);
- F->setParent(&CurSectionData->getSection());
+ F->setParent(CurSectionData);
}
/// Get a data fragment to write into, creating a new one if the current
Modified: llvm/trunk/lib/MC/MCELFStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCELFStreamer.cpp?rev=238204&r1=238203&r2=238204&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCELFStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCELFStreamer.cpp Tue May 26 09:48:11 2015
@@ -39,7 +39,7 @@
using namespace llvm;
bool MCELFStreamer::isBundleLocked() const {
- return getCurrentSectionData()->getSection().isBundleLocked();
+ return getCurrentSectionData()->isBundleLocked();
}
MCELFStreamer::~MCELFStreamer() {
@@ -146,9 +146,7 @@ static void setSectionAlignmentForBundli
void MCELFStreamer::ChangeSection(MCSection *Section,
const MCExpr *Subsection) {
- MCSectionData *CurSectionData = getCurrentSectionData();
- MCSection *CurSection =
- CurSectionData ? &CurSectionData->getSection() : nullptr;
+ MCSection *CurSection = getCurrentSectionData();
if (CurSection && isBundleLocked())
report_fatal_error("Unterminated .bundle_lock when changing a section");
@@ -203,7 +201,7 @@ bool MCELFStreamer::EmitSymbolAttribute(
// important for matching the string table that 'as' generates.
IndirectSymbolData ISD;
ISD.Symbol = Symbol;
- ISD.Section = &getCurrentSectionData()->getSection();
+ ISD.Section = getCurrentSectionData();
getAssembler().getIndirectSymbols().push_back(ISD);
return true;
}
@@ -508,8 +506,7 @@ void MCELFStreamer::EmitInstToData(const
MCDataFragment *DF;
if (Assembler.isBundlingEnabled()) {
- MCSectionData *SD = getCurrentSectionData();
- MCSection &Sec = SD->getSection();
+ MCSection &Sec = *getCurrentSectionData();
if (Assembler.getRelaxAll() && isBundleLocked())
// If the -mc-relax-all flag is used and we are bundle-locked, we re-use
// the current bundle group.
@@ -577,8 +574,7 @@ void MCELFStreamer::EmitBundleAlignMode(
}
void MCELFStreamer::EmitBundleLock(bool AlignToEnd) {
- MCSectionData *SD = getCurrentSectionData();
- MCSection &Sec = SD->getSection();
+ MCSection &Sec = *getCurrentSectionData();
// Sanity checks
//
@@ -599,8 +595,7 @@ void MCELFStreamer::EmitBundleLock(bool
}
void MCELFStreamer::EmitBundleUnlock() {
- MCSectionData *SD = getCurrentSectionData();
- MCSection &Sec = SD->getSection();
+ MCSection &Sec = *getCurrentSectionData();
// Sanity checks
if (!getAssembler().isBundlingEnabled())
@@ -659,9 +654,7 @@ void MCELFStreamer::Flush() {
void MCELFStreamer::FinishImpl() {
// Ensure the last section gets aligned if necessary.
- MCSectionData *CurSectionData = getCurrentSectionData();
- MCSection *CurSection =
- CurSectionData ? &CurSectionData->getSection() : nullptr;
+ MCSection *CurSection = getCurrentSectionData();
setSectionAlignmentForBundling(getAssembler(), CurSection);
EmitFrames(nullptr);
Modified: llvm/trunk/lib/MC/MCMachOStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachOStreamer.cpp?rev=238204&r1=238203&r2=238204&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCMachOStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCMachOStreamer.cpp Tue May 26 09:48:11 2015
@@ -287,7 +287,7 @@ bool MCMachOStreamer::EmitSymbolAttribut
// important for matching the string table that 'as' generates.
IndirectSymbolData ISD;
ISD.Symbol = Symbol;
- ISD.Section = &getCurrentSectionData()->getSection();
+ ISD.Section = getCurrentSectionData();
getAssembler().getIndirectSymbols().push_back(ISD);
return true;
}
Modified: llvm/trunk/lib/MC/MCObjectStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCObjectStreamer.cpp?rev=238204&r1=238203&r2=238204&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCObjectStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCObjectStreamer.cpp Tue May 26 09:48:11 2015
@@ -43,7 +43,7 @@ void MCObjectStreamer::flushPendingLabel
if (!F) {
F = new MCDataFragment();
CurSectionData->getFragmentList().insert(CurInsertionPoint, F);
- F->setParent(&CurSectionData->getSection());
+ F->setParent(CurSectionData);
}
for (MCSymbolData *SD : PendingLabels) {
SD->setFragment(F);
@@ -212,7 +212,8 @@ bool MCObjectStreamer::changeSectionImpl
flushPendingLabels(nullptr);
bool Created;
- CurSectionData = &getAssembler().getOrCreateSectionData(*Section, &Created);
+ getAssembler().getOrCreateSectionData(*Section, &Created);
+ CurSectionData = Section;
int64_t IntSubsection = 0;
if (Subsection &&
@@ -221,7 +222,8 @@ bool MCObjectStreamer::changeSectionImpl
if (IntSubsection < 0 || IntSubsection > 8192)
report_fatal_error("Subsection number out of range");
CurInsertionPoint =
- CurSectionData->getSubsectionInsertionPoint(unsigned(IntSubsection));
+ CurSectionData->getSectionData().getSubsectionInsertionPoint(
+ unsigned(IntSubsection));
return Created;
}
@@ -238,8 +240,8 @@ void MCObjectStreamer::EmitInstruction(c
const MCSubtargetInfo &STI) {
MCStreamer::EmitInstruction(Inst, STI);
- MCSectionData *SD = getCurrentSectionData();
- SD->getSection().setHasInstructions(true);
+ MCSection *Sec = getCurrentSectionData();
+ Sec->setHasInstructions(true);
// Now that a machine instruction has been assembled into this section, make
// a line entry for any .loc directive that has been seen.
@@ -258,7 +260,7 @@ void MCObjectStreamer::EmitInstruction(c
// group. We want to emit all such instructions into the same data
// fragment.
if (Assembler.getRelaxAll() ||
- (Assembler.isBundlingEnabled() && SD->getSection().isBundleLocked())) {
+ (Assembler.isBundlingEnabled() && Sec->isBundleLocked())) {
MCInst Relaxed;
getAssembler().getBackend().relaxInstruction(Inst, Relaxed);
while (getAssembler().getBackend().mayNeedRelaxation(Relaxed))
More information about the llvm-commits
mailing list