LLVM: llvm::TargetLoweringObjectFile Class Reference (original) (raw)

#include "[llvm/Target/TargetLoweringObjectFile.h](TargetLoweringObjectFile%5F8h%5Fsource.html)"

Public Member Functions
TargetLoweringObjectFile ()=default
TargetLoweringObjectFile (const TargetLoweringObjectFile &)=delete
TargetLoweringObjectFile & operator= (const TargetLoweringObjectFile &)=delete
virtual ~TargetLoweringObjectFile ()
Mangler & getMangler () const
virtual void Initialize (MCContext &ctx, const TargetMachine &TM)
This method must be called before any actual lowering is done.
virtual void emitPersonalityValue (MCStreamer &Streamer, const DataLayout &TM, const MCSymbol *Sym, const MachineModuleInfo *MMI) const
virtual void emitModuleMetadata (MCStreamer &Streamer, Module &M) const
Emit the module-level metadata that the platform cares about.
void emitCGProfileMetadata (MCStreamer &Streamer, Module &M) const
Emit Call Graph Profile metadata.
virtual void emitLinkerDirectives (MCStreamer &Streamer, Module &M) const
Process linker options metadata and emit platform-specific bits.
virtual void getModuleMetadata (Module &M)
Get the module-level metadata that the platform cares about.
virtual MCSection * getSectionForConstant (const DataLayout &DL, SectionKind Kind, const Constant *C, Align &Alignment) const
Given a constant with the SectionKind, return a section that it should be placed in.
virtual MCSection * getSectionForMachineBasicBlock (const Function &F, const MachineBasicBlock &MBB, const TargetMachine &TM) const
virtual MCSection * getUniqueSectionForFunction (const Function &F, const TargetMachine &TM) const
MCSection * SectionForGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const
This method computes the appropriate section to emit the specified global variable or function definition.
MCSection * SectionForGlobal (const GlobalObject *GO, const TargetMachine &TM) const
This method computes the appropriate section to emit the specified global variable or function definition.
virtual void getNameWithPrefix (SmallVectorImpl< char > &OutName, const GlobalValue *GV, const TargetMachine &TM) const
virtual MCSection * getSectionForJumpTable (const Function &F, const TargetMachine &TM) const
virtual MCSection * getSectionForLSDA (const Function &, const MCSymbol &, const TargetMachine &) const
virtual bool shouldPutJumpTableInFunctionSection (bool UsesLabelDifference, const Function &F) const
virtual MCSection * getExplicitSectionGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const =0
Targets should implement this method to assign a section to globals with an explicit section specfied.
virtual const MCExpr * getTTypeGlobalReference (const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM, MachineModuleInfo *MMI, MCStreamer &Streamer) const
Return an MCExpr to use for a reference to the specified global variable from exception handling information.
MCSymbol * getSymbolWithGlobalValueBase (const GlobalValue *GV, StringRef Suffix, const TargetMachine &TM) const
Return the MCSymbol for a private symbol with global value name as its base, with the specified suffix.
virtual MCSymbol * getCFIPersonalitySymbol (const GlobalValue *GV, const TargetMachine &TM, MachineModuleInfo *MMI) const
unsigned getPersonalityEncoding () const
unsigned getLSDAEncoding () const
unsigned getTTypeEncoding () const
unsigned getCallSiteEncoding () const
const MCExpr * getTTypeReference (const MCSymbolRefExpr *Sym, unsigned Encoding, MCStreamer &Streamer) const
virtual MCSection * getStaticCtorSection (unsigned Priority, const MCSymbol *KeySym) const
virtual MCSection * getStaticDtorSection (unsigned Priority, const MCSymbol *KeySym) const
virtual const MCExpr * getDebugThreadLocalSymbol (const MCSymbol *Sym) const
Create a symbol reference to describe the given TLS variable when emitting the address in debug info.
virtual const MCExpr * lowerRelativeReference (const GlobalValue *LHS, const GlobalValue *RHS, const TargetMachine &TM) const
bool supportDSOLocalEquivalentLowering () const
Target supports a native lowering of a dso_local_equivalent constant without needing to replace it with equivalent IR.
virtual const MCExpr * lowerDSOLocalEquivalent (const DSOLocalEquivalent *Equiv, const TargetMachine &TM) const
bool supportIndirectSymViaGOTPCRel () const
Target supports replacing a data "PC"-relative access to a symbol through another symbol, by accessing the later via a GOT entry instead?
bool supportGOTPCRelWithOffset () const
Target GOT "PC"-relative relocation supports encoding an additional binary expression with an offset?
bool supportDebugThreadLocalLocation () const
Target supports TLS offset relocation in debug section?
virtual MCRegister getStaticBase () const
Returns the register used as static base in RWPI variants.
virtual const MCExpr * getIndirectSymViaRWPI (const MCSymbol *Sym) const
Get the target specific RWPI relocation.
virtual const MCExpr * getIndirectSymViaGOTPCRel (const GlobalValue *GV, const MCSymbol *Sym, const MCValue &MV, int64_t Offset, MachineModuleInfo *MMI, MCStreamer &Streamer) const
Get the target specific PC relative GOT entry relocation.
virtual MCSection * getSectionForCommandLines () const
If supported, return the section to use for the llvm.commandline metadata.
virtual MCSection * getSectionForFunctionDescriptor (const Function *F, const TargetMachine &TM) const
On targets that use separate function descriptor symbols, return a section for the descriptor given its symbol.
virtual MCSection * getSectionForTOCEntry (const MCSymbol *S, const TargetMachine &TM) const
On targets that support TOC entries, return a section for the entry given the symbol it refers to.
virtual MCSection * getSectionForExternalReference (const GlobalObject *GO, const TargetMachine &TM) const
On targets that associate external references with a section, return such a section for the given external global.
virtual MCSymbol * getTargetSymbol (const GlobalValue *GV, const TargetMachine &TM) const
Targets that have a special convention for their symbols could use this hook to return a specialized symbol.
virtual MCSymbol * getFunctionEntryPointSymbol (const GlobalValue *Func, const TargetMachine &TM) const
If supported, return the function entry point symbol.
- Public Member Functions inherited from llvm::MCObjectFileInfo
void initMCObjectFileInfo (MCContext &MCCtx, bool PIC, bool LargeCodeModel=false)
virtual ~MCObjectFileInfo ()
MCContext & getContext () const
bool getSupportsWeakOmittedEHFrame () const
bool getSupportsCompactUnwindWithoutEHFrame () const
bool getOmitDwarfIfHaveCompactUnwind () const
unsigned getFDEEncoding () const
unsigned getCompactUnwindDwarfEHFrameOnly () const
virtual unsigned getTextSectionAlignment () const
MCSection * getTextSection () const
MCSection * getDataSection () const
MCSection * getBSSSection () const
MCSection * getReadOnlySection () const
MCSection * getLSDASection () const
MCSection * getImportCallSection () const
MCSection * getCompactUnwindSection () const
MCSection * getDwarfAbbrevSection () const
MCSection * getDwarfInfoSection () const
MCSection * getDwarfInfoSection (uint64_t Hash) const
MCSection * getDwarfLineSection () const
MCSection * getDwarfLineStrSection () const
MCSection * getDwarfFrameSection () const
MCSection * getDwarfPubNamesSection () const
MCSection * getDwarfPubTypesSection () const
MCSection * getDwarfGnuPubNamesSection () const
MCSection * getDwarfGnuPubTypesSection () const
const MCSection * getDwarfDebugInlineSection () const
MCSection * getDwarfStrSection () const
MCSection * getDwarfLocSection () const
MCSection * getDwarfARangesSection () const
MCSection * getDwarfRangesSection () const
MCSection * getDwarfRnglistsSection () const
MCSection * getDwarfLoclistsSection () const
MCSection * getDwarfMacinfoSection () const
MCSection * getDwarfMacroSection () const
MCSection * getDwarfDebugNamesSection () const
MCSection * getDwarfAccelNamesSection () const
MCSection * getDwarfAccelObjCSection () const
MCSection * getDwarfAccelNamespaceSection () const
MCSection * getDwarfAccelTypesSection () const
MCSection * getDwarfInfoDWOSection () const
MCSection * getDwarfTypesSection (uint64_t Hash) const
MCSection * getDwarfTypesDWOSection () const
MCSection * getDwarfAbbrevDWOSection () const
MCSection * getDwarfStrDWOSection () const
MCSection * getDwarfLineDWOSection () const
MCSection * getDwarfLocDWOSection () const
MCSection * getDwarfStrOffDWOSection () const
MCSection * getDwarfStrOffSection () const
MCSection * getDwarfAddrSection () const
MCSection * getDwarfRnglistsDWOSection () const
MCSection * getDwarfLoclistsDWOSection () const
MCSection * getDwarfMacroDWOSection () const
MCSection * getDwarfMacinfoDWOSection () const
MCSection * getDwarfCUIndexSection () const
MCSection * getDwarfTUIndexSection () const
MCSection * getDwarfSwiftASTSection () const
MCSection * getCOFFDebugSymbolsSection () const
MCSection * getCOFFDebugTypesSection () const
MCSection * getCOFFGlobalTypeHashesSection () const
MCSection * getTLSExtraDataSection () const
const MCSection * getTLSDataSection () const
MCSection * getTLSBSSSection () const
MCSection * getStackMapSection () const
MCSection * getFaultMapSection () const
MCSection * getRemarksSection () const
MCSection * getStackSizesSection (const MCSection &TextSec) const
MCSection * getBBAddrMapSection (const MCSection &TextSec) const
MCSection * getKCFITrapSection (const MCSection &TextSec) const
MCSection * getPseudoProbeSection (const MCSection &TextSec) const
MCSection * getPseudoProbeDescSection (StringRef FuncName) const
MCSection * getLLVMStatsSection () const
MCSection * getPCSection (StringRef Name, const MCSection *TextSec) const
MCSection * getDataRelROSection () const
const MCSection * getMergeableConst4Section () const
const MCSection * getMergeableConst8Section () const
const MCSection * getMergeableConst16Section () const
const MCSection * getMergeableConst32Section () const
const MCSection * getTLSTLVSection () const
const MCSection * getTLSThreadInitSection () const
const MCSection * getCStringSection () const
const MCSection * getUStringSection () const
MCSection * getTextCoalSection () const
const MCSection * getConstTextCoalSection () const
const MCSection * getConstDataSection () const
const MCSection * getDataCoalSection () const
const MCSection * getConstDataCoalSection () const
const MCSection * getDataCommonSection () const
MCSection * getDataBSSSection () const
const MCSection * getFourByteConstantSection () const
const MCSection * getEightByteConstantSection () const
const MCSection * getSixteenByteConstantSection () const
MCSection * getLazySymbolPointerSection () const
MCSection * getNonLazySymbolPointerSection () const
MCSection * getThreadLocalPointerSection () const
MCSection * getAddrSigSection () const
MCSection * getDrectveSection () const
MCSection * getPDataSection () const
MCSection * getXDataSection () const
MCSection * getSXDataSection () const
MCSection * getGEHContSection () const
MCSection * getGFIDsSection () const
MCSection * getGIATsSection () const
MCSection * getGLJMPSection () const
MCSection * getPPA1Section () const
MCSection * getPPA2Section () const
MCSection * getPPA2ListSection () const
MCSection * getADASection () const
MCSection * getIDRLSection () const
MCSection * getTOCBaseSection () const
MCSection * getEHFrameSection () const
bool isPositionIndependent () const
MCSection * getSwift5ReflectionSection (llvm::binaryformat::Swift5ReflectionSectionKind ReflSectionKind)
Protected Attributes
bool SupportIndirectSymViaGOTPCRel = false
bool SupportGOTPCRelWithOffset = true
bool SupportDebugThreadLocalLocation = true
bool SupportDSOLocalEquivalentLowering = false
unsigned PersonalityEncoding = 0
PersonalityEncoding, LSDAEncoding, TTypeEncoding - Some encoding values for EH.
unsigned LSDAEncoding = 0
unsigned TTypeEncoding = 0
unsigned CallSiteEncoding = 0
MCSection * StaticCtorSection = nullptr
This section contains the static constructor pointer list.
MCSection * StaticDtorSection = nullptr
This section contains the static destructor pointer list.
const TargetMachine * TM = nullptr
- Protected Attributes inherited from llvm::MCObjectFileInfo
bool SupportsWeakOmittedEHFrame = false
True if target object file supports a weak_definition of constant 0 for an omitted EH frame.
bool SupportsCompactUnwindWithoutEHFrame = false
True if the target object file supports emitting a compact unwind section without an associated EH frame section.
bool OmitDwarfIfHaveCompactUnwind = false
OmitDwarfIfHaveCompactUnwind - True if the target object file supports having some functions with compact unwind and other with dwarf unwind.
unsigned FDECFIEncoding = 0
FDE CFI encoding.
unsigned CompactUnwindDwarfEHFrameOnly = 0
Compact unwind encoding indicating that we should emit only an EH frame.
MCSection * TextSection = nullptr
Section directive for standard text.
MCSection * DataSection = nullptr
Section directive for standard data.
MCSection * BSSSection = nullptr
Section that is default initialized to zero.
MCSection * ReadOnlySection = nullptr
Section that is readonly and can contain arbitrary initialized data.
MCSection * LSDASection = nullptr
If exception handling is supported by the target, this is the section the Language Specific Data Area information is emitted to.
MCSection * CompactUnwindSection = nullptr
If exception handling is supported by the target and the target can support a compact representation of the CIE and FDE, this is the section to emit them into.
MCSection * ImportCallSection = nullptr
If import call optimization is supported by the target, this is the section to emit import call data to.
MCSection * DwarfAbbrevSection = nullptr
MCSection * DwarfInfoSection = nullptr
MCSection * DwarfLineSection = nullptr
MCSection * DwarfLineStrSection = nullptr
MCSection * DwarfFrameSection = nullptr
MCSection * DwarfPubTypesSection = nullptr
const MCSection * DwarfDebugInlineSection = nullptr
MCSection * DwarfStrSection = nullptr
MCSection * DwarfLocSection = nullptr
MCSection * DwarfARangesSection = nullptr
MCSection * DwarfRangesSection = nullptr
MCSection * DwarfMacinfoSection = nullptr
MCSection * DwarfMacroSection = nullptr
MCSection * DwarfPubNamesSection = nullptr
MCSection * DwarfDebugNamesSection = nullptr
Accelerator table sections.
MCSection * DwarfAccelNamesSection = nullptr
MCSection * DwarfAccelObjCSection = nullptr
MCSection * DwarfAccelNamespaceSection = nullptr
MCSection * DwarfAccelTypesSection = nullptr
MCSection * DwarfInfoDWOSection = nullptr
MCSection * DwarfTypesDWOSection = nullptr
MCSection * DwarfAbbrevDWOSection = nullptr
MCSection * DwarfStrDWOSection = nullptr
MCSection * DwarfLineDWOSection = nullptr
MCSection * DwarfLocDWOSection = nullptr
MCSection * DwarfStrOffDWOSection = nullptr
MCSection * DwarfMacinfoDWOSection = nullptr
MCSection * DwarfMacroDWOSection = nullptr
MCSection * DwarfStrOffSection = nullptr
The DWARF v5 string offset and address table sections.
MCSection * DwarfAddrSection = nullptr
MCSection * DwarfRnglistsSection = nullptr
The DWARF v5 range list section.
MCSection * DwarfLoclistsSection = nullptr
The DWARF v5 locations list section.
MCSection * DwarfRnglistsDWOSection = nullptr
The DWARF v5 range and location list sections for fission.
MCSection * DwarfLoclistsDWOSection = nullptr
MCSection * DwarfCUIndexSection = nullptr
MCSection * DwarfTUIndexSection = nullptr
MCSection * DwarfGnuPubNamesSection = nullptr
Section for newer gnu pubnames.
MCSection * DwarfGnuPubTypesSection = nullptr
Section for newer gnu pubtypes.
MCSection * DwarfSwiftASTSection = nullptr
MCSection * COFFDebugSymbolsSection = nullptr
MCSection * COFFDebugTypesSection = nullptr
MCSection * COFFGlobalTypeHashesSection = nullptr
MCSection * TLSExtraDataSection = nullptr
Extra TLS Variable Data section.
MCSection * TLSDataSection = nullptr
Section directive for Thread Local data. ELF, MachO, COFF, and Wasm.
MCSection * TLSBSSSection = nullptr
Section directive for Thread Local uninitialized data.
MCSection * StackMapSection = nullptr
StackMap section.
MCSection * FaultMapSection = nullptr
FaultMap section.
MCSection * RemarksSection = nullptr
Remarks section.
MCSection * EHFrameSection = nullptr
EH frame section.
MCSection * StackSizesSection = nullptr
Section containing metadata on function stack sizes.
MCSection * PseudoProbeSection = nullptr
Section for pseudo probe information used by AutoFDO.
MCSection * PseudoProbeDescSection = nullptr
MCSection * LLVMStatsSection = nullptr
MCSection * DataRelROSection = nullptr
MCSection * MergeableConst4Section = nullptr
MCSection * MergeableConst8Section = nullptr
MCSection * MergeableConst16Section = nullptr
MCSection * MergeableConst32Section = nullptr
MCSection * TLSTLVSection = nullptr
Section for thread local structure information.
const MCSection * TLSThreadInitSection = nullptr
Section for thread local data initialization functions.
MCSection * CStringSection = nullptr
MCSection * UStringSection = nullptr
MCSection * TextCoalSection = nullptr
MCSection * ConstTextCoalSection = nullptr
MCSection * ConstDataSection = nullptr
MCSection * DataCoalSection = nullptr
MCSection * ConstDataCoalSection = nullptr
MCSection * DataCommonSection = nullptr
MCSection * DataBSSSection = nullptr
MCSection * FourByteConstantSection = nullptr
MCSection * EightByteConstantSection = nullptr
MCSection * SixteenByteConstantSection = nullptr
MCSection * LazySymbolPointerSection = nullptr
MCSection * NonLazySymbolPointerSection = nullptr
MCSection * ThreadLocalPointerSection = nullptr
MCSection * AddrSigSection = nullptr
MCSection * DrectveSection = nullptr
COFF specific sections.
MCSection * PDataSection = nullptr
MCSection * XDataSection = nullptr
MCSection * SXDataSection = nullptr
MCSection * GEHContSection = nullptr
MCSection * GFIDsSection = nullptr
MCSection * GIATsSection = nullptr
MCSection * GLJMPSection = nullptr
MCSection * PPA1Section = nullptr
MCSection * PPA2Section = nullptr
MCSection * PPA2ListSection = nullptr
MCSection * ADASection = nullptr
MCSection * IDRLSection = nullptr
MCSection * TOCBaseSection = nullptr
MCSection * ReadOnly8Section = nullptr
MCSection * ReadOnly16Section = nullptr
std::array< MCSection *, binaryformat::Swift5ReflectionSectionKind::last > Swift5ReflectionSections = {}

