class TargetLoweringObjectFileMachO

Declaration

class TargetLoweringObjectFileMachO : public TargetLoweringObjectFile { /* full declaration omitted */ };

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:115

Inherits from: TargetLoweringObjectFile

Member Variables

Inherited from TargetLoweringObjectFile:

protected SupportIndirectSymViaGOTPCRel = false
protected SupportGOTPCRelWithOffset = true
protected SupportDebugThreadLocalLocation = true
protected SupportDSOLocalEquivalentLowering = false
protected PersonalityEncoding = 0
protected LSDAEncoding = 0
protected TTypeEncoding = 0
protected CallSiteEncoding = 0
protected StaticCtorSection = nullptr
protected StaticDtorSection = nullptr
protected TM = nullptr

Inherited from MCObjectFileInfo:

protected CommDirectiveSupportsAlignment = false
protected SupportsWeakOmittedEHFrame = false
protected SupportsCompactUnwindWithoutEHFrame = false
protected OmitDwarfIfHaveCompactUnwind = false
protected FDECFIEncoding = 0
protected CompactUnwindDwarfEHFrameOnly = 0
protected TextSection = nullptr
protected DataSection = nullptr
protected BSSSection = nullptr
protected ReadOnlySection = nullptr
protected LSDASection = nullptr
protected CompactUnwindSection = nullptr
protected DwarfAbbrevSection = nullptr
protected DwarfInfoSection = nullptr
protected DwarfLineSection = nullptr
protected DwarfLineStrSection = nullptr
protected DwarfFrameSection = nullptr
protected DwarfPubTypesSection = nullptr
protected DwarfDebugInlineSection = nullptr
protected DwarfStrSection = nullptr
protected DwarfLocSection = nullptr
protected DwarfARangesSection = nullptr
protected DwarfRangesSection = nullptr
protected DwarfMacinfoSection = nullptr
protected DwarfMacroSection = nullptr
protected DwarfPubNamesSection = nullptr
protected DwarfDebugNamesSection = nullptr
protected DwarfAccelNamesSection = nullptr
protected DwarfAccelObjCSection = nullptr
protected DwarfAccelNamespaceSection = nullptr
protected DwarfAccelTypesSection = nullptr
protected DwarfInfoDWOSection = nullptr
protected DwarfTypesDWOSection = nullptr
protected DwarfAbbrevDWOSection = nullptr
protected DwarfStrDWOSection = nullptr
protected DwarfLineDWOSection = nullptr
protected DwarfLocDWOSection = nullptr
protected DwarfStrOffDWOSection = nullptr
protected DwarfMacinfoDWOSection = nullptr
protected DwarfMacroDWOSection = nullptr
protected DwarfStrOffSection = nullptr
protected DwarfAddrSection = nullptr
protected DwarfRnglistsSection = nullptr
protected DwarfLoclistsSection = nullptr
protected DwarfRnglistsDWOSection = nullptr
protected DwarfLoclistsDWOSection = nullptr
protected DwarfCUIndexSection = nullptr
protected DwarfTUIndexSection = nullptr
protected DwarfGnuPubNamesSection = nullptr
protected DwarfGnuPubTypesSection = nullptr
protected DwarfSwiftASTSection = nullptr
protected COFFDebugSymbolsSection = nullptr
protected COFFDebugTypesSection = nullptr
protected COFFGlobalTypeHashesSection = nullptr
protected TLSExtraDataSection = nullptr
protected TLSDataSection = nullptr
protected TLSBSSSection = nullptr
protected StackMapSection = nullptr
protected FaultMapSection = nullptr
protected RemarksSection = nullptr
protected EHFrameSection = nullptr
protected StackSizesSection = nullptr
protected PseudoProbeSection = nullptr
protected PseudoProbeDescSection = nullptr
protected DataRelROSection = nullptr
protected MergeableConst4Section = nullptr
protected MergeableConst8Section = nullptr
protected MergeableConst16Section = nullptr
protected MergeableConst32Section = nullptr
protected TLSTLVSection = nullptr
protected TLSThreadInitSection = nullptr
protected CStringSection = nullptr
protected UStringSection = nullptr
protected TextCoalSection = nullptr
protected ConstTextCoalSection = nullptr
protected ConstDataSection = nullptr
protected DataCoalSection = nullptr
protected ConstDataCoalSection = nullptr
protected DataCommonSection = nullptr
protected DataBSSSection = nullptr
protected FourByteConstantSection = nullptr
protected EightByteConstantSection = nullptr
protected SixteenByteConstantSection = nullptr
protected LazySymbolPointerSection = nullptr
protected NonLazySymbolPointerSection = nullptr
protected ThreadLocalPointerSection = nullptr
protected AddrSigSection = nullptr
protected DrectveSection = nullptr
protected PDataSection = nullptr
protected XDataSection = nullptr
protected SXDataSection = nullptr
protected GEHContSection = nullptr
protected GFIDsSection = nullptr
protected GIATsSection = nullptr
protected GLJMPSection = nullptr
protected PPA1Section = nullptr
protected TOCBaseSection = nullptr
protected ReadOnly8Section = nullptr
protected ReadOnly16Section = nullptr
protected Swift5ReflectionSections = {}

