forked from OSchip/llvm-project
inline the two MergeableConstSection implementations into their
only caller. llvm-svn: 76710
This commit is contained in:
parent
753d120975
commit
fd164b863f
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@ namespace llvm {
|
|||
const Section* DataRelROLocalSection;
|
||||
|
||||
private:
|
||||
const Section* MergeableConstSection(const Type *Ty) const;
|
||||
const Section* MergeableStringSection(const GlobalVariable *GV) const;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue