Object‐file lowering for Mach‐O targets.

Synopsis

Declared in <llvm/CodeGen/TargetLoweringObjectFileImpl.h>

class TargetLoweringObjectFileMachO
    : public TargetLoweringObjectFile

Base Classes

Name

Description

TargetLoweringObjectFile

Target‐specific lowering of globals and constants into object‐file sections.

Member Functions

Name

Description

TargetLoweringObjectFileMachO [constructor]

Construct a Mach‐O object‐file lowering instance.

~TargetLoweringObjectFileMachO [destructor] [virtual]

Destroy this Mach‐O object‐file lowering instance.

operator= [deleted]

Deleted copy assignment; instances are not copyable.

Initialize

Initialize overloads

SectionForGlobal

Compute the section used to emit a defined global object or function.

SelectSectionForGlobal [virtual]

Select the default Mach‐O section for GO based on its section kind.

emitCGProfileMetadata

Emit Call Graph Profile metadata.

emitLinkerDirectives [virtual]

Emit Mach‐O linker directives derived from module metadata.

emitModuleMetadata [virtual]

Emit the module flags that specify the garbage collection information.

emitPersonalityValue [virtual]

Emit the personality‐routine value into the object file if required.

emitPseudoProbeDescMetadata

Emit pseudo_probe_desc metadata.

getADASection

Return the GOFF associated data area section.

getAddrSigSection

Return the address‐significance table section.

getBBAddrMapSection

Return the basic‐block address map section for TextSec.

getBSSSection

Return the BSS section.

getCFIPersonalitySymbol [virtual]

Return the symbol passed to .cfi_personality for GV.

getCOFFDebugSymbolsSection

Return the COFF CodeView debug symbols section.

getCOFFDebugTypesSection

Return the COFF CodeView debug types section.

getCOFFGlobalTypeHashesSection

Return the COFF global type hashes section.

getCStringSection

Return the Mach‐O C‐string literal section.

getCallGraphSection

Return the call‐graph metadata section for TextSec.

getCallSiteEncoding

Return the DWARF encoding used for call‐site entries.

getCompactUnwindDwarfEHFrameOnly

Return the compact‐unwind encoding that means emit only an EH frame.

getCompactUnwindSection

Return the compact unwind section.

getConstDataCoalSection

Return the Mach‐O coalesced constant data section.

getConstDataSection

Return the Mach‐O constant data section.

getConstTextCoalSection

Return the Mach‐O coalesced constant text section.

getContext

Return the MC context associated with this object‐file info.

getDataBSSSection

Return the Mach‐O BSS data section.

getDataCoalSection

Return the Mach‐O coalesced data section.

getDataCommonSection

Return the Mach‐O common data section.

getDataSection

Return the standard data section.

getDebugThreadLocalSymbol [virtual]

Create a symbol reference to describe the given TLS variable when emitting the address in debug info.

getDrectveSection

Return the COFF linker directives section.

getDwarfARangesSection

Return the DWARF address‐range section.

getDwarfAbbrevDWOSection

Return the fission DWARF abbreviation section.

getDwarfAbbrevSection

Return the DWARF abbreviation section.

getDwarfAccelNamesSection

Return the Apple‐style names accelerator table section.

getDwarfAccelNamespaceSection

Return the Apple‐style namespace accelerator table section.

getDwarfAccelObjCSection

Return the Apple‐style Objective‐C accelerator table section.

getDwarfAccelTypesSection

Return the Apple‐style types accelerator table section.

getDwarfAddrSection

Return the DWARF v5 address table section.

getDwarfCUIndexSection

Return the DWARF package CU index section.

getDwarfDebugInlineSection

Return the legacy DWARF inline debug info section.

getDwarfDebugNamesSection

Return the DWARF v5 .debug_names accelerator table section.

getDwarfFrameSection

Return the DWARF frame section.

getDwarfGnuPubNamesSection

Return the GNU‐style DWARF public names section.

getDwarfGnuPubTypesSection

Return the GNU‐style DWARF public types section.

getDwarfInfoDWOSection

Return the fission DWARF info section.

getDwarfInfoSection

getDwarfInfoSection overloads

getDwarfLineDWOSection

Return the fission DWARF line section.

getDwarfLineSection

