LLVM: llvm::TargetLoweringObjectFileXCOFF Class Reference (original) (raw)
Public Member Functions
TargetLoweringObjectFileXCOFF ()=default
~TargetLoweringObjectFileXCOFF () override=default
void
Initialize (MCContext &Ctx, const TargetMachine &TM) override
This method must be called before any actual lowering is done.
shouldPutJumpTableInFunctionSection (bool UsesLabelDifference, const Function &F) const override
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.
getStaticCtorSection (unsigned Priority, const MCSymbol *KeySym) const override
getStaticDtorSection (unsigned Priority, const MCSymbol *KeySym) const override
SelectSectionForGlobal (const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const override
getSectionForJumpTable (const Function &F, const TargetMachine &TM) const override
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.
getSectionForFunctionDescriptor (const Function *F, const TargetMachine &TM) const override
On targets that use separate function descriptor symbols, return a section for the descriptor given its symbol.
getSectionForTOCEntry (const MCSymbol *Sym, const TargetMachine &TM) const override
On targets that support TOC entries, return a section for the entry given the symbol it refers to.
getSectionForExternalReference (const GlobalObject *GO, const TargetMachine &TM) const override
For external functions, this will always return a function descriptor csect.
MCSymbol *
getTargetSymbol (const GlobalValue *GV, const TargetMachine &TM) const override
For functions, this will always return a function descriptor symbol.
MCSymbol *
getFunctionEntryPointSymbol (const GlobalValue *Func, const TargetMachine &TM) const override
If supported, return the function entry point symbol.
getSectionForLSDA (const Function &F, const MCSymbol &FnSym, const TargetMachine &TM) const override
For functions, this will return the LSDA section.
Public Member Functions inherited from llvm::TargetLoweringObjectFile
TargetLoweringObjectFile ()=default
TargetLoweringObjectFile (const TargetLoweringObjectFile &)=delete
operator= (const TargetLoweringObjectFile &)=delete
~TargetLoweringObjectFile () override
Mangler &
getMangler () const
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.
void
emitPseudoProbeDescMetadata (MCStreamer &Streamer, Module &M, std::function< void(MCStreamer &Streamer)> COMDATSymEmitter=nullptr) const
Emit pseudo_probe_desc 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, StringRef SectionSuffix) const
Similar to the function above, but append SectionSuffix to the section name.
virtual MCSection *
getSectionForMachineBasicBlock (const Function &F, const MachineBasicBlock &MBB, const TargetMachine &TM) const
virtual MCSection *
getUniqueSectionForFunction (const Function &F, const TargetMachine &TM) const
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.
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 MachineJumpTableEntry *JTE) const
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
getPersonalityEncoding () const
getTTypeReference (const MCSymbolRefExpr *Sym, unsigned Encoding, MCStreamer &Streamer) const
getDebugThreadLocalSymbol (const MCSymbol *Sym) const
Create a symbol reference to describe the given TLS variable when emitting the address in debug info.
lowerRelativeReference (const GlobalValue *LHS, const GlobalValue *RHS, int64_t Addend, std::optional< int64_t > PCRelativeOffset, const TargetMachine &TM) const
Target supports a PC-relative relocation that references the PLT of a function.
lowerDSOLocalEquivalent (const MCSymbol *LHS, const MCSymbol *RHS, int64_t Addend, std::optional< int64_t > PCRelativeOffset, const TargetMachine &TM) const
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?
supportGOTPCRelWithOffset () const
Target GOT "PC"-relative relocation supports encoding an additional binary expression with an offset?
supportDebugThreadLocalLocation () const
Target supports TLS offset relocation in debug section?
virtual MCRegister
Returns the register used as static base in RWPI variants.
getIndirectSymViaRWPI (const MCSymbol *Sym) const
Get the target specific RWPI relocation.
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.
Public Member Functions inherited from llvm::MCObjectFileInfo
void
initMCObjectFileInfo (MCContext &MCCtx, bool PIC, bool LargeCodeModel=false)
virtual
getContext () const
getSupportsCompactUnwindWithoutEHFrame () const
getOmitDwarfIfHaveCompactUnwind () const
getCompactUnwindDwarfEHFrameOnly () const
std::optional< sframe::ABI >
virtual unsigned
getTextSectionAlignment () const
getCompactUnwindSection () const
getDwarfAbbrevSection () const
getDwarfInfoSection (uint64_t Hash) const
getDwarfLineStrSection () const
getDwarfPubNamesSection () const
getDwarfPubTypesSection () const
getDwarfGnuPubNamesSection () const
getDwarfGnuPubTypesSection () const
getDwarfDebugInlineSection () const
getDwarfARangesSection () const
getDwarfRangesSection () const
getDwarfRnglistsSection () const
getDwarfLoclistsSection () const
getDwarfMacinfoSection () const
getDwarfDebugNamesSection () const
getDwarfAccelNamesSection () const
getDwarfAccelObjCSection () const
getDwarfAccelNamespaceSection () const
getDwarfAccelTypesSection () const
getDwarfInfoDWOSection () const
getDwarfTypesSection (uint64_t Hash) const
getDwarfTypesDWOSection () const
getDwarfAbbrevDWOSection () const
getDwarfStrDWOSection () const
getDwarfLineDWOSection () const
getDwarfLocDWOSection () const
getDwarfStrOffDWOSection () const
getDwarfStrOffSection () const
getDwarfRnglistsDWOSection () const
getDwarfLoclistsDWOSection () const
getDwarfMacroDWOSection () const
getDwarfMacinfoDWOSection () const
getDwarfCUIndexSection () const
getDwarfTUIndexSection () const
getDwarfSwiftASTSection () const
getCOFFDebugSymbolsSection () const
getCOFFDebugTypesSection () const
getCOFFGlobalTypeHashesSection () const
getTLSExtraDataSection () const
getCallGraphSection (const MCSection &TextSec) const
getStackSizesSection (const MCSection &TextSec) const
getBBAddrMapSection (const MCSection &TextSec) const
getKCFITrapSection (const MCSection &TextSec) const
getPseudoProbeSection (const MCSection &TextSec) const
getPseudoProbeDescSection (StringRef FuncName) const
getPCSection (StringRef Name, const MCSection *TextSec) const
getMergeableConst4Section () const
getMergeableConst8Section () const
getMergeableConst16Section () const
getMergeableConst32Section () const
getTLSThreadInitSection () const
getConstTextCoalSection () const
getConstDataCoalSection () const
getFourByteConstantSection () const
getEightByteConstantSection () const
getSixteenByteConstantSection () const
getLazySymbolPointerSection () const
getNonLazySymbolPointerSection () const
getThreadLocalPointerSection () const
isPositionIndependent () const
getSwift5ReflectionSection (llvm::binaryformat::Swift5ReflectionSectionKind ReflSectionKind)