48 void MCObjectFileInfo::initMachOMCObjectFileInfo(
const Triple &
T) {
53 "__TEXT",
"__eh_frame",
272 void MCObjectFileInfo::initELFMCObjectFileInfo(
const Triple &T) {
317 if (PositionIndependent) {
342 if (PositionIndependent) {
354 if (PositionIndependent) {
404 if (PositionIndependent) {
418 if (PositionIndependent) {
431 if (PositionIndependent) {
578 Ctx->
getELFSection(
".eh_frame", EHSectionType, EHSectionFlags);
581 void MCObjectFileInfo::initCOFFMCObjectFileInfo(
const Triple &T) {
671 ".debug_gnu_pubnames",
676 ".debug_gnu_pubtypes",
736 ".debug_str_offsets.dwo",
805 PositionIndependent = PIC;
832 initMachOMCObjectFileInfo(TT);
837 "Cannot initialize MC for non-Windows COFF object files.");
840 initCOFFMCObjectFileInfo(TT);
844 initELFMCObjectFileInfo(TT);
Instances of this class represent a uniqued identifier for a section in the current translation unit...
MCSection * MergeableConst4Section
static SectionKind getData()
S_NON_LAZY_SYMBOL_POINTERS - Section with non-lazy symbol pointers.
const MCAsmInfo * getAsmInfo() const
S_ATTR_STRIP_STATIC_SYMS - Ok to strip static symbols in this section in files with the MY_DYLDLINK f...
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
MCSection * DwarfPubTypesSection
MCSection * DwarfGnuPubTypesSection
Section for newer gnu pubtypes.
MCSection * StackMapSection
StackMap section.
MCSection * ConstDataSection
MCSection * SixteenByteConstantSection
unsigned PersonalityEncoding
PersonalityEncoding, LSDAEncoding, TTypeEncoding - Some encoding values for EH.
MCSection * TextSection
Section directive for standard text.
MCSection * ConstTextCoalSection
bool isMacOSXVersionLT(unsigned Major, unsigned Minor=0, unsigned Micro=0) const
isMacOSXVersionLT - Comparison function for checking OS X version compatibility, which handles suppor...
MCSection * DataCoalSection
S_ATTR_LIVE_SUPPORT - Blocks are live if they reference live blocks.
S_ATTR_DEBUG - A debug section.
MCSection * LazySymbolPointerSection
static SectionKind getMergeableConst8()
static SectionKind getMergeableConst16()
static SectionKind getMergeable1ByteCString()
S_THREAD_LOCAL_VARIABLES - Section with thread local variable structure data.
setjmp/longjmp based exceptions
MCSection * getDwarfTypesSection(uint64_t Hash) const
static SectionKind getMergeableConst4()
static bool useCompactUnwind(const Triple &T)
MCSectionCOFF * getCOFFSection(StringRef Section, unsigned Characteristics, SectionKind Kind, StringRef COMDATSymName, int Selection, unsigned UniqueID=GenericSectionID, const char *BeginSymName=nullptr)
bool isOSWindows() const
Tests whether the OS is Windows.
void InitMCObjectFileInfo(const Triple &TT, bool PIC, CodeModel::Model CM, MCContext &ctx)
MCSection * DwarfInfoDWOSection
bool isMacOSX() const
isMacOSX - Is this a Mac OS X triple.
MCSection * MergeableConst32Section
S_4BYTE_LITERALS - Section with 4 byte literals.
static SectionKind getBSS()
MCSection * DwarfLocDWOSection
MCSection * COFFDebugTypesSection
MCSection * MergeableConst16Section
MCSection * DwarfPubNamesSection
MCSection * DwarfLineSection
S_8BYTE_LITERALS - Section with 8 byte literals.
ObjectFormatType getObjectFormat() const
getFormat - Get the object format for this triple.
MCSection * EightByteConstantSection
MCSection * DwarfFrameSection
MCSection * TLSDataSection
Section directive for Thread Local data. ELF, MachO and COFF.
Context object for machine code objects.
S_ATTR_NO_TOC - Section contains coalesced symbols that are not to be in a ranlib table of contents...
MCSection * DwarfStrDWOSection
MCSection * DataCommonSection
const MCSection * DwarfDebugInlineSection
MCSectionMachO * getMachOSection(StringRef Segment, StringRef Section, unsigned TypeAndAttributes, unsigned Reserved2, SectionKind K, const char *BeginSymName=nullptr)
Return the MCSection for the specified mach-o section.
MCSection * DrectveSection
COFF specific sections.
static std::string utostr(uint64_t X, bool isNeg=false)
MCSection * DwarfAccelNamesSection
DWARF5 Experimental Debug Info Sections DwarfAccelNamesSection, DwarfAccelObjCSection, DwarfAccelNamespaceSection, DwarfAccelTypesSection - If we use the DWARF accelerated hash tables then we want to emit these sections.
ArchType getArch() const
getArch - Get the parsed architecture type of this triple.
MCSection * DataSection
Section directive for standard data.
MCSection * DwarfCUIndexSection
S_ATTR_PURE_INSTRUCTIONS - Section contains only true machine instructions.
bool isiOS() const
Is this an iOS triple.
MCSection * ThreadLocalPointerSection
MCSection * TLSTLVSection
Section for thread local structure information.
S_THREAD_LOCAL_ZEROFILL - Thread local zerofill section.
MCSection * DwarfStrSection
MCSection * DwarfAccelNamespaceSection
ExceptionHandling getExceptionHandlingType() const
MCSection * UStringSection
S_THREAD_LOCAL_REGULAR - Thread local data section.
bool SupportsCompactUnwindWithoutEHFrame
True if the target object file supports emitting a compact unwind section without an associated EH fr...
S_CSTRING_LITERALS - Section with literal C strings.
bool CommDirectiveSupportsAlignment
True if .comm supports alignment.
MCSection * DwarfInfoSection
Triple - Helper class for working with autoconf configuration names.
MCSection * COFFDebugSymbolsSection
MCSection * DwarfAbbrevSection
bool isOSDarwin() const
isOSDarwin - Is this a "Darwin" OS (OS X, iOS, or watchOS).
MCSection * EHFrameSection
EH frame section.
S_LAZY_SYMBOL_POINTERS - Section with lazy symbol pointers.
MCSection * DwarfTypesDWOSection
static SectionKind getThreadBSS()
MCSection * DwarfAddrSection
MCSection * DwarfLineDWOSection
MCSection * DwarfRangesSection
S_THREAD_LOCAL_VARIABLE_POINTERS - Section with pointers to thread local structures.
static SectionKind getMetadata()
static SectionKind getReadOnlyWithRel()
MCSection * DwarfARangesSection
MCSection * DataBSSSection
MCSection * CompactUnwindSection
If exception handling is supported by the target and the target can support a compact representation ...
MCSection * DwarfAccelTypesSection
S_THREAD_LOCAL_INIT_FUNCTION_POINTERS - Section with thread local variable initialization pointers to...
MCSection * DwarfStrOffDWOSection
S_16BYTE_LITERALS - Section with only 16 byte literals.
MCSection * DwarfGnuPubNamesSection
Section for newer gnu pubnames.
MCSection * DwarfAbbrevDWOSection
MCSection * FaultMapSection
FaultMap section.
bool OmitDwarfIfHaveCompactUnwind
OmitDwarfIfHaveCompactUnwind - True if the target object file supports having some functions with com...
MCSection * FourByteConstantSection
static SectionKind getMergeable2ByteCString()
MCSection * SXDataSection
MCSection * LSDASection
If exception handling is supported by the target, this is the section the Language Specific Data Area...
MCSection * TLSExtraDataSection
Extra TLS Variable Data section.
unsigned CompactUnwindDwarfEHFrameOnly
Compact unwind encoding indicating that we should emit only an EH frame.
MCSection * DwarfAccelObjCSection
S_COALESCED - Section contains symbols that are to be coalesced.
MCSection * TLSBSSSection
Section directive for Thread Local uninitialized data.
MCSection * NonLazySymbolPointerSection
MCSection * TextCoalSection
MCSection * DwarfTUIndexSection
MCSectionELF * getELFSection(const Twine &Section, unsigned Type, unsigned Flags)
const MCSection * TLSThreadInitSection
Section for thread local data initialization functions.
MCSection * CStringSection
#define LLVM_FALLTHROUGH
LLVM_FALLTHROUGH - Mark fallthrough cases in switch statements.
bool SupportsWeakOmittedEHFrame
True if target object file supports a weak_definition of constant 0 for an omitted EH frame...
std::string Hash(const Unit &U)
MCSection * BSSSection
Section that is default initialized to zero.
MCSection * ReadOnlySection
Section that is readonly and can contain arbitrary initialized data.
S_ZEROFILL - Zero fill on demand section.
MCSection * DwarfMacinfoSection
MCSection * DataRelROSection
static SectionKind getReadOnly()
MCSection * DwarfLocSection
static SectionKind getText()
MCSection * MergeableConst8Section