Return the DWARF line section.

getDwarfLineStrSection

Return the DWARF line‐string section.

getDwarfLocDWOSection

Return the fission DWARF location list section.

getDwarfLocSection

Return the DWARF location list section.

getDwarfLoclistsDWOSection

Return the fission DWARF v5 location list section.

getDwarfLoclistsSection

Return the DWARF v5 location list section.

getDwarfMacinfoDWOSection

Return the fission DWARF macinfo section.

getDwarfMacinfoSection

Return the DWARF macinfo section.

getDwarfMacroDWOSection

Return the fission DWARF macro section.

getDwarfMacroSection

Return the DWARF macro section.

getDwarfPubNamesSection

Return the DWARF public names section.

getDwarfPubTypesSection

Return the DWARF public types section.

getDwarfRangesSection

Return the DWARF ranges section.

getDwarfRnglistsDWOSection

Return the fission DWARF v5 range list section.

getDwarfRnglistsSection

Return the DWARF v5 range list section.

getDwarfStrDWOSection

Return the fission DWARF string section.

getDwarfStrOffDWOSection

Return the fission DWARF string‐offset section.

getDwarfStrOffSection

Return the DWARF v5 string‐offset section.

getDwarfStrSection

Return the DWARF string section.

getDwarfSwiftASTSection

Return the Swift AST debug section.

getDwarfTUIndexSection

Return the DWARF package TU index section.

getDwarfTypesDWOSection

Return the fission DWARF types section.

getDwarfTypesSection

Return the DWARF types COMDAT section for the given hash.

getEHFrameSection

Return the EH frame section.

getEightByteConstantSection

Return the Mach‐O 8‐byte constant section.

getExplicitSectionGlobal [virtual]

Return the Mach‐O section named by an explicit section attribute on GO.

getFDEEncoding

Return the FDE CFI encoding used for .eh_frame begin labels.

getFaultMapSection

Return the fault map section.

getFourByteConstantSection

Return the Mach‐O 4‐byte constant section.

getFunctionEntryPointSymbol [virtual]

If supported, return the function entry point symbol. Otherwise, returns nullptr. Func must be a function or an alias which has a function as base object.

getGEHContSection

Return the COFF guard EH continuation table section.

getGFIDsSection

Return the COFF guard function ID table section.

getGIATsSection

Return the COFF guard address‐taken IAT entries section.

getGLJMPSection

Return the COFF guard longjmp table section.

getIDRLSection

Return the GOFF IDRL section.

getImportCallSection

Return the import‐call optimization data section.

getIndirectSymViaGOTPCRel [virtual]

Get MachO PC relative GOT entry relocation.

getIndirectSymViaRWPI [virtual]

Get the target specific RWPI relocation.

getKCFITrapSection

Return the KCFI trap section for TextSec.

getLLVMStatsSection

Return the LLVM statistics metadata section.

getLSDAEncoding

Return the DWARF encoding used for LSDA references.

getLSDASection

Return the language‐specific data area (LSDA) section.

getLazySymbolPointerSection

Return the Mach‐O lazy symbol pointer section.

getMangler

Return the mangler used for global names.

getModuleMetadata [virtual]

Get the module‐level metadata that the platform cares about.

getNameWithPrefix [virtual]

Append the Mach‐O mangled name of GV to OutName.

getNonLazySymbolPointerSection

Return the Mach‐O non‐lazy symbol pointer section.

getOmitDwarfIfHaveCompactUnwind

True if DWARF unwind may be omitted when compact unwind is available.

getPCSection

Return or create a PC‐relative metadata section named Name.

getPDataSection

Return the COFF procedure data section.

getPPA2ListSection

Return the GOFF PPA2 list section.

getPersonalityEncoding

Return the DWARF encoding used for personality routine references.

getPseudoProbeDescSection

Return the AutoFDO pseudo‐probe descriptor section for a function.

getPseudoProbeSection

Return the AutoFDO pseudo‐probe section for TextSec.

getReadOnlySection

Return the read‐only data section.

getRemarksSection

Return the remarks section.

getSFrameABIArch

Return the optional SFrame ABI architecture identifier.

getSFrameSection

Return the SFrame section.

getSXDataSection

Return the COFF safe exception handlers data section.

