LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::HexagonTargetObjectFile Class Reference

#include <HexagonTargetObjectFile.h>

Inheritance diagram for llvm::HexagonTargetObjectFile:
Inheritance graph
[legend]
Collaboration diagram for llvm::HexagonTargetObjectFile:
Collaboration graph
[legend]

Public Member Functions

virtual void Initialize (MCContext &Ctx, const TargetMachine &TM)
 
bool IsGlobalInSmallSection (const GlobalValue *GV, const TargetMachine &TM, SectionKind Kind) const
 
bool IsGlobalInSmallSection (const GlobalValue *GV, const TargetMachine &TM) const
 
bool IsSmallDataEnabled () const
 
const MCSectionSelectSectionForGlobal (const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const
 
- Public Member Functions inherited from llvm::TargetLoweringObjectFileELF
virtual ~TargetLoweringObjectFileELF ()
 
virtual void emitPersonalityValue (MCStreamer &Streamer, const TargetMachine &TM, const MCSymbol *Sym) const
 
virtual const MCSectiongetSectionForConstant (SectionKind Kind) const
 
virtual const MCSectiongetExplicitSectionGlobal (const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const
 
virtual const MCExprgetTTypeGlobalReference (const GlobalValue *GV, Mangler *Mang, MachineModuleInfo *MMI, unsigned Encoding, MCStreamer &Streamer) const
 
virtual MCSymbolgetCFIPersonalitySymbol (const GlobalValue *GV, Mangler *Mang, MachineModuleInfo *MMI) const
 
void InitializeELF (bool UseInitArray_)
 
virtual const MCSectiongetStaticCtorSection (unsigned Priority=65535) const
 
virtual const MCSectiongetStaticDtorSection (unsigned Priority=65535) const
 
- Public Member Functions inherited from llvm::TargetLoweringObjectFile
MCContextgetContext () const
 
 TargetLoweringObjectFile ()
 
virtual ~TargetLoweringObjectFile ()
 
virtual void emitModuleFlags (MCStreamer &, ArrayRef< Module::ModuleFlagEntry >, Mangler *, const TargetMachine &) const
 emitModuleFlags - Emit the module flags that the platform cares about. More...
 
virtual bool shouldEmitUsedDirectiveFor (const GlobalValue *GV, Mangler *) const
 
const MCSectionSectionForGlobal (const GlobalValue *GV, SectionKind Kind, Mangler *Mang, const TargetMachine &TM) const
 
const MCSectionSectionForGlobal (const GlobalValue *GV, Mangler *Mang, const TargetMachine &TM) const
 
virtual const MCSectiongetSpecialCasedSectionGlobals (const GlobalValue *GV, Mangler *Mang, SectionKind Kind) const
 
MCSymbolgetSymbol (Mangler &M, const GlobalValue *GV) const
 
const MCExprgetTTypeReference (const MCSymbolRefExpr *Sym, unsigned Encoding, MCStreamer &Streamer) const
 
virtual const MCExprgetDebugThreadLocalSymbol (const MCSymbol *Sym) const
 Create a symbol reference to describe the given TLS variable when emitting the address in debug info. More...
 
- Public Member Functions inherited from llvm::MCObjectFileInfo
void InitMCObjectFileInfo (StringRef TT, Reloc::Model RM, CodeModel::Model CM, MCContext &ctx)
 
bool isFunctionEHFrameSymbolPrivate () const
 
bool getSupportsWeakOmittedEHFrame () const
 
bool getCommDirectiveSupportsAlignment () const
 
unsigned getPersonalityEncoding () const
 
unsigned getLSDAEncoding () const
 
unsigned getFDEEncoding (bool CFI) const
 
unsigned getTTypeEncoding () const
 
unsigned getCompactUnwindDwarfEHFrameOnly () const
 
const MCSectiongetTextSection () const
 
const MCSectiongetDataSection () const
 
const MCSectiongetBSSSection () const
 
const MCSectiongetLSDASection () const
 
const MCSectiongetCompactUnwindSection () const
 
const MCSectiongetDwarfAbbrevSection () const
 
const MCSectiongetDwarfInfoSection () const
 
const MCSectiongetDwarfLineSection () const
 
const MCSectiongetDwarfFrameSection () const
 
const MCSectiongetDwarfPubNamesSection () const
 
const MCSectiongetDwarfPubTypesSection () const
 
const MCSectiongetDwarfGnuPubNamesSection () const
 
const MCSectiongetDwarfGnuPubTypesSection () const
 
const MCSectiongetDwarfDebugInlineSection () const
 
const MCSectiongetDwarfStrSection () const
 
const MCSectiongetDwarfLocSection () const
 
const MCSectiongetDwarfARangesSection () const
 
const MCSectiongetDwarfRangesSection () const
 
const MCSectiongetDwarfMacroInfoSection () const
 
const MCSectiongetDwarfAccelNamesSection () const
 
const MCSectiongetDwarfAccelObjCSection () const
 
const MCSectiongetDwarfAccelNamespaceSection () const
 
const MCSectiongetDwarfAccelTypesSection () const
 
const MCSectiongetDwarfInfoDWOSection () const
 
const MCSectiongetDwarfAbbrevDWOSection () const
 
const MCSectiongetDwarfStrDWOSection () const
 
const MCSectiongetDwarfLineDWOSection () const
 
const MCSectiongetDwarfLocDWOSection () const
 
const MCSectiongetDwarfStrOffDWOSection () const
 
const MCSectiongetDwarfAddrSection () const
 
const MCSectiongetTLSExtraDataSection () const
 
const MCSectiongetTLSDataSection () const
 
const MCSectiongetTLSBSSSection () const
 
const MCSectiongetStackMapSection () const
 
const MCSectiongetDataRelSection () const
 
const MCSectiongetDataRelLocalSection () const
 
const MCSectiongetDataRelROSection () const
 
const MCSectiongetDataRelROLocalSection () const
 
const MCSectiongetMergeableConst4Section () const
 
const MCSectiongetMergeableConst8Section () const
 
const MCSectiongetMergeableConst16Section () const
 
const MCSectiongetTLSTLVSection () const
 
const MCSectiongetTLSThreadInitSection () const
 
const MCSectiongetCStringSection () const
 
const MCSectiongetUStringSection () const
 
const MCSectiongetTextCoalSection () const
 
const MCSectiongetConstTextCoalSection () const
 
const MCSectiongetConstDataSection () const
 
const MCSectiongetDataCoalSection () const
 
const MCSectiongetDataCommonSection () const
 
const MCSectiongetDataBSSSection () const
 
const MCSectiongetFourByteConstantSection () const
 
const MCSectiongetEightByteConstantSection () const
 
const MCSectiongetSixteenByteConstantSection () const
 
const MCSectiongetLazySymbolPointerSection () const
 
const MCSectiongetNonLazySymbolPointerSection () const
 
const MCSectiongetDrectveSection () const
 
const MCSectiongetPDataSection () const
 
const MCSectiongetXDataSection () const
 
const MCSectiongetEHFrameSection ()
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::TargetLoweringObjectFile
static SectionKind getKindForGlobal (const GlobalValue *GV, const TargetMachine &TM)
 
- Protected Attributes inherited from llvm::MCObjectFileInfo
bool CommDirectiveSupportsAlignment
 
bool SupportsWeakOmittedEHFrame
 
bool IsFunctionEHFrameSymbolPrivate
 
unsigned PersonalityEncoding
 
unsigned LSDAEncoding
 
unsigned FDEEncoding
 
unsigned FDECFIEncoding
 
unsigned TTypeEncoding
 
unsigned EHSectionType
 Section flags for eh_frame. More...
 
unsigned EHSectionFlags
 
unsigned CompactUnwindDwarfEHFrameOnly
 
const MCSectionTextSection
 
const MCSectionDataSection
 
const MCSectionBSSSection
 BSSSection - Section that is default initialized to zero. More...
 
const MCSectionReadOnlySection
 
const MCSectionStaticCtorSection
 
const MCSectionStaticDtorSection
 
const MCSectionLSDASection
 
const MCSectionCompactUnwindSection
 
const MCSectionDwarfAbbrevSection
 
const MCSectionDwarfInfoSection
 
const MCSectionDwarfLineSection
 
const MCSectionDwarfFrameSection
 
const MCSectionDwarfPubTypesSection
 
const MCSectionDwarfDebugInlineSection
 
const MCSectionDwarfStrSection
 
const MCSectionDwarfLocSection
 
const MCSectionDwarfARangesSection
 
const MCSectionDwarfRangesSection
 
const MCSectionDwarfMacroInfoSection
 
const MCSectionDwarfPubNamesSection
 
const MCSectionDwarfAccelNamesSection
 
const MCSectionDwarfAccelObjCSection
 
const MCSectionDwarfAccelNamespaceSection
 
const MCSectionDwarfAccelTypesSection
 
const MCSectionDwarfInfoDWOSection
 These are used for the Fission separate debug information files. More...
 
const MCSectionDwarfAbbrevDWOSection
 
const MCSectionDwarfStrDWOSection
 
const MCSectionDwarfLineDWOSection
 
const MCSectionDwarfLocDWOSection
 
const MCSectionDwarfStrOffDWOSection
 
const MCSectionDwarfAddrSection
 
const MCSectionDwarfGnuPubNamesSection
 Sections for newer gnu pubnames and pubtypes. More...
 
const MCSectionDwarfGnuPubTypesSection
 
const MCSectionTLSExtraDataSection
 
const MCSectionTLSDataSection
 
const MCSectionTLSBSSSection
 
const MCSectionStackMapSection
 StackMap section. More...
 
const MCSectionEHFrameSection
 
const MCSectionDataRelSection
 
const MCSectionDataRelLocalSection
 
const MCSectionDataRelROSection
 
const MCSectionDataRelROLocalSection
 
const MCSectionMergeableConst4Section
 
const MCSectionMergeableConst8Section
 
const MCSectionMergeableConst16Section
 
const MCSectionTLSTLVSection
 
const MCSectionTLSThreadInitSection
 
const MCSectionCStringSection
 
const MCSectionUStringSection
 
const MCSectionTextCoalSection
 
const MCSectionConstTextCoalSection
 
const MCSectionConstDataSection
 
const MCSectionDataCoalSection
 
const MCSectionDataCommonSection
 
const MCSectionDataBSSSection
 
const MCSectionFourByteConstantSection
 
const MCSectionEightByteConstantSection
 
const MCSectionSixteenByteConstantSection
 
const MCSectionLazySymbolPointerSection
 
const MCSectionNonLazySymbolPointerSection
 
const MCSectionDrectveSection
 
const MCSectionPDataSection
 
const MCSectionXDataSection
 

Detailed Description

Definition at line 18 of file HexagonTargetObjectFile.h.

Member Function Documentation

void HexagonTargetObjectFile::Initialize ( MCContext ctx,
const TargetMachine TM 
)
virtual

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 from llvm::TargetLoweringObjectFile.

Definition at line 31 of file HexagonTargetObjectFile.cpp.

References llvm::SectionKind::getBSS(), llvm::TargetLoweringObjectFile::getContext(), llvm::SectionKind::getDataRel(), llvm::MCContext::getELFSection(), and llvm::TargetLoweringObjectFile::Initialize().

bool HexagonTargetObjectFile::IsGlobalInSmallSection ( const GlobalValue GV,
const TargetMachine TM,
SectionKind  Kind 
) const

IsGlobalInSmallSection - Return true if this global address should be placed into small data/bss section.

IsGlobalInSmallSection - Return true if this global value should be placed into small data/bss section.

Definition at line 73 of file HexagonTargetObjectFile.cpp.

References llvm::dyn_cast(), llvm::TargetMachine::getDataLayout(), llvm::SequentialType::getElementType(), llvm::GlobalValue::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::SectionKind::isBSS(), llvm::SectionKind::isCommon(), llvm::SectionKind::isDataNoRel(), and IsInSmallSection().

Referenced by IsGlobalInSmallSection(), llvm::HexagonTargetLowering::LowerGLOBALADDRESS(), and SelectSectionForGlobal().

bool HexagonTargetObjectFile::IsGlobalInSmallSection ( const GlobalValue GV,
const TargetMachine TM 
) const

IsGlobalInSmallSection - Return true if this global value should be placed into small data/bss section.

Definition at line 57 of file HexagonTargetObjectFile.cpp.

References llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::GlobalValue::hasAvailableExternallyLinkage(), llvm::GlobalValue::isDeclaration(), and IsGlobalInSmallSection().

bool HexagonTargetObjectFile::IsSmallDataEnabled ( ) const

Definition at line 51 of file HexagonTargetObjectFile.cpp.

References SmallDataThreshold.

const MCSection * HexagonTargetObjectFile::SelectSectionForGlobal ( const GlobalValue GV,
SectionKind  Kind,
Mangler Mang,
const TargetMachine TM 
) const
virtual

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