class TargetLoweringObjectFileCOFF

Declaration

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

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

Inherits from: TargetLoweringObjectFile

Member Variables

private unsigned int NextUniqueID = 0
private const llvm::TargetMachine* TM = nullptr

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 llvm::MCSection * SelectSectionForGlobal(const llvm::GlobalObject * GO, llvm::SectionKind Kind, const llvm::TargetMachine & TM) const
  • private void emitLinkerDirectives(llvm::MCStreamer & Streamer, llvm::Module & M) const
  • public void emitModuleMetadata(llvm::MCStreamer & Streamer, llvm::Module & M) const
  • public llvm::MCSection * getExplicitSectionGlobal(const llvm::GlobalObject * GO, llvm::SectionKind Kind, const llvm::TargetMachine & TM) const
  • public void getNameWithPrefix(SmallVectorImpl<char> & OutName, const llvm::GlobalValue * GV, const llvm::TargetMachine & TM) 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 * 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 * lowerRelativeReference(const llvm::GlobalValue * LHS, const llvm::GlobalValue * RHS, const llvm::TargetMachine & TM) const
  • public ~TargetLoweringObjectFileCOFF()

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

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

Parameters

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

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

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

Parameters

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

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

Parameters

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

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

Parameters

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

void getNameWithPrefix(
    SmallVectorImpl<char>& OutName,
    const llvm::GlobalValue* GV,
    const llvm::TargetMachine& TM) const

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

Parameters

SmallVectorImpl<char>& OutName
const llvm::GlobalValue* GV
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 mergeable constant with the specified size and relocation information, return a section that it should be placed in.

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

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

Parameters

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

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

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

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

Parameters

unsigned int Priority
const llvm::MCSymbol* KeySym

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

Parameters

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

~TargetLoweringObjectFileCOFF()

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