24 cl::desc(
"Small data and bss section threshold size (default=8)"),
33 ELF::SHF_WRITE |ELF::SHF_ALLOC,
38 ELF::SHF_WRITE |ELF::SHF_ALLOC,
46 ELF::SHT_MIPS_OPTIONS,
47 ELF::SHF_ALLOC |ELF::SHF_MIPS_NOSTRIP,
52 ELF::SHT_MIPS_REGINFO,
112 return SmallBSSSection;
114 return SmallDataSection;
static SectionKind getKindForGlobal(const GlobalValue *GV, const TargetMachine &TM)
enable_if_c<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)
const MCSectionELF * getELFSection(StringRef Section, unsigned Type, unsigned Flags, SectionKind Kind)
static SectionKind getDataRel()
static bool IsInSmallSection(uint64_t Size)
bool hasAvailableExternallyLinkage() const
static SectionKind getBSS()
virtual void Initialize(MCContext &ctx, const TargetMachine &TM)
MCContext & getContext() const
Type * getElementType() const
initializer< Ty > init(const Ty &Val)
bool isMergeable1ByteCString() const
void Initialize(MCContext &Ctx, const TargetMachine &TM)
void InitializeELF(bool UseInitArray_)
const STC & getSubtarget() const
uint64_t getTypeAllocSize(Type *Ty) const
static SectionKind getMetadata()
PointerType * getType() const
getType - Global values are always pointers.
virtual const MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const
bool isDeclaration() const
static cl::opt< unsigned > SSThreshold("mips-ssection-threshold", cl::Hidden, cl::desc("Small data and bss section threshold size (default=8)"), cl::init(8))
virtual const DataLayout * getDataLayout() const
bool IsGlobalInSmallSection(const GlobalValue *GV, const TargetMachine &TM, SectionKind Kind) const
bool useSmallSection() const
const MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const