Definition at line 45 of file TargetLoweringObjectFile.h.

llvm::TargetLoweringObjectFile::TargetLoweringObjectFile ( ) default

TargetLoweringObjectFile() [2/2]

~TargetLoweringObjectFile()

TargetLoweringObjectFile::~TargetLoweringObjectFile ( ) virtual

emitCGProfileMetadata()

void TargetLoweringObjectFile::emitCGProfileMetadata ( MCStreamer & Streamer,
Module & M
) const

Emit Call Graph Profile metadata.

Definition at line 148 of file TargetLoweringObjectFile.cpp.

References llvm::CallingConv::C, llvm::MCSymbolRefExpr::create(), llvm::MCStreamer::emitCGProfileEntry(), F, From, llvm::MCObjectFileInfo::getContext(), llvm::MDNode::getOperand(), llvm::TargetMachine::getSymbol(), llvm::MDNode::operands(), TM, and llvm::MCSymbolRefExpr::VK_None.

Referenced by llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::TargetLoweringObjectFileMachO::emitModuleMetadata(), and llvm::TargetLoweringObjectFileCOFF::emitModuleMetadata().

emitLinkerDirectives()

virtual void llvm::TargetLoweringObjectFile::emitLinkerDirectives ( MCStreamer & Streamer, Module & M ) const inlinevirtual