getSectionForCommandLines [virtual]

Return the Mach‐O section used for llvm.commandline metadata.

getSectionForConstant

getSectionForConstant overloads

getSectionForExternalReference [virtual]

On targets that associate external references with a section, return such a section for the given external global.

getSectionForFunctionDescriptor [virtual]

On targets that use separate function descriptor symbols, return a section for the descriptor given its symbol. Use only with defined functions.

getSectionForJumpTable

getSectionForJumpTable overloads

getSectionForLSDA [virtual]

Return the section used to emit the LSDA for the given function.

getSectionForMachineBasicBlock [virtual]

Return the section used to emit the given machine basic block.

getSectionForTOCEntry [virtual]

On targets that support TOC entries, return a section for the entry given the symbol it refers to. TODO: Implement this interface for existing ELF targets.

getSixteenByteConstantSection

Return the Mach‐O 16‐byte constant section.

getStackMapSection

Return the stack map section.

getStackSizesSection

Return the stack‐sizes metadata section for TextSec.

getStaticBase [virtual]

Returns the register used as static base in RWPI variants.

getStaticCtorSection [virtual]

Return the section used for static constructors at Priority.

getStaticDtorSection [virtual]

Return the Mach‐O section for static destructors at Priority.

getSupportsCompactUnwindWithoutEHFrame

True if compact unwind can be emitted without an EH frame section.

getSwift5ReflectionSection

Return the Swift 5 reflection section for ReflSectionKind.

getSymbolWithGlobalValueBase

Return the MCSymbol for a private symbol with global value name as its base, with the specified suffix.

getTLSBSSSection

Return the thread‐local BSS section.

getTLSDataSection

Return the thread‐local initialized data section.

getTLSExtraDataSection

Return the extra TLS variable data section.

getTLSTLVSection

Return the Mach‐O thread‐local variable structure section.

getTLSThreadInitSection

Return the Mach‐O TLS thread‐init function section.

getTOCBaseSection

Return the XCOFF TOC base section.

getTTypeEncoding

Return the DWARF encoding used for type references.

getTTypeGlobalReference [virtual]

The mach‐o version of this method defaults to returning a stub reference.

getTTypeReference

Build an MCExpr that references Sym with the given type encoding.

getTargetSymbol [virtual]

Targets that have a special convention for their symbols could use this hook to return a specialized symbol.

getTextCoalSection

Return the Mach‐O coalesced text section.

getTextSection

Return the standard text section.

getTextSectionAlignment [virtual]

Return the preferred alignment in bytes for the text section.

getThreadLocalPointerSection

Return the Mach‐O thread‐local pointer section.

getUStringSection

Return the Mach‐O UTF‐16 string literal section.

getUniqueSectionForFunction [virtual]

Return a unique section for the given function when function sections are enabled.

getXDataSection

Return the COFF unwind data section.

hasPLTPCRelative

Target supports a PC‐relative relocation that references the PLT of a function.

initMCObjectFileInfo

Initialize object‐file section info for the given context and code model.

isPositionIndependent

True if the object file is being built for position‐independent code.

lowerDSOLocalEquivalent [virtual]

Lower a dso_local equivalent reference to a target MCExpr.

lowerRelativeReference [virtual]

Lower a relative reference between two globals to a target MCExpr.

shouldPutJumpTableInFunctionSection [virtual]

Return true if the jump table for F should live in the function section.

supportDebugThreadLocalLocation

Target supports TLS offset relocation in debug section?

supportGOTPCRelWithOffset

Target GOT "PC"‐relative relocation supports encoding an additional binary expression with an offset?

supportIndirectSymViaGOTPCRel

Target supports replacing a data "PC"‐relative access to a symbol through another symbol, by accessing the later via a GOT entry instead?

Static Member Functions

Name

Description

getCustomSectionName

Return the section name specified by '#pragma clang section' or the section attribute.

getKindForGlobal

Classify the specified global variable into a set of target independent categories embodied in SectionKind.

Protected Member Functions

Name

Description

SelectSectionForGlobal [virtual]

Select the section used to emit GO for the given section kind.

Protected Data Members

Name

Description

ADASection

GOFF associated data area (ADA) section.

AddrSigSection

Address‐significance table section.

