class TargetLoweringObjectFileELF
Declaration
class TargetLoweringObjectFileELF : public TargetLoweringObjectFile { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:32
Inherits from: TargetLoweringObjectFile
Member Variables
- protected MCSymbolRefExpr::VariantKind PLTRelativeVariantKind = MCSymbolRefExpr::VK_None
- protected const llvm::TargetMachine* TM = nullptr
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 llvm::MCSection * getSectionForCommandLines() const
- public llvm::MCSection * getSectionForConstant(const llvm::DataLayout & DL, llvm::SectionKind Kind, const llvm::Constant * C, unsigned int & Align) const
- public llvm::MCSection * getSectionForJumpTable(const llvm::Function & F, 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 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()
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:45
Parameters
- llvm::MCContext& Ctx
- const llvm::TargetMachine& TM
¶void InitializeELF(bool UseInitArray_)
void InitializeELF(bool UseInitArray_)
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:84
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:62
Parameters
- const llvm::GlobalObject* GO
- llvm::SectionKind Kind
- const llvm::TargetMachine& TM
¶TargetLoweringObjectFileELF()
TargetLoweringObjectFileELF()
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:42
¶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:48
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:50
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:80
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:59
Parameters
- const llvm::GlobalObject* GO
- llvm::SectionKind Kind
- const llvm::TargetMachine& TM
¶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:94
¶llvm::MCSection* getSectionForConstant(
const llvm::DataLayout& DL,
llvm::SectionKind Kind,
const llvm::Constant* C,
unsigned int& Align) const
llvm::MCSection* getSectionForConstant(
const llvm::DataLayout& DL,
llvm::SectionKind Kind,
const llvm::Constant* C,
unsigned int& Align) 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:55
Parameters
- const llvm::DataLayout& DL
- llvm::SectionKind Kind
- const llvm::Constant* C
- unsigned int& Align
¶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:65
Parameters
- const llvm::Function& F
- 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:85
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:87
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:73
Parameters
- const llvm::GlobalValue* GV
- unsigned int Encoding
- const llvm::TargetMachine& TM
- llvm::MachineModuleInfo* MMI
- llvm::MCStreamer& Streamer
¶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:90
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:68
Parameters
- bool UsesLabelDifference
- const llvm::Function& F
¶~TargetLoweringObjectFileELF()
~TargetLoweringObjectFileELF()
Declared at: llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h:43