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
- public void Initialize(llvm::MCContext & Ctx, const llvm::TargetMachine & TM)
- public void InitializeELF(bool UseInitArray_)
- public llvm::MCSection * SelectSectionForGlobal(const llvm::GlobalObject * GO, llvm::SectionKind Kind, const llvm::TargetMachine & TM) const
- public TargetLoweringObjectFileELF()
- public void emitModuleMetadata(llvm::MCStreamer & Streamer, llvm::Module & M) const
- public void emitPersonalityValue(llvm::MCStreamer & Streamer, const llvm::DataLayout & DL, const llvm::MCSymbol * Sym) 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 void getModuleMetadata(llvm::Module & M)
- public llvm::MCSection * getSectionForCommandLines() const
- public llvm::MCSection * getSectionForConstant(const llvm::DataLayout & DL, llvm::SectionKind Kind, const llvm::Constant * C, llvm::Align & Alignment) const
- public llvm::MCSection * getSectionForJumpTable(const llvm::Function & F, const llvm::TargetMachine & TM) const
- public llvm::MCSection * getSectionForLSDA(const llvm::Function & F, const llvm::MCSymbol & FnSym, const llvm::TargetMachine & TM) const
- public llvm::MCSection * getSectionForMachineBasicBlock(const llvm::Function & F, const llvm::MachineBasicBlock & MBB, const llvm::TargetMachine & TM) const
- public llvm::MCSection * getStaticCtorSection(unsigned int Priority, const llvm::MCSymbol * KeySym) 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 llvm::MCSection * getUniqueSectionForFunction(const llvm::Function & F, const llvm::TargetMachine & TM) const
- public const llvm::MCExpr * lowerDSOLocalEquivalent(const llvm::DSOLocalEquivalent * Equiv, const llvm::TargetMachine & TM) const
- public const llvm::MCExpr * lowerRelativeReference(const llvm::GlobalValue * LHS, const llvm::GlobalValue * RHS, const llvm::TargetMachine & TM) const
- public bool shouldPutJumpTableInFunctionSection(bool UsesLabelDifference, const llvm::Function & F) const
- public ~TargetLoweringObjectFileELF()
Inherited from TargetLoweringObjectFile:
- public Initialize
- public SectionForGlobal
- public SectionForGlobal
- protected SelectSectionForGlobal
- public emitCGProfileMetadata
- public emitModuleMetadata
- public emitPersonalityValue
- public getCFIPersonalitySymbol
- public getCallSiteEncoding
- public getDebugThreadLocalSymbol
- public getExplicitSectionGlobal
- public getFunctionEntryPointSymbol
- public getIndirectSymViaGOTPCRel
- public getIndirectSymViaRWPI
- public getKindForGlobal
- public getLSDAEncoding
- public getMangler
- public getModuleMetadata
- public getNameWithPrefix
- public getPersonalityEncoding
- public getSectionForCommandLines
- public getSectionForConstant
- public getSectionForExternalReference
- public getSectionForFunctionDescriptor
- public getSectionForJumpTable
- public getSectionForLSDA
- public getSectionForMachineBasicBlock
- public getSectionForTOCEntry
- public getStaticBase
- public getStaticCtorSection
- public getStaticDtorSection
- public getSymbolWithGlobalValueBase
- public getTTypeEncoding
- public getTTypeGlobalReference
- public getTTypeReference
- public getTargetSymbol
- public getUniqueSectionForFunction
- public lowerDSOLocalEquivalent
- public lowerRelativeReference
- public shouldPutJumpTableInFunctionSection
- public supportDSOLocalEquivalentLowering
- public supportDebugThreadLocalLocation
- public supportGOTPCRelWithOffset
- public supportIndirectSymViaGOTPCRel
Inherited from MCObjectFileInfo:
- public getAddrSigSection
- public getBBAddrMapSection
- public getBSSSection
- public getCOFFDebugSymbolsSection
- public getCOFFDebugTypesSection
- public getCOFFGlobalTypeHashesSection
- public getCStringSection
- public getCommDirectiveSupportsAlignment
- public getCompactUnwindDwarfEHFrameOnly
- public getCompactUnwindSection
- public getConstDataCoalSection
- public getConstDataSection
- public getConstTextCoalSection
- public getContext
- public getDarwinTargetVariantSDKVersion
- public getDarwinTargetVariantTriple
- public getDataBSSSection
- public getDataCoalSection
- public getDataCommonSection
- public getDataRelROSection
- public getDataSection
- public getDrectveSection
- public getDwarfARangesSection
- public getDwarfAbbrevDWOSection
- public getDwarfAbbrevSection
- public getDwarfAccelNamesSection
- public getDwarfAccelNamespaceSection
- public getDwarfAccelObjCSection
- public getDwarfAccelTypesSection
- public getDwarfAddrSection
- public getDwarfCUIndexSection
- public getDwarfDebugInlineSection
- public getDwarfDebugNamesSection
- public getDwarfFrameSection
- public getDwarfGnuPubNamesSection
- public getDwarfGnuPubTypesSection
- public getDwarfInfoDWOSection
- public getDwarfInfoSection
- public getDwarfInfoSection
- public getDwarfLineDWOSection
- public getDwarfLineSection
- public getDwarfLineStrSection
- public getDwarfLocDWOSection
- public getDwarfLocSection
- public getDwarfLoclistsDWOSection
- public getDwarfLoclistsSection
- public getDwarfMacinfoDWOSection
- public getDwarfMacinfoSection
- public getDwarfMacroDWOSection
- public getDwarfMacroSection
- public getDwarfPubNamesSection
- public getDwarfPubTypesSection
- public getDwarfRangesSection
- public getDwarfRnglistsDWOSection
- public getDwarfRnglistsSection
- public getDwarfStrDWOSection
- public getDwarfStrOffDWOSection
- public getDwarfStrOffSection
- public getDwarfStrSection
- public getDwarfSwiftASTSection
- public getDwarfTUIndexSection
- public getDwarfTypesDWOSection
- public getDwarfTypesSection
- public getEHFrameSection
- public getEightByteConstantSection
- public getFDEEncoding
- public getFaultMapSection
- public getFourByteConstantSection
- public getGEHContSection
- public getGFIDsSection
- public getGIATsSection
- public getGLJMPSection
- public getLSDASection
- public getLazySymbolPointerSection
- public getMergeableConst16Section
- public getMergeableConst32Section
- public getMergeableConst4Section
- public getMergeableConst8Section
- public getNonLazySymbolPointerSection
- public getOmitDwarfIfHaveCompactUnwind
- public getPDataSection
- public getPPA1Section
- public getPseudoProbeDescSection
- public getPseudoProbeSection
- public getReadOnlySection
- public getRemarksSection
- public getSDKVersion
- public getSXDataSection
- public getSixteenByteConstantSection
- public getStackMapSection
- public getStackSizesSection
- public getSupportsCompactUnwindWithoutEHFrame
- public getSupportsWeakOmittedEHFrame
- public getSwift5ReflectionSection
- public getTLSBSSSection
- public getTLSDataSection
- public getTLSExtraDataSection
- public getTLSTLVSection
- public getTLSThreadInitSection
- public getTOCBaseSection
- public getTextCoalSection
- public getTextSection
- public getTextSectionAlignment
- public getThreadLocalPointerSection
- public getUStringSection
- public getXDataSection
- public initMCObjectFileInfo
- public isPositionIndependent
- public setDarwinTargetVariantSDKVersion
- public setDarwinTargetVariantTriple
- public setSDKVersion
Methods
¶void Initialize(llvm::MCContext& Ctx,
const llvm::TargetMachine& TM)
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_)
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
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()
TargetLoweringObjectFileELF()
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:44
¶void emitModuleMetadata(
llvm::MCStreamer& Streamer,
llvm::Module& M) const
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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()
~TargetLoweringObjectFileELF()
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:45