class TargetLoweringObjectFileXCOFF

Declaration

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

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

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

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:240

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:257

Parameters

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

static bool ShouldEmitEHBlock(
    const llvm::MachineFunction* MF)

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

Parameters

const llvm::MachineFunction* MF

static bool ShouldSetSSPCanaryBitInTB(
    const llvm::MachineFunction* MF)

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

Parameters

const llvm::MachineFunction* MF

TargetLoweringObjectFileXCOFF()

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

static llvm::MCSymbol* getEHInfoTableSymbol(
    const llvm::MachineFunction* MF)

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

Parameters

const llvm::MachineFunction* MF

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:245

Parameters

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

llvm::MCSymbol* getFunctionEntryPointSymbol(
    const llvm::GlobalValue* Func,
    const llvm::TargetMachine& TM) const

Description

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.

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

Parameters

const llvm::GlobalValue* Func
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:265

Parameters

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

llvm::MCSection* getSectionForExternalReference(
    const llvm::GlobalObject* GO,
    const llvm::TargetMachine& TM) const

Description

For external functions, this will always return a function descriptor csect.

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

Parameters

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

llvm::MCSection* getSectionForFunctionDescriptor(
    const llvm::Function* F,
    const llvm::TargetMachine& TM) const

Description

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

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

Parameters

const llvm::Function* F
const llvm::TargetMachine& TM

llvm::MCSection* getSectionForJumpTable(
    const llvm::Function& F,
    const llvm::TargetMachine& TM) const

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

Parameters

const llvm::Function& F
const llvm::TargetMachine& TM

llvm::MCSection* getSectionForLSDA(
    const llvm::Function& F,
    const llvm::MCSymbol& FnSym,
    const llvm::TargetMachine& TM) const

Description

For functions, this will return the LSDA section. If option -ffunction-sections is on, this will return a unique csect with the function name appended to .gcc_except_table as a suffix of the LSDA section name.

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

Parameters

const llvm::Function& F
const llvm::MCSymbol& FnSym
const llvm::TargetMachine& TM

llvm::MCSection* getSectionForTOCEntry(
    const llvm::MCSymbol* Sym,
    const llvm::TargetMachine& TM) const

Description

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.

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

Parameters

const llvm::MCSymbol* Sym
const llvm::TargetMachine& TM

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

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

Parameters

unsigned int Priority
const llvm::MCSymbol* KeySym

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

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

Parameters

unsigned int Priority
const llvm::MCSymbol* KeySym

static XCOFF::StorageClass
getStorageClassForGlobal(
    const llvm::GlobalValue* GV)

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

Parameters

const llvm::GlobalValue* GV

llvm::MCSymbol* getTargetSymbol(
    const llvm::GlobalValue* GV,
    const llvm::TargetMachine& TM) const

Description

For functions, this will always return a function descriptor symbol.

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

Parameters

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

const llvm::MCExpr* lowerRelativeReference(
    const llvm::GlobalValue* LHS,
    const llvm::GlobalValue* RHS,
    const llvm::TargetMachine& TM) const

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

Parameters

const llvm::GlobalValue* LHS
const llvm::GlobalValue* RHS
const llvm::TargetMachine& TM

bool shouldPutJumpTableInFunctionSection(
    bool UsesLabelDifference,
    const llvm::Function& F) const

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

Parameters

bool UsesLabelDifference
const llvm::Function& F

~TargetLoweringObjectFileXCOFF()

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