emitModuleMetadata()

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

emitPersonalityValue()

getCallSiteEncoding()

unsigned TargetLoweringObjectFile::getCallSiteEncoding ( ) const

getCFIPersonalitySymbol()

getDebugThreadLocalSymbol()

getExplicitSectionGlobal()

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.

Implemented in llvm::TargetLoweringObjectFileELF, llvm::TargetLoweringObjectFileMachO, llvm::TargetLoweringObjectFileCOFF, llvm::TargetLoweringObjectFileWasm, llvm::TargetLoweringObjectFileXCOFF, llvm::TargetLoweringObjectFileGOFF, llvm::AMDGPUTargetObjectFile, llvm::ARMElfTargetObjectFile, DXILTargetObjectFile, llvm::HexagonTargetObjectFile, llvm::NVPTXTargetObjectFile, llvm::SPIRVTargetObjectFile, and llvm::XCoreTargetObjectFile.

Referenced by SectionForGlobal().

getFunctionEntryPointSymbol()

getIndirectSymViaGOTPCRel()

getIndirectSymViaRWPI()

virtual const MCExpr * llvm::TargetLoweringObjectFile::getIndirectSymViaRWPI ( const MCSymbol * Sym) const inlinevirtual

getKindForGlobal()

Classify the specified global variable into a set of target independent categories embodied in SectionKind.

