class TargetLoweringObjectFileELF

Declaration

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

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

Inherits from: TargetLoweringObjectFile

Member Variables

private bool UseInitArray = false
private unsigned int NextUniqueID = 1
private SmallPtrSet<llvm::GlobalObject*, 2> Used
protected MCSymbolRefExpr::VariantKind PLTRelativeVariantKind = MCSymbolRefExpr::VK_None

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

Parameters

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

void InitializeELF(bool UseInitArray_)

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

Parameters

bool UseInitArray_

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

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

Parameters

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

TargetLoweringObjectFileELF()

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

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

Description

Emit Obj-C garbage collection and linker options.

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

Parameters

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

void emitPersonalityValue(
    llvm::MCStreamer& Streamer,
    const llvm::DataLayout& DL,
    const llvm::MCSymbol* Sym) const

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

Parameters

llvm::MCStreamer& Streamer
const llvm::DataLayout& DL
const llvm::MCSymbol* Sym

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

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

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

Parameters

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

void getModuleMetadata(llvm::Module& M)

Description

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

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

Parameters

llvm::Module& M

llvm::MCSection* getSectionForCommandLines() const

Description

If supported, return the section to use for the llvm.commandline metadata. Otherwise, return nullptr.

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

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

Parameters

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

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

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

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

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

Parameters

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

llvm::MCSection* getSectionForMachineBasicBlock(
    const llvm::Function& F,
    const llvm::MachineBasicBlock& MBB,
    const llvm::TargetMachine& TM) const

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

Parameters

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

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

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

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

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

Return an MCExpr to use for a reference to the specified type info global variable from exception handling information.

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

Parameters

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

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

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

Parameters

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

const llvm::MCExpr* lowerDSOLocalEquivalent(
    const llvm::DSOLocalEquivalent* Equiv,
    const llvm::TargetMachine& TM) const

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

Parameters

const llvm::DSOLocalEquivalent* Equiv
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:105

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

Parameters

bool UsesLabelDifference
const llvm::Function& F

~TargetLoweringObjectFileELF()

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