BSSSection

Section that is default initialized to zero.

COFFDebugSymbolsSection

COFF CodeView debug symbols section.

COFFDebugTypesSection

COFF CodeView debug types section.

COFFGlobalTypeHashesSection

COFF global type hashes section.

CStringSection

Mach‐O C‐string literal section.

CallGraphSection

Section containing call graph metadata.

CallSiteEncoding

DWARF encoding used for call‐site entries in exception handling.

CompactUnwindDwarfEHFrameOnly

Compact unwind encoding indicating that we should emit only an EH frame.

CompactUnwindSection

If exception handling is supported by the target and the target can support a compact representation of the CIE and FDE, this is the section to emit them into.

ConstDataCoalSection

Mach‐O coalesced constant data section.

ConstDataSection

Mach‐O constant data section.

ConstTextCoalSection

Mach‐O coalesced constant text section.

DataBSSSection

Mach‐O BSS data section.

DataCoalSection

Mach‐O coalesced data section.

DataCommonSection

Mach‐O common data section.

DataRelROSection

ELF section for read‐only data that needs dynamic relocations.

DataSection

Section directive for standard data.

DrectveSection

COFF linker directives section (.drectve).

DwarfARangesSection

DWARF address‐range section (.debug_aranges).

DwarfAbbrevDWOSection

Fission (DWO) DWARF abbreviation section (.debug_abbrev.dwo).

DwarfAbbrevSection

DWARF abbreviation section (.debug_abbrev).

DwarfAccelNamesSection

Pre‐DWARF v5 Apple‐style names accelerator table section.

DwarfAccelNamespaceSection

Pre‐DWARF v5 Apple‐style namespace accelerator table section.

DwarfAccelObjCSection

Pre‐DWARF v5 Apple‐style Objective‐C accelerator table section.

DwarfAccelTypesSection

Pre‐DWARF v5 Apple‐style types accelerator table section.

DwarfAddrSection

DWARF v5 address table section (.debug_addr).

DwarfCUIndexSection

DWARF package CU index section (.debug_cu_index).

DwarfDebugInlineSection

Legacy DWARF inline debug info section.

DwarfDebugNamesSection

DWARF v5 accelerator table section (.debug_names).

DwarfFrameSection

DWARF call‐frame information section (.debug_frame).

DwarfGnuPubNamesSection

Section for newer gnu pubnames.

DwarfGnuPubTypesSection

Section for newer gnu pubtypes.

DwarfInfoDWOSection

Fission (DWO) DWARF info section (.debug_info.dwo).

DwarfInfoSection

DWARF compilation‐unit info section (.debug_info).

DwarfLineDWOSection

Fission (DWO) DWARF line section (.debug_line.dwo).

DwarfLineSection

DWARF line‐number program section (.debug_line).

DwarfLineStrSection

DWARF line‐string section (.debug_line_str).

DwarfLocDWOSection

Fission (DWO) DWARF location list section (.debug_loc.dwo).

DwarfLocSection

DWARF location list section (.debug_loc).

DwarfLoclistsDWOSection

Fission (DWO) DWARF v5 location list section (.debug_loclists.dwo).

DwarfLoclistsSection

The DWARF v5 locations list section.

DwarfMacinfoDWOSection

Fission (DWO) DWARF macinfo section (.debug_macinfo.dwo).

DwarfMacinfoSection

DWARF macinfo section (.debug_macinfo).

DwarfMacroDWOSection

Fission (DWO) DWARF macro section (.debug_macro.dwo).

DwarfMacroSection

DWARF macro section (.debug_macro).

DwarfPubNamesSection

DWARF public names section (.debug_pubnames).

DwarfPubTypesSection

DWARF public types section (.debug_pubtypes).

DwarfRangesSection

DWARF range list section (.debug_ranges).

DwarfRnglistsDWOSection

The DWARF v5 range and location list sections for fission.

DwarfRnglistsSection

The DWARF v5 range list section.

DwarfStrDWOSection

Fission (DWO) DWARF string section (.debug_str.dwo).

DwarfStrOffDWOSection

Fission (DWO) DWARF string‐offset section (.debug_str_offsets.dwo).

DwarfStrOffSection

The DWARF v5 string offset and address table sections.

DwarfStrSection