getKindForGlobal - This is a top-level target-independent classifier for a global object.

Given a global variable and information from the TM, this function classifies the global in a target independent manner. This function may be overridden by the target implementation.

Definition at line 199 of file TargetLoweringObjectFile.cpp.

References assert(), llvm::CallingConv::C, llvm::SectionKind::getBSS(), llvm::SectionKind::getBSSExtern(), llvm::SectionKind::getBSSLocal(), llvm::SectionKind::getCommon(), llvm::SectionKind::getData(), llvm::SectionKind::getExclude(), llvm::SectionKind::getMergeable1ByteCString(), llvm::SectionKind::getMergeable2ByteCString(), llvm::SectionKind::getMergeable4ByteCString(), llvm::SectionKind::getMergeableConst16(), llvm::SectionKind::getMergeableConst32(), llvm::SectionKind::getMergeableConst4(), llvm::SectionKind::getMergeableConst8(), llvm::SectionKind::getReadOnly(), llvm::SectionKind::getReadOnlyWithRel(), llvm::TargetMachine::getRelocationModel(), llvm::SectionKind::getText(), llvm::SectionKind::getThreadBSS(), llvm::SectionKind::getThreadBSSLocal(), llvm::SectionKind::getThreadData(), llvm::GlobalValue::isDeclarationForLinker(), IsNullTerminatedString(), isSuitableForBSS(), llvm::TargetOptions::NoZerosInBSS, llvm::TargetMachine::Options, llvm::Reloc::ROPI, llvm::Reloc::ROPI_RWPI, llvm::Reloc::RWPI, llvm::Reloc::Static, and TM.

