From: Evan Cheng Date: Fri, 8 Aug 2008 17:56:50 +0000 (+0000) Subject: Undo most of r54519. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=42ccc21ce7ae392d9a5c2958786190943fe9aae0;p=oota-llvm.git Undo most of r54519. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54534 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/DarwinTargetAsmInfo.h b/include/llvm/Target/DarwinTargetAsmInfo.h index 3403f066159..0ed9b387037 100644 --- a/include/llvm/Target/DarwinTargetAsmInfo.h +++ b/include/llvm/Target/DarwinTargetAsmInfo.h @@ -30,8 +30,7 @@ namespace llvm { const Section* DataCoalSection; explicit DarwinTargetAsmInfo(const TargetMachine &TM); - virtual const Section* SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce = false) const; + virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const; virtual std::string UniqueSectionForGlobal(const GlobalValue* GV, SectionKind::Kind kind) const; const Section* MergeableConstSection(const GlobalVariable *GV) const; diff --git a/include/llvm/Target/ELFTargetAsmInfo.h b/include/llvm/Target/ELFTargetAsmInfo.h index b8261ef1da5..fe339f8e591 100644 --- a/include/llvm/Target/ELFTargetAsmInfo.h +++ b/include/llvm/Target/ELFTargetAsmInfo.h @@ -26,8 +26,7 @@ namespace llvm { struct ELFTargetAsmInfo: public virtual TargetAsmInfo { explicit ELFTargetAsmInfo(const TargetMachine &TM); - virtual const Section* SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce = false) const; + virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const; virtual std::string PrintSectionFlags(unsigned flags) const; const Section* MergeableConstSection(const GlobalVariable *GV) const; inline const Section* MergeableConstSection(const Type *Ty) const; diff --git a/include/llvm/Target/TargetAsmInfo.h b/include/llvm/Target/TargetAsmInfo.h index 2fd1492c992..04e91cb3812 100644 --- a/include/llvm/Target/TargetAsmInfo.h +++ b/include/llvm/Target/TargetAsmInfo.h @@ -544,10 +544,8 @@ namespace llvm { const char* name = NULL) const; /// SectionForGlobal - This hooks returns proper section name for given - /// global with all necessary flags and marks. If NoCoalesce is true, - /// do not use coalesced section. - virtual std::string SectionForGlobal(const GlobalValue *GV, - bool NoCoalesce = false) const; + /// global with all necessary flags and marks. + virtual std::string SectionForGlobal(const GlobalValue *GV) const; // Helper methods for SectionForGlobal virtual std::string UniqueSectionForGlobal(const GlobalValue* GV, @@ -555,8 +553,7 @@ namespace llvm { virtual std::string PrintSectionFlags(unsigned flags) const { return ""; } - virtual const Section* SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce = false) const; + virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const; virtual const Section* SelectSectionForMachineConst(const Type *Ty) const; diff --git a/lib/Target/ARM/ARMAsmPrinter.cpp b/lib/Target/ARM/ARMAsmPrinter.cpp index 420ccd0bcc9..8af79de902e 100644 --- a/lib/Target/ARM/ARMAsmPrinter.cpp +++ b/lib/Target/ARM/ARMAsmPrinter.cpp @@ -863,8 +863,7 @@ void ARMAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) { return; } - bool NoCoalesc = PCRelGVs.count(GVar); - std::string SectionName = TAI->SectionForGlobal(GVar, NoCoalesc); + std::string SectionName = TAI->SectionForGlobal(GVar); std::string name = Mang->getValueName(GVar); Constant *C = GVar->getInitializer(); const Type *Type = C->getType(); @@ -901,7 +900,7 @@ void ARMAsmPrinter::printModuleLevelGV(const GlobalVariable* GVar) { if (Size == 0) Size = 1; // .comm Foo, 0 is undefined, avoid it. if (TAI->getLCOMMDirective() != NULL) { - if (NoCoalesc || GVar->hasInternalLinkage()) { + if (PCRelGVs.count(GVar) || GVar->hasInternalLinkage()) { O << TAI->getLCOMMDirective() << name << "," << Size; if (Subtarget->isTargetDarwin()) O << "," << Align; diff --git a/lib/Target/DarwinTargetAsmInfo.cpp b/lib/Target/DarwinTargetAsmInfo.cpp index 978f5cf36ac..749cb717943 100644 --- a/lib/Target/DarwinTargetAsmInfo.cpp +++ b/lib/Target/DarwinTargetAsmInfo.cpp @@ -51,15 +51,14 @@ DarwinTargetAsmInfo::DarwinTargetAsmInfo(const TargetMachine &TM) { } const Section* -DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce) const { +DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { SectionKind::Kind Kind = SectionKindForGlobal(GV); - bool CanCoalesce = !NoCoalesce && GV->isWeakForLinker(); + bool isWeak = GV->isWeakForLinker(); bool isNonStatic = (DTM->getRelocationModel() != Reloc::Static); switch (Kind) { case SectionKind::Text: - if (CanCoalesce) + if (isWeak) return TextCoalSection; else return getTextSection_(); @@ -68,18 +67,18 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV, case SectionKind::BSS: case SectionKind::ThreadBSS: if (cast(GV)->isConstant()) - return (CanCoalesce ? ConstDataCoalSection : ConstDataSection); + return (isWeak ? ConstDataCoalSection : ConstDataSection); else - return (CanCoalesce ? DataCoalSection : getDataSection_()); + return (isWeak ? DataCoalSection : getDataSection_()); case SectionKind::ROData: - return (CanCoalesce ? ConstDataCoalSection : + return (isWeak ? ConstDataCoalSection : (isNonStatic ? ConstDataSection : getReadOnlySection_())); case SectionKind::RODataMergeStr: - return (CanCoalesce ? + return (isWeak ? ConstDataCoalSection : MergeableStringSection(cast(GV))); case SectionKind::RODataMergeConst: - return (CanCoalesce ? + return (isWeak ? ConstDataCoalSection: MergeableConstSection(cast(GV))); default: diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp index 523527c7b6d..82ac847e845 100644 --- a/lib/Target/ELFTargetAsmInfo.cpp +++ b/lib/Target/ELFTargetAsmInfo.cpp @@ -40,8 +40,7 @@ ELFTargetAsmInfo::ELFTargetAsmInfo(const TargetMachine &TM) { } const Section* -ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce) const { +ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { SectionKind::Kind Kind = SectionKindForGlobal(GV); if (const Function *F = dyn_cast(GV)) { diff --git a/lib/Target/Mips/MipsTargetAsmInfo.cpp b/lib/Target/Mips/MipsTargetAsmInfo.cpp index eff69abc6db..04edd0d4b53 100644 --- a/lib/Target/Mips/MipsTargetAsmInfo.cpp +++ b/lib/Target/Mips/MipsTargetAsmInfo.cpp @@ -82,7 +82,7 @@ SectionKindForGlobal(const GlobalValue *GV) const { } const Section* MipsTargetAsmInfo:: -SelectSectionForGlobal(const GlobalValue *GV, bool NoCoalesce) const { +SelectSectionForGlobal(const GlobalValue *GV) const { SectionKind::Kind K = SectionKindForGlobal(GV); const GlobalVariable *GVA = dyn_cast(GV); diff --git a/lib/Target/Mips/MipsTargetAsmInfo.h b/lib/Target/Mips/MipsTargetAsmInfo.h index 806cda8be36..2b5a739e721 100644 --- a/lib/Target/Mips/MipsTargetAsmInfo.h +++ b/lib/Target/Mips/MipsTargetAsmInfo.h @@ -40,8 +40,7 @@ namespace llvm { SectionFlagsForGlobal(const GlobalValue *GV = NULL, const char* name = NULL) const; - virtual const Section* SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce) const; + virtual const Section* SelectSectionForGlobal(const GlobalValue *GV) const; private: const MipsSubtarget *Subtarget; diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index cf431126349..9bc0b4055e3 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -272,7 +272,7 @@ TargetAsmInfo::SectionFlagsForGlobal(const GlobalValue *GV, } std::string -TargetAsmInfo::SectionForGlobal(const GlobalValue *GV, bool NoCoalesce) const { +TargetAsmInfo::SectionForGlobal(const GlobalValue *GV) const { const Section* S; // Select section name if (GV->hasSection()) { @@ -282,7 +282,7 @@ TargetAsmInfo::SectionForGlobal(const GlobalValue *GV, bool NoCoalesce) const { S = getNamedSection(GV->getSection().c_str(), Flags); } else { // Use default section depending on the 'type' of global - S = SelectSectionForGlobal(GV, NoCoalesce); + S = SelectSectionForGlobal(GV); } if (!S->isNamed()) @@ -295,8 +295,8 @@ TargetAsmInfo::SectionForGlobal(const GlobalValue *GV, bool NoCoalesce) const { } // Lame default implementation. Calculate the section name for global. -const Section* TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV, - bool NoCoalesce) const { +const Section* +TargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const { SectionKind::Kind Kind = SectionKindForGlobal(GV); if (GV->isWeakForLinker()) {