DWARF string section (.debug_str).

DwarfSwiftASTSection

Section holding serialized Swift AST debug data.

DwarfTUIndexSection

DWARF package TU index section (.debug_tu_index).

DwarfTypesDWOSection

Fission (DWO) DWARF types section (.debug_types.dwo).

EHFrameSection

EH frame section.

EightByteConstantSection

Mach‐O 8‐byte constant section.

FDECFIEncoding

Encoding used for FDE CFI begin labels in .eh_frame.

FaultMapSection

FaultMap section.

FourByteConstantSection

Mach‐O 4‐byte constant section.

GEHContSection

COFF guard EH continuation table section.

GFIDsSection

COFF guard function ID table section.

GIATsSection

COFF guard address‐taken IAT entries section.

GLJMPSection

COFF guard longjmp table section.

IDRLSection

GOFF IDRL section.

ImportCallSection

If import call optimization is supported by the target, this is the section to emit import call data to.

LLVMStatsSection

Section holding LLVM statistics metadata.

LSDAEncoding

DWARF encoding used for the language‐specific data area (LSDA).

LSDASection

If exception handling is supported by the target, this is the section the Language Specific Data Area information is emitted to.

LazySymbolPointerSection

Mach‐O lazy symbol pointer section.

MergeableConst16Section

ELF mergeable 16‐byte constant section.

MergeableConst32Section

ELF mergeable 32‐byte constant section.

MergeableConst4Section

ELF mergeable 4‐byte constant section.

MergeableConst8Section

ELF mergeable 8‐byte constant section.

NonLazySymbolPointerSection

Mach‐O non‐lazy symbol pointer section.

OmitDwarfIfHaveCompactUnwind

OmitDwarfIfHaveCompactUnwind ‐ True if the target object file supports having some functions with compact unwind and other with dwarf unwind.

PDataSection

COFF exception procedure data section (.pdata).

PLTPCRelativeSpecifier

Specifier used for PC‐relative PLT references when supported.

PPA2ListSection

GOFF PPA2 list section.

PersonalityEncoding

DWARF encoding used for the personality routine reference.

PseudoProbeDescSection

Section describing AutoFDO pseudo‐probe function descriptors.

PseudoProbeSection

Section for pseudo probe information used by AutoFDO

ReadOnly16Section

XCOFF 16‐byte read‐only section.

ReadOnly8Section

XCOFF 8‐byte read‐only section.

ReadOnlySection

Readonly section for arbitrary initialized data.

RemarksSection

Remarks section.

SFrameABIArch

SFrame ABI architecture byte.

SFrameSection

SFrame section.

SXDataSection

COFF safe exception handlers data section (.sxdata).

SixteenByteConstantSection

Mach‐O 16‐byte constant section.

StackMapSection

StackMap section.

StackSizesSection

Section containing metadata on function stack sizes.

StaticCtorSection

This section contains the static constructor pointer list.

StaticDtorSection

This section contains the static destructor pointer list.

SupportDebugThreadLocalLocation

True if the target supports TLS offset relocation in debug sections.

SupportGOTPCRelWithOffset

True if GOT PC‐relative relocations may encode an added offset.

SupportIndirectSymViaGOTPCRel

True if the target can replace a PC‐relative data access via GOT.

SupportsCompactUnwindWithoutEHFrame

True if the target object file supports emitting a compact unwind section without an associated EH frame section.

Swift5ReflectionSections

Swift 5 reflection metadata sections, indexed by section kind.

TLSBSSSection

Section directive for Thread Local uninitialized data.

TLSDataSection

Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.

TLSExtraDataSection

Extra TLS Variable Data section.

TLSTLVSection

Section for thread local structure information.

TLSThreadInitSection

Section for thread local data initialization functions.

TM

Target machine associated with this object‐file lowering instance.

TOCBaseSection

XCOFF TOC base section.

TTypeEncoding

DWARF encoding used for type references in exception handling.

TextCoalSection

Mach‐O coalesced text section.

TextSection

Section directive for standard text.

ThreadLocalPointerSection

Mach‐O thread‐local pointer section.

UStringSection

Mach‐O UTF‐16 string literal section.

XDataSection

COFF exception unwind data section (.xdata).

Created with MrDocs