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

Public Member Functions

void

Initialize (MCContext &Ctx, const TargetMachine &TM) override

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

- Public Member Functions inherited from llvm::TargetLoweringObjectFileELF

TargetLoweringObjectFileELF ()

~TargetLoweringObjectFileELF () override=default

void

Initialize (MCContext &Ctx, const TargetMachine &TM) override

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

void

getModuleMetadata (Module &M) override

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

void

emitModuleMetadata (MCStreamer &Streamer, Module &M) const override

Emit Obj-C garbage collection and linker options.

void

emitPersonalityValue (MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym, const MachineModuleInfo *MMI) const override

virtual void

emitPersonalityValueImpl (MCStreamer &Streamer, const DataLayout &DL, const MCSymbol *Sym, const MachineModuleInfo *MMI) const

void

emitLinkerDirectives (MCStreamer &Streamer, Module &M) const override

Process linker options metadata and emit platform-specific bits.

MCSection *

getSectionForConstant (const DataLayout &DL, SectionKind Kind, const Constant *C, Align &Alignment) const override

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

MCSection *

getExplicitSectionGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override

Targets should implement this method to assign a section to globals with an explicit section specfied.

MCSection *

SelectSectionForGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override

MCSection *

getSectionForJumpTable (const Function &F, const TargetMachine &TM) const override

MCSection *

getSectionForLSDA (const Function &F, const MCSymbol &FnSym, const TargetMachine &TM) const override

MCSection *

getSectionForMachineBasicBlock (const Function &F, const MachineBasicBlock &MBB, const TargetMachine &TM) const override

Returns a unique section for the given machine basic block.

MCSection *

getUniqueSectionForFunction (const Function &F, const TargetMachine &TM) const override

bool

shouldPutJumpTableInFunctionSection (bool UsesLabelDifference, const Function &F) const override

const MCExpr *

getTTypeGlobalReference (const GlobalValue *GV, unsigned Encoding, const TargetMachine &TM, MachineModuleInfo *MMI, MCStreamer &Streamer) const override

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

MCSymbol *

getCFIPersonalitySymbol (const GlobalValue *GV, const TargetMachine &TM, MachineModuleInfo *MMI) const override

void

InitializeELF (bool UseInitArray_)

MCSection *

getStaticCtorSection (unsigned Priority, const MCSymbol *KeySym) const override

MCSection *

getStaticDtorSection (unsigned Priority, const MCSymbol *KeySym) const override

const MCExpr *

lowerRelativeReference (const GlobalValue *LHS, const GlobalValue *RHS, const TargetMachine &TM) const override

const MCExpr *

lowerDSOLocalEquivalent (const DSOLocalEquivalent *Equiv, const TargetMachine &TM) const override

MCSection *

getSectionForCommandLines () const override

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

- Public Member Functions inherited from llvm::TargetLoweringObjectFile

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)

Additional Inherited Members

- Static Public Member Functions inherited from llvm::TargetLoweringObjectFile

static SectionKind

getKindForGlobal (const GlobalObject *GO, const TargetMachine &TM)

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

virtual MCSection *

SelectSectionForGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const =0

- Protected Attributes inherited from llvm::TargetLoweringObjectFileELF

MCSymbolRefExpr::VariantKind

PLTRelativeVariantKind

- Protected Attributes inherited from llvm::TargetLoweringObjectFile

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 21 of file M68kTargetObjectFile.h.