aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Target/TargetLoweringObjectFile.h17
-rw-r--r--lib/Target/ARM/ARMTargetObjectFile.h8
-rw-r--r--lib/Target/TargetLoweringObjectFile.cpp260
-rw-r--r--lib/Target/XCore/XCoreTargetObjectFile.cpp17
4 files changed, 137 insertions, 165 deletions
diff --git a/include/llvm/Target/TargetLoweringObjectFile.h b/include/llvm/Target/TargetLoweringObjectFile.h
index e9533c4..f8d3f6f 100644
--- a/include/llvm/Target/TargetLoweringObjectFile.h
+++ b/include/llvm/Target/TargetLoweringObjectFile.h
@@ -207,9 +207,8 @@ protected:
const MCSection *MergeableConst16Section;
protected:
- const MCSection *getOrCreateSection(const char *Name,
- bool isDirective,
- SectionKind K) const;
+ const MCSection *getELFSection(const char *Name, bool isDirective,
+ SectionKind Kind) const;
public:
/// ELF Constructor - AtIsCommentChar is true if the CommentCharacter from TAI
/// is "@".
@@ -250,10 +249,6 @@ class TargetLoweringObjectFileMachO : public TargetLoweringObjectFile {
const MCSection *FourByteConstantSection;
const MCSection *EightByteConstantSection;
const MCSection *SixteenByteConstantSection;
-protected:
- const MCSection *getOrCreateSection(const char *Name,
- bool isDirective,
- SectionKind K) const;
public:
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
@@ -277,16 +272,12 @@ public:
/// getMachOSection - Return the MCSection for the specified mach-o section.
/// FIXME: Switch this to a semantic view eventually.
const MCSection *getMachOSection(const char *Name, bool isDirective,
- SectionKind K);
+ SectionKind K) const;
};
class TargetLoweringObjectFileCOFF : public TargetLoweringObjectFile {
-protected:
- const MCSection *getOrCreateSection(const char *Name,
- bool isDirective,
- SectionKind K) const;
public:
virtual void Initialize(MCContext &Ctx, const TargetMachine &TM);
@@ -304,7 +295,7 @@ public:
/// getCOFFSection - Return the MCSection for the specified COFF section.
/// FIXME: Switch this to a semantic view eventually.
const MCSection *getCOFFSection(const char *Name, bool isDirective,
- SectionKind K);
+ SectionKind K) const;
};
} // end namespace llvm
diff --git a/lib/Target/ARM/ARMTargetObjectFile.h b/lib/Target/ARM/ARMTargetObjectFile.h
index ec63673..55f13b1 100644
--- a/lib/Target/ARM/ARMTargetObjectFile.h
+++ b/lib/Target/ARM/ARMTargetObjectFile.h
@@ -25,11 +25,11 @@ namespace llvm {
// That will allow not treating these as "directives".
if (TM.getSubtarget<ARMSubtarget>().isAAPCS_ABI()) {
StaticCtorSection =
- getOrCreateSection("\t.section .init_array,\"aw\",%init_array", true,
- SectionKind::getDataRel());
+ getELFSection("\t.section .init_array,\"aw\",%init_array", true,
+ SectionKind::getDataRel());
StaticDtorSection =
- getOrCreateSection("\t.section .fini_array,\"aw\",%fini_array", true,
- SectionKind::getDataRel());
+ getELFSection("\t.section .fini_array,\"aw\",%fini_array", true,
+ SectionKind::getDataRel());
}
}
};
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp
index e983285..8a60086 100644
--- a/lib/Target/TargetLoweringObjectFile.cpp
+++ b/lib/Target/TargetLoweringObjectFile.cpp
@@ -280,7 +280,7 @@ TargetLoweringObjectFile::getSectionForConstant(SectionKind Kind) const {
//===----------------------------------------------------------------------===//
const MCSection *TargetLoweringObjectFileELF::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getELFSection(const char *Name, bool isDirective, SectionKind Kind) const {
if (MCSection *S = getContext().GetSection(Name))
return S;
return MCSection::Create(Name, isDirective, Kind, getContext());
@@ -290,47 +290,47 @@ void TargetLoweringObjectFileELF::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFile::Initialize(Ctx, TM);
if (!HasCrazyBSS)
- BSSSection = getOrCreateSection("\t.bss", true, SectionKind::getBSS());
+ BSSSection = getELFSection("\t.bss", true, SectionKind::getBSS());
else
// PPC/Linux doesn't support the .bss directive, it needs .section .bss.
// FIXME: Does .section .bss work everywhere??
// FIXME2: this should just be handle by the section printer. We should get
// away from syntactic view of the sections and MCSection should just be a
// semantic view.
- BSSSection = getOrCreateSection("\t.bss", false, SectionKind::getBSS());
+ BSSSection = getELFSection("\t.bss", false, SectionKind::getBSS());
- TextSection = getOrCreateSection("\t.text", true, SectionKind::getText());
- DataSection = getOrCreateSection("\t.data", true, SectionKind::getDataRel());
+ TextSection = getELFSection("\t.text", true, SectionKind::getText());
+ DataSection = getELFSection("\t.data", true, SectionKind::getDataRel());
ReadOnlySection =
- getOrCreateSection("\t.rodata", false, SectionKind::getReadOnly());
+ getELFSection("\t.rodata", false, SectionKind::getReadOnly());
TLSDataSection =
- getOrCreateSection("\t.tdata", false, SectionKind::getThreadData());
+ getELFSection("\t.tdata", false, SectionKind::getThreadData());
- TLSBSSSection = getOrCreateSection("\t.tbss", false,
+ TLSBSSSection = getELFSection("\t.tbss", false,
SectionKind::getThreadBSS());
- DataRelSection = getOrCreateSection("\t.data.rel", false,
+ DataRelSection = getELFSection("\t.data.rel", false,
SectionKind::getDataRel());
- DataRelLocalSection = getOrCreateSection("\t.data.rel.local", false,
+ DataRelLocalSection = getELFSection("\t.data.rel.local", false,
SectionKind::getDataRelLocal());
- DataRelROSection = getOrCreateSection("\t.data.rel.ro", false,
+ DataRelROSection = getELFSection("\t.data.rel.ro", false,
SectionKind::getReadOnlyWithRel());
DataRelROLocalSection =
- getOrCreateSection("\t.data.rel.ro.local", false,
+ getELFSection("\t.data.rel.ro.local", false,
SectionKind::getReadOnlyWithRelLocal());
- MergeableConst4Section = getOrCreateSection(".rodata.cst4", false,
+ MergeableConst4Section = getELFSection(".rodata.cst4", false,
SectionKind::getMergeableConst4());
- MergeableConst8Section = getOrCreateSection(".rodata.cst8", false,
+ MergeableConst8Section = getELFSection(".rodata.cst8", false,
SectionKind::getMergeableConst8());
- MergeableConst16Section = getOrCreateSection(".rodata.cst16", false,
+ MergeableConst16Section = getELFSection(".rodata.cst16", false,
SectionKind::getMergeableConst16());
StaticCtorSection =
- getOrCreateSection(".ctors", false, SectionKind::getDataRel());
+ getELFSection(".ctors", false, SectionKind::getDataRel());
StaticDtorSection =
- getOrCreateSection(".dtors", false, SectionKind::getDataRel());
+ getELFSection(".dtors", false, SectionKind::getDataRel());
// Exception Handling Sections.
@@ -339,33 +339,33 @@ void TargetLoweringObjectFileELF::Initialize(MCContext &Ctx,
// runtime hit for C++ apps. Either the contents of the LSDA need to be
// adjusted or this should be a data section.
LSDASection =
- getOrCreateSection(".gcc_except_table", false, SectionKind::getReadOnly());
+ getELFSection(".gcc_except_table", false, SectionKind::getReadOnly());
EHFrameSection =
- getOrCreateSection(".eh_frame", false, SectionKind::getDataRel());
+ getELFSection(".eh_frame", false, SectionKind::getDataRel());
// Debug Info Sections.
DwarfAbbrevSection =
- getOrCreateSection(".debug_abbrev", false, SectionKind::getMetadata());
+ getELFSection(".debug_abbrev", false, SectionKind::getMetadata());
DwarfInfoSection =
- getOrCreateSection(".debug_info", false, SectionKind::getMetadata());
+ getELFSection(".debug_info", false, SectionKind::getMetadata());
DwarfLineSection =
- getOrCreateSection(".debug_line", false, SectionKind::getMetadata());
+ getELFSection(".debug_line", false, SectionKind::getMetadata());
DwarfFrameSection =
- getOrCreateSection(".debug_frame", false, SectionKind::getMetadata());
+ getELFSection(".debug_frame", false, SectionKind::getMetadata());
DwarfPubNamesSection =
- getOrCreateSection(".debug_pubnames", false, SectionKind::getMetadata());
+ getELFSection(".debug_pubnames", false, SectionKind::getMetadata());
DwarfPubTypesSection =
- getOrCreateSection(".debug_pubtypes", false, SectionKind::getMetadata());
+ getELFSection(".debug_pubtypes", false, SectionKind::getMetadata());
DwarfStrSection =
- getOrCreateSection(".debug_str", false, SectionKind::getMetadata());
+ getELFSection(".debug_str", false, SectionKind::getMetadata());
DwarfLocSection =
- getOrCreateSection(".debug_loc", false, SectionKind::getMetadata());
+ getELFSection(".debug_loc", false, SectionKind::getMetadata());
DwarfARangesSection =
- getOrCreateSection(".debug_aranges", false, SectionKind::getMetadata());
+ getELFSection(".debug_aranges", false, SectionKind::getMetadata());
DwarfRangesSection =
- getOrCreateSection(".debug_ranges", false, SectionKind::getMetadata());
+ getELFSection(".debug_ranges", false, SectionKind::getMetadata());
DwarfMacroInfoSection =
- getOrCreateSection(".debug_macinfo", false, SectionKind::getMetadata());
+ getELFSection(".debug_macinfo", false, SectionKind::getMetadata());
}
@@ -401,7 +401,7 @@ getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
// Infer section flags from the section name if we can.
Kind = getELFKindForNamedSection(GV->getSection().c_str(), Kind);
- return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+ return getELFSection(GV->getSection().c_str(), false, Kind);
}
@@ -497,7 +497,7 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
if (GV->isWeakForLinker()) {
const char *Prefix = getSectionPrefixForUniqueGlobal(Kind);
std::string Name = Mang->makeNameProper(GV->getNameStr());
- return getOrCreateSection((Prefix+Name).c_str(), false, Kind);
+ return getELFSection((Prefix+Name).c_str(), false, Kind);
}
if (Kind.isText()) return TextSection;
@@ -522,7 +522,7 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
std::string Name = SizeSpec + utostr(Align);
- return getOrCreateSection(Name.c_str(), false, Kind);
+ return getELFSection(Name.c_str(), false, Kind);
}
if (Kind.isMergeableConst()) {
@@ -574,36 +574,29 @@ getSectionForConstant(SectionKind Kind) const {
// MachO
//===----------------------------------------------------------------------===//
+
const MCSection *TargetLoweringObjectFileMachO::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getMachOSection(const char *Name, bool isDirective, SectionKind Kind) const {
if (MCSection *S = getContext().GetSection(Name))
return S;
return MCSection::Create(Name, isDirective, Kind, getContext());
}
-const MCSection *TargetLoweringObjectFileMachO::
-getMachOSection(const char *Name, bool isDirective, SectionKind K) {
- // FOR NOW, Just forward.
- return getOrCreateSection(Name, isDirective, K);
-}
-
void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFile::Initialize(Ctx, TM);
- TextSection = getOrCreateSection("\t.text", true,
- SectionKind::getText());
- DataSection = getOrCreateSection("\t.data", true,
- SectionKind::getDataRel());
-
- CStringSection = getOrCreateSection("\t.cstring", true,
- SectionKind::getMergeable1ByteCString());
- UStringSection = getOrCreateSection("__TEXT,__ustring", false,
- SectionKind::getMergeable2ByteCString());
- FourByteConstantSection = getOrCreateSection("\t.literal4\n", true,
- SectionKind::getMergeableConst4());
- EightByteConstantSection = getOrCreateSection("\t.literal8\n", true,
+ TextSection = getMachOSection("\t.text", true, SectionKind::getText());
+ DataSection = getMachOSection("\t.data", true, SectionKind::getDataRel());
+
+ CStringSection = getMachOSection("\t.cstring", true,
+ SectionKind::getMergeable1ByteCString());
+ UStringSection = getMachOSection("__TEXT,__ustring", false,
+ SectionKind::getMergeable2ByteCString());
+ FourByteConstantSection = getMachOSection("\t.literal4\n", true,
+ SectionKind::getMergeableConst4());
+ EightByteConstantSection = getMachOSection("\t.literal8\n", true,
SectionKind::getMergeableConst8());
// ld_classic doesn't support .literal16 in 32-bit mode, and ld64 falls back
@@ -611,93 +604,90 @@ void TargetLoweringObjectFileMachO::Initialize(MCContext &Ctx,
if (TM.getRelocationModel() != Reloc::Static &&
TM.getTargetData()->getPointerSize() == 32)
SixteenByteConstantSection =
- getOrCreateSection("\t.literal16\n", true,
- SectionKind::getMergeableConst16());
+ getMachOSection("\t.literal16\n", true,
+ SectionKind::getMergeableConst16());
else
SixteenByteConstantSection = 0;
- ReadOnlySection = getOrCreateSection("\t.const", true,
- SectionKind::getReadOnly());
+ ReadOnlySection = getMachOSection("\t.const", true,
+ SectionKind::getReadOnly());
TextCoalSection =
- getOrCreateSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions",
- false, SectionKind::getText());
- ConstTextCoalSection = getOrCreateSection("\t__TEXT,__const_coal,coalesced",
- false,
- SectionKind::getText());
- ConstDataCoalSection = getOrCreateSection("\t__DATA,__const_coal,coalesced",
- false,
- SectionKind::getText());
- ConstDataSection = getOrCreateSection("\t.const_data", true,
- SectionKind::getReadOnlyWithRel());
- DataCoalSection = getOrCreateSection("\t__DATA,__datacoal_nt,coalesced",
- false,
- SectionKind::getDataRel());
+ getMachOSection("\t__TEXT,__textcoal_nt,coalesced,pure_instructions",
+ false, SectionKind::getText());
+ ConstTextCoalSection = getMachOSection("\t__TEXT,__const_coal,coalesced",
+ false, SectionKind::getText());
+ ConstDataCoalSection = getMachOSection("\t__DATA,__const_coal,coalesced",
+ false, SectionKind::getText());
+ ConstDataSection = getMachOSection("\t.const_data", true,
+ SectionKind::getReadOnlyWithRel());
+ DataCoalSection = getMachOSection("\t__DATA,__datacoal_nt,coalesced",
+ false, SectionKind::getDataRel());
if (TM.getRelocationModel() == Reloc::Static) {
StaticCtorSection =
- getOrCreateSection(".constructor", true, SectionKind::getDataRel());
+ getMachOSection(".constructor", true, SectionKind::getDataRel());
StaticDtorSection =
- getOrCreateSection(".destructor", true, SectionKind::getDataRel());
+ getMachOSection(".destructor", true, SectionKind::getDataRel());
} else {
StaticCtorSection =
- getOrCreateSection(".mod_init_func", true, SectionKind::getDataRel());
+ getMachOSection(".mod_init_func", true, SectionKind::getDataRel());
StaticDtorSection =
- getOrCreateSection(".mod_term_func", true, SectionKind::getDataRel());
+ getMachOSection(".mod_term_func", true, SectionKind::getDataRel());
}
// Exception Handling.
- LSDASection = getOrCreateSection("__DATA,__gcc_except_tab", false,
- SectionKind::getDataRel());
+ LSDASection = getMachOSection("__DATA,__gcc_except_tab", false,
+ SectionKind::getDataRel());
EHFrameSection =
- getOrCreateSection("__TEXT,__eh_frame,coalesced,no_toc+strip_static_syms"
- "+live_support", false, SectionKind::getReadOnly());
+ getMachOSection("__TEXT,__eh_frame,coalesced,no_toc+strip_static_syms"
+ "+live_support", false, SectionKind::getReadOnly());
// Debug Information.
// FIXME: Don't use 'directive' syntax: need flags for debug/regular??
// FIXME: Need __DWARF segment.
DwarfAbbrevSection =
- getOrCreateSection(".section __DWARF,__debug_abbrev,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_abbrev,regular,debug", true,
+ SectionKind::getMetadata());
DwarfInfoSection =
- getOrCreateSection(".section __DWARF,__debug_info,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_info,regular,debug", true,
+ SectionKind::getMetadata());
DwarfLineSection =
- getOrCreateSection(".section __DWARF,__debug_line,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_line,regular,debug", true,
+ SectionKind::getMetadata());
DwarfFrameSection =
- getOrCreateSection(".section __DWARF,__debug_frame,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_frame,regular,debug", true,
+ SectionKind::getMetadata());
DwarfPubNamesSection =
- getOrCreateSection(".section __DWARF,__debug_pubnames,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_pubnames,regular,debug", true,
+ SectionKind::getMetadata());
DwarfPubTypesSection =
- getOrCreateSection(".section __DWARF,__debug_pubtypes,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_pubtypes,regular,debug", true,
+ SectionKind::getMetadata());
DwarfStrSection =
- getOrCreateSection(".section __DWARF,__debug_str,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_str,regular,debug", true,
+ SectionKind::getMetadata());
DwarfLocSection =
- getOrCreateSection(".section __DWARF,__debug_loc,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_loc,regular,debug", true,
+ SectionKind::getMetadata());
DwarfARangesSection =
- getOrCreateSection(".section __DWARF,__debug_aranges,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_aranges,regular,debug", true,
+ SectionKind::getMetadata());
DwarfRangesSection =
- getOrCreateSection(".section __DWARF,__debug_ranges,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_ranges,regular,debug", true,
+ SectionKind::getMetadata());
DwarfMacroInfoSection =
- getOrCreateSection(".section __DWARF,__debug_macinfo,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_macinfo,regular,debug", true,
+ SectionKind::getMetadata());
DwarfDebugInlineSection =
- getOrCreateSection(".section __DWARF,__debug_inlined,regular,debug", true,
- SectionKind::getMetadata());
+ getMachOSection(".section __DWARF,__debug_inlined,regular,debug", true,
+ SectionKind::getMetadata());
}
const MCSection *TargetLoweringObjectFileMachO::
getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
Mangler *Mang, const TargetMachine &TM) const {
- return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+ return getMachOSection(GV->getSection().c_str(), false, Kind);
}
const MCSection *TargetLoweringObjectFileMachO::
@@ -794,72 +784,66 @@ shouldEmitUsedDirectiveFor(const GlobalValue *GV, Mangler *Mang) const {
// COFF
//===----------------------------------------------------------------------===//
+
const MCSection *TargetLoweringObjectFileCOFF::
-getOrCreateSection(const char *Name, bool isDirective, SectionKind Kind) const {
+getCOFFSection(const char *Name, bool isDirective, SectionKind Kind) const {
if (MCSection *S = getContext().GetSection(Name))
return S;
return MCSection::Create(Name, isDirective, Kind, getContext());
}
-const MCSection *TargetLoweringObjectFileCOFF::
-getCOFFSection(const char *Name, bool isDirective, SectionKind K) {
- return getOrCreateSection(Name, isDirective, K);
-}
-
void TargetLoweringObjectFileCOFF::Initialize(MCContext &Ctx,
const TargetMachine &TM) {
TargetLoweringObjectFile::Initialize(Ctx, TM);
- TextSection = getOrCreateSection("\t.text", true,
- SectionKind::getText());
- DataSection = getOrCreateSection("\t.data", true,
- SectionKind::getDataRel());
+ TextSection = getCOFFSection("\t.text", true, SectionKind::getText());
+ DataSection = getCOFFSection("\t.data", true, SectionKind::getDataRel());
StaticCtorSection =
- getOrCreateSection(".ctors", false, SectionKind::getDataRel());
+ getCOFFSection(".ctors", false, SectionKind::getDataRel());
StaticDtorSection =
- getOrCreateSection(".dtors", false, SectionKind::getDataRel());
+ getCOFFSection(".dtors", false, SectionKind::getDataRel());
// Debug info.
// FIXME: Don't use 'directive' mode here.
DwarfAbbrevSection =
- getOrCreateSection("\t.section\t.debug_abbrev,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_abbrev,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfInfoSection =
- getOrCreateSection("\t.section\t.debug_info,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_info,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfLineSection =
- getOrCreateSection("\t.section\t.debug_line,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_line,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfFrameSection =
- getOrCreateSection("\t.section\t.debug_frame,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_frame,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfPubNamesSection =
- getOrCreateSection("\t.section\t.debug_pubnames,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_pubnames,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfPubTypesSection =
- getOrCreateSection("\t.section\t.debug_pubtypes,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_pubtypes,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfStrSection =
- getOrCreateSection("\t.section\t.debug_str,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_str,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfLocSection =
- getOrCreateSection("\t.section\t.debug_loc,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_loc,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfARangesSection =
- getOrCreateSection("\t.section\t.debug_aranges,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_aranges,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfRangesSection =
- getOrCreateSection("\t.section\t.debug_ranges,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_ranges,\"dr\"",
+ true, SectionKind::getMetadata());
DwarfMacroInfoSection =
- getOrCreateSection("\t.section\t.debug_macinfo,\"dr\"",
- true, SectionKind::getMetadata());
+ getCOFFSection("\t.section\t.debug_macinfo,\"dr\"",
+ true, SectionKind::getMetadata());
}
const MCSection *TargetLoweringObjectFileCOFF::
getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind,
Mangler *Mang, const TargetMachine &TM) const {
- return getOrCreateSection(GV->getSection().c_str(), false, Kind);
+ return getCOFFSection(GV->getSection().c_str(), false, Kind);
}
@@ -895,7 +879,7 @@ SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind,
if (GV->isWeakForLinker()) {
const char *Prefix = getCOFFSectionPrefixForUniqueGlobal(Kind);
std::string Name = Mang->makeNameProper(GV->getNameStr());
- return getOrCreateSection((Prefix+Name).c_str(), false, Kind);
+ return getCOFFSection((Prefix+Name).c_str(), false, Kind);
}
if (Kind.isText())
diff --git a/lib/Target/XCore/XCoreTargetObjectFile.cpp b/lib/Target/XCore/XCoreTargetObjectFile.cpp
index 644b024..4e2dca1 100644
--- a/lib/Target/XCore/XCoreTargetObjectFile.cpp
+++ b/lib/Target/XCore/XCoreTargetObjectFile.cpp
@@ -16,12 +16,9 @@ using namespace llvm;
void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
TargetLoweringObjectFileELF::Initialize(Ctx, TM);
- TextSection = getOrCreateSection("\t.text", true,
- SectionKind::getText());
- DataSection = getOrCreateSection("\t.dp.data", false,
- SectionKind::getDataRel());
- BSSSection = getOrCreateSection("\t.dp.bss", false,
- SectionKind::getBSS());
+ TextSection = getELFSection("\t.text", true, SectionKind::getText());
+ DataSection = getELFSection("\t.dp.data", false, SectionKind::getDataRel());
+ BSSSection = getELFSection("\t.dp.bss", false, SectionKind::getBSS());
// TLS globals are lowered in the backend to arrays indexed by the current
// thread id. After lowering they require no special handling by the linker
@@ -31,9 +28,9 @@ void XCoreTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
if (TM.getSubtarget<XCoreSubtarget>().isXS1A())
// FIXME: Why is this writable ("datarel")???
- ReadOnlySection = getOrCreateSection("\t.dp.rodata", false,
- SectionKind::getDataRel());
+ ReadOnlySection = getELFSection("\t.dp.rodata", false,
+ SectionKind::getDataRel());
else
- ReadOnlySection = getOrCreateSection("\t.cp.rodata", false,
- SectionKind::getReadOnly());
+ ReadOnlySection = getELFSection("\t.cp.rodata", false,
+ SectionKind::getReadOnly());
}