diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-24 20:14:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-24 20:14:10 +0000 |
commit | 224957eaed1f5d3c5f496e79adc2c197372bd5c6 (patch) | |
tree | d264199e73384fffe42ecc0b8bd88f45bb64e9f6 /lib/Target | |
parent | 4e50240d2aeae32e8b98473c4baeea257d180ca0 (diff) | |
download | external_llvm-224957eaed1f5d3c5f496e79adc2c197372bd5c6.zip external_llvm-224957eaed1f5d3c5f496e79adc2c197372bd5c6.tar.gz external_llvm-224957eaed1f5d3c5f496e79adc2c197372bd5c6.tar.bz2 |
change SectionKindForGlobal from being a public (and
previously virtual) function to being a static function
in the .cpp file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76997 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/TargetAsmInfo.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/lib/Target/TargetAsmInfo.cpp b/lib/Target/TargetAsmInfo.cpp index c52297e..b32be1d 100644 --- a/lib/Target/TargetAsmInfo.cpp +++ b/lib/Target/TargetAsmInfo.cpp @@ -27,9 +27,7 @@ #include <cstring> using namespace llvm; -TargetAsmInfo::TargetAsmInfo(const TargetMachine &tm) - : TM(tm) -{ +TargetAsmInfo::TargetAsmInfo(const TargetMachine &tm) : TM(tm) { BSSSection = "\t.bss"; BSSSection_ = 0; ReadOnlySection = 0; @@ -162,9 +160,6 @@ unsigned TargetAsmInfo::PreferredEHDataFormat(DwarfEncoding::Target Reason, } static bool isSuitableForBSS(const GlobalVariable *GV) { - if (!GV->hasInitializer()) - return true; - // Leave constant zeros in readonly constant sections, so they can be shared Constant *C = GV->getInitializer(); return (C->isNullValue() && !GV->isConstant() && !NoZerosInBSS); @@ -178,12 +173,10 @@ static bool isConstantString(const Constant *C) { return true; // Another possibility: [1 x i8] zeroinitializer - if (isa<ConstantAggregateZero>(C)) { - if (const ArrayType *Ty = dyn_cast<ArrayType>(C->getType())) { + if (isa<ConstantAggregateZero>(C)) + if (const ArrayType *Ty = dyn_cast<ArrayType>(C->getType())) return (Ty->getElementType() == Type::Int8Ty && Ty->getNumElements() == 1); - } - } return false; } @@ -224,8 +217,8 @@ static unsigned SectionFlagsForGlobal(const GlobalValue *GV, return Flags; } -SectionKind::Kind -TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const { +static SectionKind::Kind SectionKindForGlobal(const GlobalValue *GV, + Reloc::Model ReloModel) { // Early exit - functions should be always in text sections. const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV); if (GVar == 0) @@ -264,7 +257,7 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const { // In static relocation model, the linker will resolve all addresses, so // the relocation entries will actually be constants by the time the app // starts up. - if (TM.getRelocationModel() == Reloc::Static) + if (ReloModel == Reloc::Static) return SectionKind::ROData; // Otherwise, the dynamic linker needs to fix it up, put it in the @@ -275,7 +268,7 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const { // In static relocation model, the linker will resolve all addresses, so // the relocation entries will actually be constants by the time the app // starts up. - if (TM.getRelocationModel() == Reloc::Static) + if (ReloModel == Reloc::Static) return SectionKind::ROData; // Otherwise, the dynamic linker needs to fix it up, put it in the @@ -289,7 +282,7 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const { // specific section to improve startup time of the app. This coalesces these // globals together onto fewer pages, improving the locality of the dynamic // linker. - if (TM.getRelocationModel() == Reloc::Static) + if (ReloModel == Reloc::Static) return SectionKind::Data; switch (C->getRelocationInfo()) { @@ -302,11 +295,10 @@ TargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const { const Section *TargetAsmInfo::SectionForGlobal(const GlobalValue *GV) const { - SectionKind::Kind Kind = SectionKindForGlobal(GV); + SectionKind::Kind Kind = SectionKindForGlobal(GV, TM.getRelocationModel()); // Select section name. if (GV->hasSection()) { - // If the target has special section hacks for specifically named globals, // return them now. if (const Section *TS = getSpecialCasedSectionGlobals(GV, Kind)) |