Referenced by llvm::DwarfCompileUnit::addLocationAttribute(), llvm::AsmPrinter::emitGlobalVariable(), llvm::TargetLoweringObjectFileMachO::getNameWithPrefix(), llvm::TargetLoweringObjectFileXCOFF::getTargetSymbol(), llvm::SystemZSubtarget::isAddressedViaADA(), llvm::LanaiTargetObjectFile::isGlobalInSmallSection(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), and SectionForGlobal().

getLSDAEncoding()

unsigned llvm::TargetLoweringObjectFile::getLSDAEncoding ( ) const inline

getMangler()

Mangler & llvm::TargetLoweringObjectFile::getMangler ( ) const inline

Definition at line 77 of file TargetLoweringObjectFile.h.

Referenced by llvm::TargetLoweringObjectFileCOFF::emitLinkerDirectives(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), llvm::AArch64MCInstLower::GetGlobalValueSymbol(), llvm::TargetLoweringObjectFileMachO::getNameWithPrefix(), llvm::TargetLoweringObjectFileCOFF::getNameWithPrefix(), llvm::AArch64_MachoTargetObjectFile::getNameWithPrefix(), llvm::TargetLoweringObjectFileELF::getSectionForJumpTable(), llvm::TargetMachine::getSymbol(), llvm::TargetLoweringObjectFileELF::getUniqueSectionForFunction(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(), and llvm::TargetLoweringObjectFileWasm::SelectSectionForGlobal().

getModuleMetadata()

virtual void llvm::TargetLoweringObjectFile::getModuleMetadata ( Module & M) inlinevirtual

getNameWithPrefix()

getPersonalityEncoding()

unsigned llvm::TargetLoweringObjectFile::getPersonalityEncoding ( ) const inline

getSectionForCommandLines()

virtual MCSection * llvm::TargetLoweringObjectFile::getSectionForCommandLines ( ) const inlinevirtual

getSectionForConstant()

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

Given a mergable constant with the specified size and relocation information, return a section that it should be placed in.

Reimplemented in llvm::TargetLoweringObjectFileELF, llvm::TargetLoweringObjectFileMachO, llvm::TargetLoweringObjectFileCOFF, llvm::TargetLoweringObjectFileXCOFF, llvm::LanaiTargetObjectFile, llvm::MipsTargetObjectFile, llvm::NVPTXTargetObjectFile, llvm::RISCVELFTargetObjectFile, llvm::SPIRVTargetObjectFile, and llvm::XCoreTargetObjectFile.

Definition at line 374 of file TargetLoweringObjectFile.cpp.

References llvm::MCObjectFileInfo::DataSection, and llvm::MCObjectFileInfo::ReadOnlySection.

Referenced by llvm::AsmPrinter::emitConstantPool(), llvm::X86AsmPrinter::emitEndOfAsmFile(), llvm::TargetLoweringObjectFileCOFF::getSectionForConstant(), and getSectionForJumpTable().

getSectionForExternalReference()

getSectionForFunctionDescriptor()

getSectionForJumpTable()

getSectionForLSDA()

getSectionForMachineBasicBlock()

getSectionForTOCEntry()

getStaticBase()

virtual MCRegister llvm::TargetLoweringObjectFile::getStaticBase ( ) const inlinevirtual

getStaticCtorSection()

getStaticDtorSection()

getSymbolWithGlobalValueBase()

Return the MCSymbol for a private symbol with global value name as its base, with the specified suffix.

Definition at line 127 of file TargetLoweringObjectFile.cpp.

References llvm::SmallString< InternalLen >::append(), assert(), llvm::StringRef::begin(), llvm::StringRef::empty(), llvm::StringRef::end(), llvm::MCObjectFileInfo::getContext(), llvm::GlobalValue::getDataLayout(), llvm::TargetMachine::getNameWithPrefix(), llvm::MCContext::getOrCreateSymbol(), llvm::DataLayout::getPrivateGlobalPrefix(), and TM.

Referenced by llvm::TargetLoweringObjectFileMachO::getCFIPersonalitySymbol(), llvm::AsmPrinter::getSymbolWithGlobalValueBase(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), and llvm::SparcELFTargetObjectFile::getTTypeGlobalReference().

getTargetSymbol()

getTTypeEncoding()

unsigned llvm::TargetLoweringObjectFile::getTTypeEncoding ( ) const inline

getTTypeGlobalReference()

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

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

Reimplemented in llvm::TargetLoweringObjectFileELF, llvm::TargetLoweringObjectFileMachO, llvm::AArch64_MachoTargetObjectFile, llvm::ARMElfTargetObjectFile, llvm::SparcELFTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.

Definition at line 397 of file TargetLoweringObjectFile.cpp.

References llvm::MCSymbolRefExpr::create(), llvm::MCObjectFileInfo::getContext(), llvm::TargetMachine::getSymbol(), getTTypeReference(), llvm::Ref, and TM.

Referenced by llvm::AsmPrinter::emitTTypeReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), and llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference().

