45 ReadOnlySectionLarge =
104 bool IsCPRel = SectionName.
startswith(
".cp.");
134 if (Kind.
isReadOnly())
return UseCPRel? ReadOnlySectionLarge
135 : DataRelROSectionLarge;
137 if (Kind.
isDataRel())
return DataSectionLarge;
152 "Unknown section kind");
Instances of this class represent a uniqued identifier for a section in the current translation unit...
MCSection * MergeableConst4Section
LinkageTypes getLinkage() const
MCSectionELF * getELFSection(StringRef Section, unsigned Type, unsigned Flags)
MCSection * TextSection
Section directive for standard text.
bool isReadOnlyWithRel() const
static unsigned getXCoreSectionFlags(SectionKind K, bool IsCPRel)
const char * getSection() const
void Initialize(MCContext &Ctx, const TargetMachine &TM) override
This method must be called before any actual lowering is done.
bool isMergeableCString() const
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(const char *reason, bool gen_crash_diag=true)
Reports a serious error, calling any installed error handler.
static bool isLocalLinkage(LinkageTypes Linkage)
Type * getPointerElementType() const
MCSection * MergeableConst16Section
virtual void Initialize(MCContext &ctx, const TargetMachine &TM)
This method must be called before any actual lowering is done.
MCSection * getSectionForConstant(SectionKind Kind, const Constant *C) const override
Given a constant with the SectionKind, return a section that it should be placed in.
bool isSized(SmallPtrSetImpl< const Type * > *Visited=nullptr) const
isSized - Return true if it makes sense to take the size of this type.
static const unsigned CodeModelLargeSize
Context object for machine code objects.
MCSection * SelectSectionForGlobal(const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const override
MCContext & getContext() const
MCSection * DataSection
Section directive for standard data.
bool isMergeableConst16() const
CodeModel::Model getCodeModel() const
Returns the code model.
The instances of the Type class are immutable: once they are created, they are never changed...
This is an important base class in LLVM.
MCSection * getExplicitSectionGlobal(const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const override
Targets should implement this method to assign a section to globals with an explicit section specfied...
bool isMergeable1ByteCString() const
SectionKind - This is a simple POD value that classifies the properties of a section.
bool isThreadLocal() const
bool startswith(StringRef Prefix) const
Check if this string starts with the given Prefix.
uint64_t getTypeAllocSize(Type *Ty) const
Returns the offset in bytes between successive objects of the specified type, including alignment pad...
const DataLayout * getDataLayout() const
Deprecated in 3.7, will be removed in 3.8.
bool isMergeableConst8() const
PointerType * getType() const
Global values are always pointers.
static unsigned getXCoreSectionType(SectionKind K)
const ARM::ArchExtKind Kind
MCSection * CStringSection
bool isMergeableConst4() const
XCORE_SHF_CP_SECTION - All sections with the "c" flag are grouped together by the linker to form the ...
Primary interface to the complete machine description for the target machine.
MCSection * BSSSection
Section that is default initialized to zero.
StringRef - Represent a constant reference to a string, i.e.
MCSection * ReadOnlySection
Section that is readonly and can contain arbitrary initialized data.
MCSection * DataRelROSection
XCORE_SHF_DP_SECTION - All sections with the "d" flag are grouped together by the linker to form the ...
MCSection * MergeableConst8Section