Method Overview

  • public void Initialize(llvm::MCContext & Ctx, const llvm::TargetMachine & TM)
  • public llvm::MCSection * SelectSectionForGlobal(const llvm::GlobalObject * GO, llvm::SectionKind Kind, const llvm::TargetMachine & TM) const
  • public TargetLoweringObjectFileMachO()
  • public void emitModuleMetadata(llvm::MCStreamer & Streamer, llvm::Module & M) const
  • public llvm::MCSymbol * getCFIPersonalitySymbol(const llvm::GlobalValue * GV, const llvm::TargetMachine & TM, llvm::MachineModuleInfo * MMI) const
  • public llvm::MCSection * getExplicitSectionGlobal(const llvm::GlobalObject * GO, llvm::SectionKind Kind, const llvm::TargetMachine & TM) const
  • public const llvm::MCExpr * getIndirectSymViaGOTPCRel(const llvm::GlobalValue * GV, const llvm::MCSymbol * Sym, const llvm::MCValue & MV, int64_t Offset, llvm::MachineModuleInfo * MMI, llvm::MCStreamer & Streamer) const
  • public void getNameWithPrefix(SmallVectorImpl<char> & OutName, const llvm::GlobalValue * GV, const llvm::TargetMachine & TM) const
  • public llvm::MCSection * getSectionForConstant(const llvm::DataLayout & DL, llvm::SectionKind Kind, const llvm::Constant * C, llvm::Align & Alignment) const
  • public llvm::MCSection * getStaticDtorSection(unsigned int Priority, const llvm::MCSymbol * KeySym) const
  • public const llvm::MCExpr * getTTypeGlobalReference(const llvm::GlobalValue * GV, unsigned int Encoding, const llvm::TargetMachine & TM, llvm::MachineModuleInfo * MMI, llvm::MCStreamer & Streamer) const
  • public ~TargetLoweringObjectFileMachO()

Inherited from TargetLoweringObjectFile:

Inherited from MCObjectFileInfo:

Methods

void Initialize(llvm::MCContext& Ctx,
                const llvm::TargetMachine& TM)

Description

This method must be called before any actual lowering is done. This specifies the current context for codegen, and gives the lowering implementations a chance to set up their default sections.

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:120

Parameters

llvm::MCContext& Ctx
const llvm::TargetMachine& TM

llvm::MCSection* SelectSectionForGlobal(
    const llvm::GlobalObject* GO,
    llvm::SectionKind Kind,
    const llvm::TargetMachine& TM) const

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:128

Parameters

const llvm::GlobalObject* GO
llvm::SectionKind Kind
const llvm::TargetMachine& TM

TargetLoweringObjectFileMachO()

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:117

void emitModuleMetadata(
    llvm::MCStreamer& Streamer,
    llvm::Module& M) const

Description

Emit the module flags that specify the garbage collection information.

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:126

Parameters

llvm::MCStreamer& Streamer
llvm::Module& M

llvm::MCSymbol* getCFIPersonalitySymbol(
    const llvm::GlobalValue* GV,
    const llvm::TargetMachine& TM,
    llvm::MachineModuleInfo* MMI) const

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:146

Parameters

const llvm::GlobalValue* GV
const llvm::TargetMachine& TM
llvm::MachineModuleInfo* MMI

llvm::MCSection* getExplicitSectionGlobal(
    const llvm::GlobalObject* GO,
    llvm::SectionKind Kind,
    const llvm::TargetMachine& TM) const

Description

Targets should implement this method to assign a section to globals with an explicit section specfied. The implementation of this method can assume that GO->hasSection() is true.

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:131

Parameters

const llvm::GlobalObject* GO
llvm::SectionKind Kind
const llvm::TargetMachine& TM

const llvm::MCExpr* getIndirectSymViaGOTPCRel(
    const llvm::GlobalValue* GV,
    const llvm::MCSymbol* Sym,
    const llvm::MCValue& MV,
    int64_t Offset,
    llvm::MachineModuleInfo* MMI,
    llvm::MCStreamer& Streamer) const

Description

Get MachO PC relative GOT entry relocation

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:151

Parameters

const llvm::GlobalValue* GV
const llvm::MCSymbol* Sym
const llvm::MCValue& MV
int64_t Offset
llvm::MachineModuleInfo* MMI
llvm::MCStreamer& Streamer

void getNameWithPrefix(
    SmallVectorImpl<char>& OutName,
    const llvm::GlobalValue* GV,
    const llvm::TargetMachine& TM) const

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:157

Parameters

SmallVectorImpl<char>& OutName
const llvm::GlobalValue* GV
const llvm::TargetMachine& TM

llvm::MCSection* getSectionForConstant(
    const llvm::DataLayout& DL,
    llvm::SectionKind Kind,
    const llvm::Constant* C,
    llvm::Align& Alignment) const

Description

Given a constant with the SectionKind, return a section that it should be placed in.

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:134

Parameters

const llvm::DataLayout& DL
llvm::SectionKind Kind
const llvm::Constant* C
llvm::Align& Alignment

llvm::MCSection* getStaticDtorSection(
    unsigned int Priority,
    const llvm::MCSymbol* KeySym) const

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:122

Parameters

unsigned int Priority
const llvm::MCSymbol* KeySym

const llvm::MCExpr* getTTypeGlobalReference(
    const llvm::GlobalValue* GV,
    unsigned int Encoding,
    const llvm::TargetMachine& TM,
    llvm::MachineModuleInfo* MMI,
    llvm::MCStreamer& Streamer) const

Description

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

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:139

Parameters

const llvm::GlobalValue* GV
unsigned int Encoding
const llvm::TargetMachine& TM
llvm::MachineModuleInfo* MMI
llvm::MCStreamer& Streamer

~TargetLoweringObjectFileMachO()

Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:118