mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Get rid of duplicate char*/Section* TextSection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56574 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c25e1ea5e9
commit
d7ca416d6c
@ -92,6 +92,7 @@ namespace llvm {
|
||||
/// CurrentSection - The current section we are emitting to. This is
|
||||
/// controlled and used by the SwitchSection method.
|
||||
std::string CurrentSection;
|
||||
const Section* CurrentSection_;
|
||||
|
||||
/// IsInTextSection - True if the current section we are emitting to is a
|
||||
/// text section.
|
||||
|
@ -131,8 +131,7 @@ namespace llvm {
|
||||
|
||||
/// TextSection - Section directive for standard text.
|
||||
///
|
||||
const char *TextSection; // Defaults to ".text".
|
||||
const Section *TextSection_;
|
||||
const Section *TextSection; // Defaults to ".text".
|
||||
|
||||
/// DataSection - Section directive for standard data.
|
||||
///
|
||||
@ -599,12 +598,9 @@ namespace llvm {
|
||||
|
||||
// Accessors.
|
||||
//
|
||||
const char *getTextSection() const {
|
||||
const Section *getTextSection() const {
|
||||
return TextSection;
|
||||
}
|
||||
const Section *getTextSection_() const {
|
||||
return TextSection_;
|
||||
}
|
||||
const char *getDataSection() const {
|
||||
return DataSection;
|
||||
}
|
||||
|
@ -114,6 +114,7 @@ void AsmPrinter::SwitchToSection(const Section* NS) {
|
||||
|
||||
// FIXME: Make CurrentSection a Section* in the future
|
||||
CurrentSection = NewSection;
|
||||
CurrentSection_ = NS;
|
||||
|
||||
if (!CurrentSection.empty()) {
|
||||
// If section is named we need to switch into it via special '.section'
|
||||
@ -174,7 +175,7 @@ bool AsmPrinter::doFinalization(Module &M) {
|
||||
|
||||
if (TAI->getSetDirective()) {
|
||||
if (!M.alias_empty())
|
||||
SwitchToTextSection(TAI->getTextSection());
|
||||
SwitchToSection(TAI->getTextSection());
|
||||
|
||||
O << '\n';
|
||||
for (Module::const_alias_iterator I = M.alias_begin(), E = M.alias_end();
|
||||
|
@ -1152,7 +1152,7 @@ private:
|
||||
|
||||
/// SectionMap - Provides a unique id per text section.
|
||||
///
|
||||
UniqueVector<std::string> SectionMap;
|
||||
UniqueVector<const Section*> SectionMap;
|
||||
|
||||
/// SectionSourceLines - Tracks line numbers per text section.
|
||||
///
|
||||
@ -2062,7 +2062,7 @@ private:
|
||||
Asm->SwitchToDataSection(TAI->getDwarfRangesSection());
|
||||
EmitLabel("section_ranges", 0);
|
||||
|
||||
Asm->SwitchToTextSection(TAI->getTextSection());
|
||||
Asm->SwitchToSection(TAI->getTextSection());
|
||||
EmitLabel("text_begin", 0);
|
||||
Asm->SwitchToDataSection(TAI->getDataSection());
|
||||
EmitLabel("data_begin", 0);
|
||||
@ -2353,9 +2353,10 @@ private:
|
||||
// Isolate current sections line info.
|
||||
const std::vector<SourceLineInfo> &LineInfos = SectionSourceLines[j];
|
||||
|
||||
if (VerboseAsm)
|
||||
Asm->EOL(std::string("Section ") + SectionMap[j + 1]);
|
||||
else
|
||||
if (VerboseAsm) {
|
||||
const Section* S = SectionMap[j + 1];
|
||||
Asm->EOL(std::string("Section ") + S->getName());
|
||||
} else
|
||||
Asm->EOL();
|
||||
|
||||
// Dwarf assumes we start with first line of first source file.
|
||||
@ -2747,14 +2748,14 @@ public:
|
||||
if (!ShouldEmitDwarf()) return;
|
||||
|
||||
// Standard sections final addresses.
|
||||
Asm->SwitchToTextSection(TAI->getTextSection());
|
||||
Asm->SwitchToSection(TAI->getTextSection());
|
||||
EmitLabel("text_end", 0);
|
||||
Asm->SwitchToDataSection(TAI->getDataSection());
|
||||
EmitLabel("data_end", 0);
|
||||
|
||||
// End text sections.
|
||||
for (unsigned i = 1, N = SectionMap.size(); i <= N; ++i) {
|
||||
Asm->SwitchToTextSection(SectionMap[i].c_str());
|
||||
Asm->SwitchToSection(SectionMap[i]);
|
||||
EmitLabel("section_end", i);
|
||||
}
|
||||
|
||||
@ -2832,7 +2833,7 @@ public:
|
||||
|
||||
if (!LineInfos.empty()) {
|
||||
// Get section line info.
|
||||
unsigned ID = SectionMap.insert(Asm->CurrentSection);
|
||||
unsigned ID = SectionMap.insert(Asm->CurrentSection_);
|
||||
if (SectionSourceLines.size() < ID) SectionSourceLines.resize(ID);
|
||||
std::vector<SourceLineInfo> &SectionLineInfos = SectionSourceLines[ID-1];
|
||||
// Append the function info to section info.
|
||||
|
@ -62,7 +62,7 @@ static void EmitCamlGlobal(const Module &M, raw_ostream &OS, AsmPrinter &AP,
|
||||
|
||||
void OcamlGCMetadataPrinter::beginAssembly(raw_ostream &OS, AsmPrinter &AP,
|
||||
const TargetAsmInfo &TAI) {
|
||||
AP.SwitchToTextSection(TAI.getTextSection());
|
||||
AP.SwitchToSection(TAI.getTextSection());
|
||||
EmitCamlGlobal(getModule(), OS, AP, TAI, "code_begin");
|
||||
|
||||
AP.SwitchToDataSection(TAI.getDataSection());
|
||||
@ -97,7 +97,7 @@ void OcamlGCMetadataPrinter::finishAssembly(raw_ostream &OS, AsmPrinter &AP,
|
||||
AddressAlignLog = 3;
|
||||
}
|
||||
|
||||
AP.SwitchToTextSection(TAI.getTextSection());
|
||||
AP.SwitchToSection(TAI.getTextSection());
|
||||
EmitCamlGlobal(getModule(), OS, AP, TAI, "code_end");
|
||||
|
||||
AP.SwitchToDataSection(TAI.getDataSection());
|
||||
|
@ -82,7 +82,7 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
|
||||
if (isWeak)
|
||||
return TextCoalSection;
|
||||
else
|
||||
return getTextSection_();
|
||||
return getTextSection();
|
||||
case SectionKind::Data:
|
||||
case SectionKind::ThreadData:
|
||||
case SectionKind::BSS:
|
||||
|
@ -27,7 +27,6 @@ using namespace llvm;
|
||||
ELFTargetAsmInfo::ELFTargetAsmInfo(const TargetMachine &TM) {
|
||||
ETM = &TM;
|
||||
|
||||
TextSection_ = getUnnamedSection("\t.text", SectionFlags::Code);
|
||||
DataSection_ = getUnnamedSection("\t.data", SectionFlags::Writeable);
|
||||
BSSSection_ = getUnnamedSection("\t.bss",
|
||||
SectionFlags::Writeable | SectionFlags::BSS);
|
||||
@ -49,7 +48,7 @@ ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
|
||||
case Function::InternalLinkage:
|
||||
case Function::DLLExportLinkage:
|
||||
case Function::ExternalLinkage:
|
||||
return getTextSection_();
|
||||
return getTextSection();
|
||||
case Function::WeakLinkage:
|
||||
case Function::LinkOnceLinkage:
|
||||
std::string Name = UniqueSectionForGlobal(GV, Kind);
|
||||
|
@ -637,7 +637,7 @@ bool PPCLinuxAsmPrinter::doInitialization(Module &M) {
|
||||
// GNU as handles section names wrapped in quotes
|
||||
Mang->setUseQuotes(true);
|
||||
|
||||
SwitchToTextSection(TAI->getTextSection());
|
||||
SwitchToSection(TAI->getTextSection());
|
||||
|
||||
return Result;
|
||||
}
|
||||
@ -864,7 +864,7 @@ bool PPCDarwinAsmPrinter::doInitialization(Module &M) {
|
||||
SwitchToTextSection("\t.section __TEXT,__symbol_stub1,symbol_stubs,"
|
||||
"pure_instructions,16");
|
||||
}
|
||||
SwitchToTextSection(TAI->getTextSection());
|
||||
SwitchToSection(TAI->getTextSection());
|
||||
|
||||
return Result;
|
||||
}
|
||||
|
@ -26,8 +26,7 @@
|
||||
using namespace llvm;
|
||||
|
||||
TargetAsmInfo::TargetAsmInfo() :
|
||||
TextSection("\t.text"),
|
||||
TextSection_(0),
|
||||
TextSection(0),
|
||||
DataSection("\t.data"),
|
||||
DataSection_(0),
|
||||
BSSSection("\t.bss"),
|
||||
@ -126,7 +125,7 @@ TargetAsmInfo::TargetAsmInfo() :
|
||||
DwarfEHFrameSection(".eh_frame"),
|
||||
DwarfExceptionSection(".gcc_except_table"),
|
||||
AsmTransCBE(0) {
|
||||
TextSection_ = getUnnamedSection(TextSection);
|
||||
TextSection = getUnnamedSection("\t.text", SectionFlags::Code);
|
||||
DataSection_ = getUnnamedSection(DataSection);
|
||||
}
|
||||
|
||||
@ -300,7 +299,7 @@ TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
|
||||
return getNamedSection(Name.c_str(), Flags);
|
||||
} else {
|
||||
if (Kind == SectionKind::Text)
|
||||
return getTextSection_();
|
||||
return getTextSection();
|
||||
else if (isBSS(Kind) && getBSSSection_())
|
||||
return getBSSSection_();
|
||||
else if (getReadOnlySection_() && SectionKind::isReadOnly(Kind))
|
||||
|
@ -433,7 +433,7 @@ X86WinTargetAsmInfo::X86WinTargetAsmInfo(const X86TargetMachine &TM):
|
||||
Data64bitsDirective = "\tdq\t";
|
||||
HasDotTypeDotSizeDirective = false;
|
||||
|
||||
TextSection = "_text";
|
||||
TextSection = getUnnamedSection("_text", SectionFlags::Code);
|
||||
DataSection = "_data";
|
||||
JumpTableDataSection = NULL;
|
||||
SwitchToSectionDirective = "";
|
||||
|
Loading…
Reference in New Issue
Block a user