getTTypeReference()

Definition at line 406 of file TargetLoweringObjectFile.cpp.

References llvm::MCSymbolRefExpr::create(), llvm::MCBinaryExpr::createSub(), llvm::MCContext::createTempSymbol(), llvm::dwarf::DW_EH_PE_absptr, llvm::dwarf::DW_EH_PE_pcrel, llvm::MCStreamer::emitLabel(), llvm::MCObjectFileInfo::getContext(), llvm::report_fatal_error(), and Sym.

Referenced by getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), and llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference().

getUniqueSectionForFunction()

Initialize()

This method must be called before any actual lowering is done.

Initialize - 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.

Reimplemented in llvm::TargetLoweringObjectFileELF, llvm::TargetLoweringObjectFileMachO, llvm::TargetLoweringObjectFileCOFF, llvm::TargetLoweringObjectFileXCOFF, llvm::ARMElfTargetObjectFile, llvm::AVRTargetObjectFile, llvm::CSKYELFTargetObjectFile, llvm::HexagonTargetObjectFile, llvm::LanaiTargetObjectFile, llvm::M68kELFTargetObjectFile, llvm::MipsTargetObjectFile, llvm::RISCVELFTargetObjectFile, llvm::SparcELFTargetObjectFile, llvm::SPIRVTargetObjectFile, llvm::WebAssemblyTargetObjectFile, and llvm::XCoreTargetObjectFile.

