inline the two MergeableConstSection implementations into their

only caller.

llvm-svn: 76710
This commit is contained in:
Chris Lattner 2009-07-22 00:47:11 +00:00
parent 753d120975
commit fd164b863f
4 changed files with 18 additions and 27 deletions

View File

@ -45,7 +45,6 @@ namespace llvm {
getSectionForMergableConstant(uint64_t Size, unsigned ReloInfo) const;
private:
const Section* MergeableConstSection(const Type *Ty) const;
const Section* MergeableStringSection(const GlobalVariable *GV) const;
};
}

View File

@ -42,7 +42,6 @@ namespace llvm {
const Section* DataRelROLocalSection;
private:
const Section* MergeableConstSection(const Type *Ty) const;
const Section* MergeableStringSection(const GlobalVariable *GV) const;
};
}

View File

@ -131,31 +131,33 @@ DarwinTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
bool isNonStatic = TM.getRelocationModel() != Reloc::Static;
switch (Kind) {
case SectionKind::Text:
case SectionKind::Text:
if (isWeak)
return TextCoalSection;
else
return TextSection;
case SectionKind::Data:
case SectionKind::ThreadData:
case SectionKind::BSS:
case SectionKind::ThreadBSS:
case SectionKind::Data:
case SectionKind::ThreadData:
case SectionKind::BSS:
case SectionKind::ThreadBSS:
if (cast<GlobalVariable>(GV)->isConstant())
return (isWeak ? ConstDataCoalSection : ConstDataSection);
else
return (isWeak ? DataCoalSection : DataSection);
case SectionKind::ROData:
case SectionKind::ROData:
return (isWeak ? ConstDataCoalSection :
(isNonStatic ? ConstDataSection : getReadOnlySection()));
case SectionKind::RODataMergeStr:
case SectionKind::RODataMergeStr:
return (isWeak ?
ConstTextCoalSection :
MergeableStringSection(cast<GlobalVariable>(GV)));
case SectionKind::RODataMergeConst:
case SectionKind::RODataMergeConst: {
if (isWeak) return ConstDataCoalSection;
return MergeableConstSection(cast<GlobalVariable>(GV)
->getInitializer()->getType());
default:
const Type *Ty = cast<GlobalVariable>(GV)->getInitializer()->getType();
const TargetData *TD = TM.getTargetData();
return getSectionForMergableConstant(TD->getTypeAllocSize(Ty), 0);
}
default:
llvm_unreachable("Unsuported section kind for global");
}
@ -179,12 +181,6 @@ DarwinTargetAsmInfo::MergeableStringSection(const GlobalVariable *GV) const {
return getReadOnlySection();
}
const Section*
DarwinTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
const TargetData *TD = TM.getTargetData();
return getSectionForMergableConstant(TD->getTypeAllocSize(Ty), 0);
}
const Section *
DarwinTargetAsmInfo::getSectionForMergableConstant(uint64_t Size,
unsigned ReloInfo) const {

View File

@ -121,8 +121,11 @@ ELFTargetAsmInfo::SelectSectionForGlobal(const GlobalValue *GV) const {
return getReadOnlySection();
case SectionKind::RODataMergeStr:
return MergeableStringSection(GVar);
case SectionKind::RODataMergeConst:
return MergeableConstSection(GVar->getInitializer()->getType());
case SectionKind::RODataMergeConst: {
const Type *Ty = GVar->getInitializer()->getType();
const TargetData *TD = TM.getTargetData();
return getSectionForMergableConstant(TD->getTypeAllocSize(Ty), 0);
}
case SectionKind::ThreadData:
// ELF targets usually support TLS stuff
return TLSDataSection;
@ -165,12 +168,6 @@ ELFTargetAsmInfo::getSectionForMergableConstant(uint64_t Size,
}
const Section*
ELFTargetAsmInfo::MergeableConstSection(const Type *Ty) const {
const TargetData *TD = TM.getTargetData();
return getSectionForMergableConstant(TD->getTypeAllocSize(Ty), 0);
}
const Section*
ELFTargetAsmInfo::MergeableStringSection(const GlobalVariable *GV) const {
const TargetData *TD = TM.getTargetData();