[llvm] r199951 - Remove duplicated info on what .text, .data and .bss look like.
Rafael Espindola
rafael.espindola at gmail.com
Thu Jan 23 14:49:25 PST 2014
Author: rafael
Date: Thu Jan 23 16:49:25 2014
New Revision: 199951
URL: http://llvm.org/viewvc/llvm-project?rev=199951&view=rev
Log:
Remove duplicated info on what .text, .data and .bss look like.
Modified:
llvm/trunk/include/llvm/MC/MCELFStreamer.h
llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
llvm/trunk/lib/MC/MCELFStreamer.cpp
llvm/trunk/lib/MC/MCMachOStreamer.cpp
llvm/trunk/lib/MC/WinCOFFStreamer.cpp
Modified: llvm/trunk/include/llvm/MC/MCELFStreamer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCELFStreamer.h?rev=199951&r1=199950&r2=199951&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCELFStreamer.h (original)
+++ llvm/trunk/include/llvm/MC/MCELFStreamer.h Thu Jan 23 16:49:25 2014
@@ -108,9 +108,6 @@ private:
SmallPtrSet<MCSymbol *, 16> BindingExplicitlySet;
-
- void SetSection(StringRef Section, unsigned Type, unsigned Flags,
- SectionKind Kind);
void SetSectionData();
void SetSectionText();
void SetSectionBss();
Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=199951&r1=199950&r2=199951&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)
+++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Thu Jan 23 16:49:25 2014
@@ -283,7 +283,6 @@ bool LLVMTargetMachine::addPassesToEmitM
*MAB, Out, MCE,
hasMCRelaxAll(),
hasMCNoExecStack()));
- AsmStreamer.get()->InitSections();
// Create the AsmPrinter, which takes ownership of AsmStreamer if successful.
FunctionPass *Printer = getTarget().createAsmPrinter(*this, *AsmStreamer);
Modified: llvm/trunk/lib/MC/MCELFStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCELFStreamer.cpp?rev=199951&r1=199950&r2=199951&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCELFStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCELFStreamer.cpp Thu Jan 23 16:49:25 2014
@@ -22,6 +22,7 @@
#include "llvm/MC/MCELFSymbolFlags.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
+#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionELF.h"
@@ -34,33 +35,18 @@
using namespace llvm;
-
-inline void MCELFStreamer::SetSection(StringRef Section, unsigned Type,
- unsigned Flags, SectionKind Kind) {
- SwitchSection(getContext().getELFSection(Section, Type, Flags, Kind));
-}
-
inline void MCELFStreamer::SetSectionData() {
- SetSection(".data",
- ELF::SHT_PROGBITS,
- ELF::SHF_WRITE | ELF::SHF_ALLOC,
- SectionKind::getDataRel());
+ SwitchSection(getContext().getObjectFileInfo()->getDataSection());
EmitCodeAlignment(4, 0);
}
inline void MCELFStreamer::SetSectionText() {
- SetSection(".text",
- ELF::SHT_PROGBITS,
- ELF::SHF_EXECINSTR | ELF::SHF_ALLOC,
- SectionKind::getText());
+ SwitchSection(getContext().getObjectFileInfo()->getTextSection());
EmitCodeAlignment(4, 0);
}
inline void MCELFStreamer::SetSectionBss() {
- SetSection(".bss",
- ELF::SHT_NOBITS,
- ELF::SHF_WRITE | ELF::SHF_ALLOC,
- SectionKind::getBSS());
+ SwitchSection(getContext().getObjectFileInfo()->getBSSSection());
EmitCodeAlignment(4, 0);
}
Modified: llvm/trunk/lib/MC/MCMachOStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCMachOStreamer.cpp?rev=199951&r1=199950&r2=199951&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCMachOStreamer.cpp (original)
+++ llvm/trunk/lib/MC/MCMachOStreamer.cpp Thu Jan 23 16:49:25 2014
@@ -16,6 +16,7 @@
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCInst.h"
#include "llvm/MC/MCMachOSymbolFlags.h"
+#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionMachO.h"
@@ -99,10 +100,7 @@ void MCMachOStreamer::InitSections() {
}
void MCMachOStreamer::InitToTextSection() {
- SwitchSection(getContext().getMachOSection(
- "__TEXT", "__text",
- MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS, 0,
- SectionKind::getText()));
+ SwitchSection(getContext().getObjectFileInfo()->getTextSection());
}
void MCMachOStreamer::EmitEHSymAttributes(const MCSymbol *Symbol,
@@ -335,9 +333,7 @@ void MCMachOStreamer::EmitCommonSymbol(M
void MCMachOStreamer::EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,
unsigned ByteAlignment) {
// '.lcomm' is equivalent to '.zerofill'.
- return EmitZerofill(getContext().getMachOSection("__DATA", "__bss",
- MCSectionMachO::S_ZEROFILL,
- 0, SectionKind::getBSS()),
+ return EmitZerofill(getContext().getObjectFileInfo()->getDataBSSSection(),
Symbol, Size, ByteAlignment);
}
Modified: llvm/trunk/lib/MC/WinCOFFStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFStreamer.cpp?rev=199951&r1=199950&r2=199951&view=diff
==============================================================================
--- llvm/trunk/lib/MC/WinCOFFStreamer.cpp (original)
+++ llvm/trunk/lib/MC/WinCOFFStreamer.cpp Thu Jan 23 16:49:25 2014
@@ -20,6 +20,7 @@
#include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
+#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionCOFF.h"
@@ -95,25 +96,16 @@ private:
DF->getContents().append(Code.begin(), Code.end());
}
- const MCSectionCOFF *getSectionText() {
- return getContext().getCOFFSection(
- ".text", COFF::IMAGE_SCN_CNT_CODE | COFF::IMAGE_SCN_MEM_EXECUTE |
- COFF::IMAGE_SCN_MEM_READ,
- SectionKind::getText());
- }
-
- const MCSectionCOFF *getSectionData() {
- return getContext().getCOFFSection(
- ".data", COFF::IMAGE_SCN_CNT_INITIALIZED_DATA |
- COFF::IMAGE_SCN_MEM_READ | COFF::IMAGE_SCN_MEM_WRITE,
- SectionKind::getDataRel());
- }
-
- const MCSectionCOFF *getSectionBSS() {
- return getContext().getCOFFSection(
- ".bss", COFF::IMAGE_SCN_CNT_UNINITIALIZED_DATA |
- COFF::IMAGE_SCN_MEM_READ | COFF::IMAGE_SCN_MEM_WRITE,
- SectionKind::getBSS());
+ const MCSection *getSectionText() {
+ return getContext().getObjectFileInfo()->getTextSection();
+ }
+
+ const MCSection *getSectionData() {
+ return getContext().getObjectFileInfo()->getDataSection();
+ }
+
+ const MCSection *getSectionBSS() {
+ return getContext().getObjectFileInfo()->getBSSSection();
}
void SetSectionText() {
@@ -141,7 +133,7 @@ void WinCOFFStreamer::AddCommonSymbol(MC
unsigned ByteAlignment, bool External) {
assert(!Symbol->isInSection() && "Symbol must not already have a section!");
- const MCSectionCOFF *Section = getSectionBSS();
+ const MCSection *Section = getSectionBSS();
MCSectionData &SectionData = getAssembler().getOrCreateSectionData(*Section);
if (SectionData.getAlignment() < ByteAlignment)
SectionData.setAlignment(ByteAlignment);
More information about the llvm-commits
mailing list