Definition at line 40 of file TargetLoweringObjectFile.cpp.

References CallSiteEncoding, llvm::dwarf::DW_EH_PE_absptr, llvm::dwarf::DW_EH_PE_uleb128, llvm::TargetMachine::getCodeModel(), llvm::MCObjectFileInfo::initMCObjectFileInfo(), llvm::TargetMachine::isPositionIndependent(), llvm::CodeModel::Large, LSDAEncoding, PersonalityEncoding, TM, and TTypeEncoding.

Referenced by llvm::TargetLoweringObjectFileELF::Initialize(), llvm::TargetLoweringObjectFileMachO::Initialize(), llvm::TargetLoweringObjectFileCOFF::Initialize(), llvm::TargetLoweringObjectFileXCOFF::Initialize(), llvm::SPIRVTargetObjectFile::Initialize(), and llvm::WebAssemblyTargetObjectFile::Initialize().

lowerDSOLocalEquivalent()

lowerRelativeReference()

operator=()

SectionForGlobal() [1/2]

SectionForGlobal() [2/2]

SelectSectionForGlobal()

Implemented in llvm::TargetLoweringObjectFileELF, llvm::TargetLoweringObjectFileMachO, llvm::TargetLoweringObjectFileCOFF, llvm::TargetLoweringObjectFileWasm, llvm::TargetLoweringObjectFileXCOFF, llvm::TargetLoweringObjectFileGOFF, llvm::AMDGPUTargetObjectFile, llvm::ARMElfTargetObjectFile, llvm::AVRTargetObjectFile, DXILTargetObjectFile, llvm::HexagonTargetObjectFile, llvm::LanaiTargetObjectFile, llvm::MipsTargetObjectFile, llvm::NVPTXTargetObjectFile, llvm::RISCVELFTargetObjectFile, llvm::SPIRVTargetObjectFile, and llvm::XCoreTargetObjectFile.

Referenced by SectionForGlobal().

shouldPutJumpTableInFunctionSection()

bool TargetLoweringObjectFile::shouldPutJumpTableInFunctionSection ( bool UsesLabelDifference, const Function & F ) const virtual

supportDebugThreadLocalLocation()

bool llvm::TargetLoweringObjectFile::supportDebugThreadLocalLocation ( ) const inline

supportDSOLocalEquivalentLowering()

bool llvm::TargetLoweringObjectFile::supportDSOLocalEquivalentLowering ( ) const inline

supportGOTPCRelWithOffset()

bool llvm::TargetLoweringObjectFile::supportGOTPCRelWithOffset ( ) const inline

supportIndirectSymViaGOTPCRel()

bool llvm::TargetLoweringObjectFile::supportIndirectSymViaGOTPCRel ( ) const inline

CallSiteEncoding

unsigned llvm::TargetLoweringObjectFile::CallSiteEncoding = 0 protected

LSDAEncoding

unsigned llvm::TargetLoweringObjectFile::LSDAEncoding = 0 protected

