diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-25 18:34:26 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-05-25 18:34:26 +0000 |
commit | cd62518369a8a711b26f6bcb85d727b5e386b2f1 (patch) | |
tree | 6f1442ec08d66b816e5a62ff13c74b9b76087cde /llvm/lib/MC | |
parent | 0be4fa761f21505099bf904652b3e061b3ce732f (diff) | |
download | bcm5719-llvm-cd62518369a8a711b26f6bcb85d727b5e386b2f1.tar.gz bcm5719-llvm-cd62518369a8a711b26f6bcb85d727b5e386b2f1.zip |
Move HasInstructions to MCSection.
llvm-svn: 238150
Diffstat (limited to 'llvm/lib/MC')
-rw-r--r-- | llvm/lib/MC/MCAssembler.cpp | 2 | ||||
-rw-r--r-- | llvm/lib/MC/MCELFStreamer.cpp | 13 | ||||
-rw-r--r-- | llvm/lib/MC/MCObjectStreamer.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 2 |
4 files changed, 15 insertions, 8 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index a3c7c70321c..d7712f7fc98 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -293,7 +293,7 @@ MCEncodedFragmentWithFixups::~MCEncodedFragmentWithFixups() { MCSectionData::MCSectionData() : Section(nullptr) {} MCSectionData::MCSectionData(MCSection &Section, MCAssembler *A) - : Section(&Section), HasInstructions(false) { + : Section(&Section) { if (A) A->getSectionList().push_back(this); } diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp index 0e4d637c8ce..23546cc085d 100644 --- a/llvm/lib/MC/MCELFStreamer.cpp +++ b/llvm/lib/MC/MCELFStreamer.cpp @@ -137,11 +137,14 @@ void MCELFStreamer::EmitAssemblerFlag(MCAssemblerFlag Flag) { // If bundle aligment is used and there are any instructions in the section, it // needs to be aligned to at least the bundle size. -static void setSectionAlignmentForBundling( - const MCAssembler &Assembler, MCSectionData *Section) { - if (Assembler.isBundlingEnabled() && Section && Section->hasInstructions() && - Section->getSection().getAlignment() < Assembler.getBundleAlignSize()) - Section->getSection().setAlignment(Assembler.getBundleAlignSize()); +static void setSectionAlignmentForBundling(const MCAssembler &Assembler, + MCSectionData *SD) { + if (!SD) + return; + MCSection &Section = SD->getSection(); + if (Assembler.isBundlingEnabled() && Section.hasInstructions() && + Section.getAlignment() < Assembler.getBundleAlignSize()) + Section.setAlignment(Assembler.getBundleAlignSize()); } void MCELFStreamer::ChangeSection(MCSection *Section, diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp index b244c3a679c..8584a79a8d1 100644 --- a/llvm/lib/MC/MCObjectStreamer.cpp +++ b/llvm/lib/MC/MCObjectStreamer.cpp @@ -230,12 +230,16 @@ void MCObjectStreamer::EmitAssignment(MCSymbol *Symbol, const MCExpr *Value) { MCStreamer::EmitAssignment(Symbol, Value); } +bool MCObjectStreamer::mayHaveInstructions(MCSection &Sec) const { + return Sec.hasInstructions(); +} + void MCObjectStreamer::EmitInstruction(const MCInst &Inst, const MCSubtargetInfo &STI) { MCStreamer::EmitInstruction(Inst, STI); MCSectionData *SD = getCurrentSectionData(); - SD->setHasInstructions(true); + SD->getSection().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. diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index 45096d428b7..79de0f9a936 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/lib/MC/MachObjectWriter.cpp @@ -225,7 +225,7 @@ void MachObjectWriter::WriteSection(const MCAssembler &Asm, Write32(FileOffset); unsigned Flags = Section.getTypeAndAttributes(); - if (SD.hasInstructions()) + if (Section.hasInstructions()) Flags |= MachO::S_ATTR_SOME_INSTRUCTIONS; assert(isPowerOf2_32(Section.getAlignment()) && "Invalid alignment!"); |