PersonalityEncoding

unsigned llvm::TargetLoweringObjectFile::PersonalityEncoding = 0 protected

StaticCtorSection

MCSection* llvm::TargetLoweringObjectFile::StaticCtorSection = nullptr protected

StaticDtorSection

MCSection* llvm::TargetLoweringObjectFile::StaticDtorSection = nullptr protected

SupportDebugThreadLocalLocation

bool llvm::TargetLoweringObjectFile::SupportDebugThreadLocalLocation = true protected

SupportDSOLocalEquivalentLowering

bool llvm::TargetLoweringObjectFile::SupportDSOLocalEquivalentLowering = false protected

SupportGOTPCRelWithOffset

bool llvm::TargetLoweringObjectFile::SupportGOTPCRelWithOffset = true protected

SupportIndirectSymViaGOTPCRel

bool llvm::TargetLoweringObjectFile::SupportIndirectSymViaGOTPCRel = false protected

TM

Definition at line 68 of file TargetLoweringObjectFile.h.

Referenced by emitCGProfileMetadata(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::AArch64_ELFTargetObjectFile::getAuthPtrSlotSymbol(), llvm::AArch64_MachoTargetObjectFile::getAuthPtrSlotSymbol(), getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileELF::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileMachO::getCFIPersonalitySymbol(), llvm::AArch64_MachoTargetObjectFile::getCFIPersonalitySymbol(), llvm::X86_64MachoTargetObjectFile::getCFIPersonalitySymbol(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileWasm::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileXCOFF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileGOFF::getExplicitSectionGlobal(), llvm::AMDGPUTargetObjectFile::getExplicitSectionGlobal(), llvm::ARMElfTargetObjectFile::getExplicitSectionGlobal(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileXCOFF::getFunctionEntryPointSymbol(), getKindForGlobal(), llvm::TargetLoweringObjectFileMachO::getNameWithPrefix(), llvm::TargetLoweringObjectFileXCOFF::getSectionForExternalReference(), llvm::TargetLoweringObjectFileXCOFF::getSectionForFunctionDescriptor(), llvm::TargetLoweringObjectFileELF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileXCOFF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileELF::getSectionForLSDA(), llvm::TargetLoweringObjectFileXCOFF::getSectionForLSDA(), llvm::TargetLoweringObjectFileELF::getSectionForMachineBasicBlock(), llvm::TargetLoweringObjectFileXCOFF::getSectionForTOCEntry(), getSymbolWithGlobalValueBase(), llvm::TargetLoweringObjectFileXCOFF::getTargetSymbol(), getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), llvm::AArch64_MachoTargetObjectFile::getTTypeGlobalReference(), llvm::ARMElfTargetObjectFile::getTTypeGlobalReference(), llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), llvm::X86_64MachoTargetObjectFile::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileELF::getUniqueSectionForFunction(), Initialize(), llvm::TargetLoweringObjectFileMachO::Initialize(), llvm::ARMElfTargetObjectFile::Initialize(), llvm::AVRTargetObjectFile::Initialize(), llvm::CSKYELFTargetObjectFile::Initialize(), llvm::HexagonTargetObjectFile::Initialize(), llvm::LanaiTargetObjectFile::Initialize(), llvm::RISCVELFTargetObjectFile::Initialize(), llvm::SparcELFTargetObjectFile::Initialize(), llvm::SPIRVTargetObjectFile::Initialize(), llvm::WebAssemblyTargetObjectFile::Initialize(), llvm::XCoreTargetObjectFile::Initialize(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), llvm::LanaiTargetObjectFile::isGlobalInSmallSection(), llvm::HexagonTargetObjectFile::isSmallDataEnabled(), llvm::TargetLoweringObjectFileELF::lowerDSOLocalEquivalent(), llvm::TargetLoweringObjectFileELF::lowerRelativeReference(), llvm::TargetLoweringObjectFileWasm::lowerRelativeReference(), SectionForGlobal(), llvm::TargetLoweringObjectFileELF::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileWasm::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileXCOFF::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileGOFF::SelectSectionForGlobal(), llvm::AMDGPUTargetObjectFile::SelectSectionForGlobal(), llvm::ARMElfTargetObjectFile::SelectSectionForGlobal(), llvm::AVRTargetObjectFile::SelectSectionForGlobal(), llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), llvm::LanaiTargetObjectFile::SelectSectionForGlobal(), llvm::RISCVELFTargetObjectFile::SelectSectionForGlobal(), and llvm::XCoreTargetObjectFile::SelectSectionForGlobal().

TTypeEncoding

unsigned llvm::TargetLoweringObjectFile::TTypeEncoding = 0 protected

The documentation for this class was generated from the following files: