LLVM  3.7.0
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::TargetLoweringObjectFile Class Referenceabstract

#include <TargetLoweringObjectFile.h>

Inheritance diagram for llvm::TargetLoweringObjectFile:
[legend]
Collaboration diagram for llvm::TargetLoweringObjectFile:
[legend]

Public Member Functions

MCContextgetContext () const
 
 TargetLoweringObjectFile ()
 
virtual ~TargetLoweringObjectFile ()
 
virtual void Initialize (MCContext &ctx, const TargetMachine &TM)
 This method must be called before any actual lowering is done. More...
 
virtual void emitPersonalityValue (MCStreamer &Streamer, const TargetMachine &TM, const MCSymbol *Sym) const
 
virtual void emitModuleFlags (MCStreamer &Streamer, ArrayRef< Module::ModuleFlagEntry > Flags, Mangler &Mang, const TargetMachine &TM) const
 Emit the module flags that the platform cares about. More...
 
virtual MCSectiongetSectionForConstant (SectionKind Kind, const Constant *C) const
 Given a constant with the SectionKind, return a section that it should be placed in. More...
 
MCSectionSectionForGlobal (const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const
 This method computes the appropriate section to emit the specified global variable or function definition. More...
 
MCSectionSectionForGlobal (const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM) const
 This method computes the appropriate section to emit the specified global variable or function definition. More...
 
virtual void getNameWithPrefix (SmallVectorImpl< char > &OutName, const GlobalValue *GV, bool CannotUsePrivateLabel, Mangler &Mang, const TargetMachine &TM) const
 
virtual MCSectiongetSectionForJumpTable (const Function &F, Mangler &Mang, const TargetMachine &TM) const
 
virtual bool shouldPutJumpTableInFunctionSection (bool UsesLabelDifference, const Function &F) const
 
virtual MCSectiongetExplicitSectionGlobal (const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const =0
 Targets should implement this method to assign a section to globals with an explicit section specfied. More...
 
virtual const MCSectiongetSpecialCasedSectionGlobals (const GlobalValue *GV, SectionKind Kind, Mangler &Mang) const
 Allow the target to completely override section assignment of a global. More...
 
virtual const MCExprgetTTypeGlobalReference (const GlobalValue *GV, unsigned Encoding, Mangler &Mang, 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. More...
 
MCSymbolgetSymbolWithGlobalValueBase (const GlobalValue *GV, StringRef Suffix, Mangler &Mang, const TargetMachine &TM) const
 Return the MCSymbol for a private symbol with global value name as its base, with the specified suffix. More...
 
virtual MCSymbolgetCFIPersonalitySymbol (const GlobalValue *GV, Mangler &Mang, const TargetMachine &TM, MachineModuleInfo *MMI) const
 
const MCExprgetTTypeReference (const MCSymbolRefExpr *Sym, unsigned Encoding, MCStreamer &Streamer) const
 
virtual MCSectiongetStaticCtorSection (unsigned Priority, const MCSymbol *KeySym) const
 
virtual MCSectiongetStaticDtorSection (unsigned Priority, const MCSymbol *KeySym) 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...
 
virtual const MCExprgetExecutableRelativeSymbol (const ConstantExpr *CE, Mangler &Mang, 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? More...
 
bool supportGOTPCRelWithOffset () const
 Target GOT "PC"-relative relocation supports encoding an additional binary expression with an offset? More...
 
virtual const MCExprgetIndirectSymViaGOTPCRel (const MCSymbol *Sym, const MCValue &MV, int64_t Offset, MachineModuleInfo *MMI, MCStreamer &Streamer) const
 Get the target specific PC relative GOT entry relocation. More...
 
virtual void emitLinkerFlagsForGlobal (raw_ostream &OS, const GlobalValue *GV, const Mangler &Mang) const
 
- Public Member Functions inherited from llvm::MCObjectFileInfo
void InitMCObjectFileInfo (const Triple &TT, Reloc::Model RM, CodeModel::Model CM, MCContext &ctx)
 
 LLVM_ATTRIBUTE_DEPRECATED (void InitMCObjectFileInfo(StringRef TT, Reloc::Model RM, CodeModel::Model CM, MCContext &ctx),"StringRef GNU Triple argument replaced by a llvm::Triple object")
 
bool getSupportsWeakOmittedEHFrame () const
 
bool getSupportsCompactUnwindWithoutEHFrame () const
 
bool getCommDirectiveSupportsAlignment () const
 
unsigned getPersonalityEncoding () const
 
unsigned getLSDAEncoding () const
 
unsigned getFDEEncoding () const
 
unsigned getTTypeEncoding () const
 
unsigned getCompactUnwindDwarfEHFrameOnly () const
 
MCSectiongetTextSection () const
 
MCSectiongetDataSection () const
 
MCSectiongetBSSSection () const
 
MCSectiongetLSDASection () const
 
MCSectiongetCompactUnwindSection () const
 
MCSectiongetDwarfAbbrevSection () const
 
MCSectiongetDwarfInfoSection () const
 
MCSectiongetDwarfLineSection () const
 
MCSectiongetDwarfFrameSection () const
 
MCSectiongetDwarfPubNamesSection () const
 
MCSectiongetDwarfPubTypesSection () const
 
MCSectiongetDwarfGnuPubNamesSection () const
 
MCSectiongetDwarfGnuPubTypesSection () const
 
const MCSectiongetDwarfDebugInlineSection () const
 
MCSectiongetDwarfStrSection () const
 
MCSectiongetDwarfLocSection () const
 
MCSectiongetDwarfARangesSection () const
 
MCSectiongetDwarfRangesSection () const
 
MCSectiongetDwarfAccelNamesSection () const
 
MCSectiongetDwarfAccelObjCSection () const
 
MCSectiongetDwarfAccelNamespaceSection () const
 
MCSectiongetDwarfAccelTypesSection () const
 
MCSectiongetDwarfInfoDWOSection () const
 
MCSectiongetDwarfTypesSection (uint64_t Hash) const
 
MCSectiongetDwarfTypesDWOSection () const
 
MCSectiongetDwarfAbbrevDWOSection () const
 
MCSectiongetDwarfStrDWOSection () const
 
MCSectiongetDwarfLineDWOSection () const
 
MCSectiongetDwarfLocDWOSection () const
 
MCSectiongetDwarfStrOffDWOSection () const
 
MCSectiongetDwarfAddrSection () const
 
MCSectiongetCOFFDebugSymbolsSection () const
 
MCSectiongetTLSExtraDataSection () const
 
const MCSectiongetTLSDataSection () const
 
MCSectiongetTLSBSSSection () const
 
MCSectiongetStackMapSection () const
 
MCSectiongetFaultMapSection () const
 
MCSectiongetDataRelSection () const
 
const MCSectiongetDataRelLocalSection () const
 
MCSectiongetDataRelROSection () const
 
MCSectiongetDataRelROLocalSection () const
 
const MCSectiongetMergeableConst4Section () const
 
const MCSectiongetMergeableConst8Section () const
 
const MCSectiongetMergeableConst16Section () const
 
const MCSectiongetTLSTLVSection () const
 
const MCSectiongetTLSThreadInitSection () const
 
const MCSectiongetCStringSection () const
 
const MCSectiongetUStringSection () const
 
MCSectiongetTextCoalSection () const
 
const MCSectiongetConstTextCoalSection () const
 
const MCSectiongetConstDataSection () const
 
const MCSectiongetDataCoalSection () const
 
const MCSectiongetDataCommonSection () const
 
MCSectiongetDataBSSSection () const
 
const MCSectiongetFourByteConstantSection () const
 
const MCSectiongetEightByteConstantSection () const
 
const MCSectiongetSixteenByteConstantSection () const
 
MCSectiongetLazySymbolPointerSection () const
 
MCSectiongetNonLazySymbolPointerSection () const
 
MCSectiongetDrectveSection () const
 
MCSectiongetPDataSection () const
 
MCSectiongetXDataSection () const
 
MCSectiongetSXDataSection () const
 
MCSectiongetEHFrameSection ()
 
Environment getObjectFileType () const
 
Reloc::Model getRelocM () const
 
const TriplegetTargetTriple () const
 

Static Public Member Functions

static SectionKind getKindForGlobal (const GlobalValue *GV, const TargetMachine &TM)
 Classify the specified global variable into a set of target independent categories embodied in SectionKind. More...
 

Protected Member Functions

virtual MCSectionSelectSectionForGlobal (const GlobalValue *GV, SectionKind Kind, Mangler &Mang, const TargetMachine &TM) const =0
 

Protected Attributes

const DataLayoutDL
 
bool SupportIndirectSymViaGOTPCRel
 
bool SupportGOTPCRelWithOffset
 
- Protected Attributes inherited from llvm::MCObjectFileInfo
bool CommDirectiveSupportsAlignment
 True if .comm supports alignment. More...
 
bool SupportsWeakOmittedEHFrame
 True if target object file supports a weak_definition of constant 0 for an omitted EH frame. More...
 
bool SupportsCompactUnwindWithoutEHFrame
 True if the target object file supports emitting a compact unwind section without an associated EH frame section. More...
 
unsigned PersonalityEncoding
 Some encoding values for EH. More...
 
unsigned LSDAEncoding
 
unsigned FDECFIEncoding
 
unsigned TTypeEncoding
 
unsigned EHSectionType
 Section flags for eh_frame. More...
 
unsigned EHSectionFlags
 
unsigned CompactUnwindDwarfEHFrameOnly
 Compact unwind encoding indicating that we should emit only an EH frame. More...
 
MCSectionTextSection
 Section directive for standard text. More...
 
MCSectionDataSection
 Section directive for standard data. More...
 
MCSectionBSSSection
 Section that is default initialized to zero. More...
 
MCSectionReadOnlySection
 Section that is readonly and can contain arbitrary initialized data. More...
 
MCSectionStaticCtorSection
 This section contains the static constructor pointer list. More...
 
MCSectionStaticDtorSection
 This section contains the static destructor pointer list. More...
 
MCSectionLSDASection
 If exception handling is supported by the target, this is the section the Language Specific Data Area information is emitted to. More...
 
MCSectionCompactUnwindSection
 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. More...
 
MCSectionDwarfAbbrevSection
 
MCSectionDwarfInfoSection
 
MCSectionDwarfLineSection
 
MCSectionDwarfFrameSection
 
MCSectionDwarfPubTypesSection
 
const MCSectionDwarfDebugInlineSection
 
MCSectionDwarfStrSection
 
MCSectionDwarfLocSection
 
MCSectionDwarfARangesSection
 
MCSectionDwarfRangesSection
 
MCSectionDwarfPubNamesSection
 
MCSectionDwarfAccelNamesSection
 DWARF5 Experimental Debug Info Sections DwarfAccelNamesSection, DwarfAccelObjCSection, DwarfAccelNamespaceSection, DwarfAccelTypesSection - If we use the DWARF accelerated hash tables then we want to emit these sections. More...
 
MCSectionDwarfAccelObjCSection
 
MCSectionDwarfAccelNamespaceSection
 
MCSectionDwarfAccelTypesSection
 
MCSectionDwarfInfoDWOSection
 
MCSectionDwarfTypesDWOSection
 
MCSectionDwarfAbbrevDWOSection
 
MCSectionDwarfStrDWOSection
 
MCSectionDwarfLineDWOSection
 
MCSectionDwarfLocDWOSection
 
MCSectionDwarfStrOffDWOSection
 
MCSectionDwarfAddrSection
 
MCSectionDwarfGnuPubNamesSection
 Section for newer gnu pubnames. More...
 
MCSectionDwarfGnuPubTypesSection
 Section for newer gnu pubtypes. More...
 
MCSectionCOFFDebugSymbolsSection
 
MCSectionTLSExtraDataSection
 Extra TLS Variable Data section. More...
 
MCSectionTLSDataSection
 Section directive for Thread Local data. ELF, MachO and COFF. More...
 
MCSectionTLSBSSSection
 Section directive for Thread Local uninitialized data. More...
 
MCSectionStackMapSection
 StackMap section. More...
 
MCSectionFaultMapSection
 FaultMap section. More...
 
MCSectionEHFrameSection
 EH frame section. More...
 
MCSectionDataRelSection
 
const MCSectionDataRelLocalSection
 
MCSectionDataRelROSection
 
MCSectionDataRelROLocalSection
 
MCSectionMergeableConst4Section
 
MCSectionMergeableConst8Section
 
MCSectionMergeableConst16Section
 
MCSectionTLSTLVSection
 Section for thread local structure information. More...
 
const MCSectionTLSThreadInitSection
 Section for thread local data initialization functions. More...
 
MCSectionCStringSection
 
MCSectionUStringSection
 
MCSectionTextCoalSection
 
MCSectionConstTextCoalSection
 
MCSectionConstDataSection
 
MCSectionDataCoalSection
 
MCSectionDataCommonSection
 
MCSectionDataBSSSection
 
MCSectionFourByteConstantSection
 
MCSectionEightByteConstantSection
 
MCSectionSixteenByteConstantSection
 
MCSectionLazySymbolPointerSection
 
MCSectionNonLazySymbolPointerSection
 
MCSectionDrectveSection
 COFF specific sections. More...
 
MCSectionPDataSection
 
MCSectionXDataSection
 
MCSectionSXDataSection
 

Additional Inherited Members

- Public Types inherited from llvm::MCObjectFileInfo
enum  Environment { IsMachO, IsELF, IsCOFF }
 

Detailed Description

Definition at line 37 of file TargetLoweringObjectFile.h.

Constructor & Destructor Documentation

llvm::TargetLoweringObjectFile::TargetLoweringObjectFile ( )
inline

Definition at line 52 of file TargetLoweringObjectFile.h.

TargetLoweringObjectFile::~TargetLoweringObjectFile ( )
virtual

Definition at line 51 of file TargetLoweringObjectFile.cpp.

Member Function Documentation

virtual void llvm::TargetLoweringObjectFile::emitLinkerFlagsForGlobal ( raw_ostream OS,
const GlobalValue GV,
const Mangler Mang 
) const
inlinevirtual

Reimplemented in llvm::TargetLoweringObjectFileCOFF.

Definition at line 185 of file TargetLoweringObjectFile.h.

virtual void llvm::TargetLoweringObjectFile::emitModuleFlags ( MCStreamer Streamer,
ArrayRef< Module::ModuleFlagEntry Flags,
Mangler Mang,
const TargetMachine TM 
) const
inlinevirtual

Emit the module flags that the platform cares about.

Reimplemented in llvm::TargetLoweringObjectFileCOFF, and llvm::TargetLoweringObjectFileMachO.

Definition at line 68 of file TargetLoweringObjectFile.h.

Referenced by llvm::AsmPrinter::doFinalization().

void TargetLoweringObjectFile::emitPersonalityValue ( MCStreamer Streamer,
const TargetMachine TM,
const MCSymbol Sym 
) const
virtual
MCSymbol * TargetLoweringObjectFile::getCFIPersonalitySymbol ( const GlobalValue GV,
Mangler Mang,
const TargetMachine TM,
MachineModuleInfo MMI 
) const
virtual
MCContext& llvm::TargetLoweringObjectFile::getContext ( ) const
inline
const MCExpr * TargetLoweringObjectFile::getDebugThreadLocalSymbol ( const MCSymbol Sym) const
virtual

Create a symbol reference to describe the given TLS variable when emitting the address in debug info.

Reimplemented in llvm::ARMElfTargetObjectFile.

Definition at line 341 of file TargetLoweringObjectFile.cpp.

References llvm::MCSymbolRefExpr::create().

Referenced by llvm::AddressPool::emit(), and llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE().

virtual const MCExpr* llvm::TargetLoweringObjectFile::getExecutableRelativeSymbol ( const ConstantExpr CE,
Mangler Mang,
const TargetMachine TM 
) const
inlinevirtual

Definition at line 159 of file TargetLoweringObjectFile.h.

virtual MCSection* llvm::TargetLoweringObjectFile::getExplicitSectionGlobal ( const GlobalValue GV,
SectionKind  Kind,
Mangler Mang,
const TargetMachine TM 
) const
pure virtual

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

The implementation of this method can assume that GV->hasSection() is true.

Implemented in llvm::TargetLoweringObjectFileCOFF, llvm::TargetLoweringObjectFileMachO, llvm::NVPTXTargetObjectFile, llvm::WebAssemblyTargetObjectFile, llvm::TargetLoweringObjectFileELF, and llvm::XCoreTargetObjectFile.

Referenced by SectionForGlobal().

virtual const MCExpr* llvm::TargetLoweringObjectFile::getIndirectSymViaGOTPCRel ( const MCSymbol Sym,
const MCValue MV,
int64_t  Offset,
MachineModuleInfo MMI,
MCStreamer Streamer 
) const
inlinevirtual

Get the target specific PC relative GOT entry relocation.

Reimplemented in llvm::TargetLoweringObjectFileMachO, llvm::AArch64_MachoTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.

Definition at line 177 of file TargetLoweringObjectFile.h.

Referenced by handleIndirectSymViaGOTPCRel().

SectionKind TargetLoweringObjectFile::getKindForGlobal ( const GlobalValue GV,
const TargetMachine TM 
)
static

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

Given an global variable and information from TM, it classifies the global in a variety of ways that make various target implementations simpler. The target implementation is free to ignore this extra info of course.

Definition at line 133 of file TargetLoweringObjectFile.cpp.

References llvm::C, llvm::dyn_cast(), llvm::SectionKind::getBSS(), llvm::SectionKind::getBSSExtern(), llvm::SectionKind::getBSSLocal(), llvm::SectionKind::getCommon(), llvm::TargetMachine::getDataLayout(), llvm::SectionKind::getDataNoRel(), llvm::SectionKind::getDataRel(), llvm::SectionKind::getDataRelLocal(), llvm::GlobalVariable::getInitializer(), llvm::SectionKind::getMergeable1ByteCString(), llvm::SectionKind::getMergeable2ByteCString(), llvm::SectionKind::getMergeable4ByteCString(), llvm::SectionKind::getMergeableConst16(), llvm::SectionKind::getMergeableConst4(), llvm::SectionKind::getMergeableConst8(), llvm::SectionKind::getReadOnly(), llvm::SectionKind::getReadOnlyWithRel(), llvm::SectionKind::getReadOnlyWithRelLocal(), llvm::Constant::getRelocationInfo(), llvm::TargetMachine::getRelocationModel(), llvm::SectionKind::getText(), llvm::SectionKind::getThreadBSS(), llvm::SectionKind::getThreadData(), llvm::Value::getType(), llvm::DataLayout::getTypeAllocSize(), llvm::Constant::GlobalRelocations, llvm::GlobalValue::hasAvailableExternallyLinkage(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasExternalLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasUnnamedAddr(), llvm::GlobalVariable::isConstant(), llvm::GlobalValue::isDeclaration(), IsNullTerminatedString(), isSuitableForBSS(), llvm::GlobalValue::isThreadLocal(), llvm_unreachable, llvm::Constant::LocalRelocation, llvm::Constant::NoRelocation, llvm::TargetOptions::NoZerosInBSS, llvm::TargetMachine::Options, and llvm::Reloc::Static.

Referenced by llvm::AsmPrinter::EmitGlobalVariable(), llvm::TargetMachine::getNameWithPrefix(), llvm::MipsTargetObjectFile::IsGlobalInSmallSection(), llvm::HexagonTargetObjectFile::IsGlobalInSmallSection(), and SectionForGlobal().

void TargetLoweringObjectFile::getNameWithPrefix ( SmallVectorImpl< char > &  OutName,
const GlobalValue GV,
bool  CannotUsePrivateLabel,
Mangler Mang,
const TargetMachine TM 
) const
virtual
MCSection * TargetLoweringObjectFile::getSectionForConstant ( SectionKind  Kind,
const Constant C 
) const
virtual

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::TargetLoweringObjectFileMachO, llvm::NVPTXTargetObjectFile, llvm::TargetLoweringObjectFileELF, llvm::WebAssemblyTargetObjectFile, llvm::MipsTargetObjectFile, and llvm::XCoreTargetObjectFile.

Definition at line 300 of file TargetLoweringObjectFile.cpp.

References llvm::MCObjectFileInfo::DataSection, llvm::SectionKind::isReadOnly(), and llvm::MCObjectFileInfo::ReadOnlySection.

Referenced by llvm::AsmPrinter::doFinalization(), llvm::AsmPrinter::EmitConstantPool(), and getSectionForJumpTable().

MCSection * TargetLoweringObjectFile::getSectionForJumpTable ( const Function F,
Mangler Mang,
const TargetMachine TM 
) const
virtual
virtual const MCSection* llvm::TargetLoweringObjectFile::getSpecialCasedSectionGlobals ( const GlobalValue GV,
SectionKind  Kind,
Mangler Mang 
) const
inlinevirtual

Allow the target to completely override section assignment of a global.

Definition at line 115 of file TargetLoweringObjectFile.h.

virtual MCSection* llvm::TargetLoweringObjectFile::getStaticCtorSection ( unsigned  Priority,
const MCSymbol KeySym 
) const
inlinevirtual
virtual MCSection* llvm::TargetLoweringObjectFile::getStaticDtorSection ( unsigned  Priority,
const MCSymbol KeySym 
) const
inlinevirtual
MCSymbol * TargetLoweringObjectFile::getSymbolWithGlobalValueBase ( const GlobalValue GV,
StringRef  Suffix,
Mangler Mang,
const TargetMachine TM 
) const
const MCExpr * TargetLoweringObjectFile::getTTypeGlobalReference ( const GlobalValue GV,
unsigned  Encoding,
Mangler Mang,
const TargetMachine TM,
MachineModuleInfo MMI,
MCStreamer Streamer 
) const
virtual

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::TargetLoweringObjectFileMachO, llvm::TargetLoweringObjectFileELF, llvm::ARMElfTargetObjectFile, llvm::AArch64_MachoTargetObjectFile, llvm::SparcELFTargetObjectFile, and llvm::X86_64MachoTargetObjectFile.

Definition at line 311 of file TargetLoweringObjectFile.cpp.

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

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

const MCExpr * TargetLoweringObjectFile::getTTypeReference ( const MCSymbolRefExpr Sym,
unsigned  Encoding,
MCStreamer Streamer 
) const
void TargetLoweringObjectFile::Initialize ( MCContext ctx,
const TargetMachine TM 
)
virtual

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::NVPTXTargetObjectFile, llvm::ARMElfTargetObjectFile, llvm::XCoreTargetObjectFile, llvm::HexagonTargetObjectFile, and llvm::MipsTargetObjectFile.

Definition at line 43 of file TargetLoweringObjectFile.cpp.

References DL, llvm::TargetMachine::getCodeModel(), llvm::TargetMachine::getDataLayout(), llvm::TargetMachine::getRelocationModel(), llvm::TargetMachine::getTargetTriple(), and llvm::MCObjectFileInfo::InitMCObjectFileInfo().

Referenced by llvm::HexagonTargetObjectFile::Initialize(), llvm::MipsTargetObjectFile::Initialize(), llvm::XCoreTargetObjectFile::Initialize(), llvm::ARMElfTargetObjectFile::Initialize(), and llvm::NVPTXTargetObjectFile::Initialize().

MCSection * TargetLoweringObjectFile::SectionForGlobal ( const GlobalValue GV,
SectionKind  Kind,
Mangler Mang,
const TargetMachine TM 
) const

This method computes the appropriate section to emit the specified global variable or function definition.

This should not be passed external (or available externally) globals.

Definition at line 262 of file TargetLoweringObjectFile.cpp.

References getExplicitSectionGlobal(), llvm::GlobalValue::hasSection(), and SelectSectionForGlobal().

Referenced by llvm::AsmPrinter::EmitGlobalVariable(), llvm::TargetMachine::getNameWithPrefix(), and SectionForGlobal().

MCSection* llvm::TargetLoweringObjectFile::SectionForGlobal ( const GlobalValue GV,
Mangler Mang,
const TargetMachine TM 
) const
inline

This method computes the appropriate section to emit the specified global variable or function definition.

This should not be passed external (or available externally) globals.

Definition at line 91 of file TargetLoweringObjectFile.h.

References getKindForGlobal(), and SectionForGlobal().

virtual MCSection* llvm::TargetLoweringObjectFile::SelectSectionForGlobal ( const GlobalValue GV,
SectionKind  Kind,
Mangler Mang,
const TargetMachine TM 
) const
protectedpure virtual
bool TargetLoweringObjectFile::shouldPutJumpTableInFunctionSection ( bool  UsesLabelDifference,
const Function F 
) const
virtual
bool llvm::TargetLoweringObjectFile::supportGOTPCRelWithOffset ( ) const
inline

Target GOT "PC"-relative relocation supports encoding an additional binary expression with an offset?

Definition at line 172 of file TargetLoweringObjectFile.h.

References SupportGOTPCRelWithOffset.

Referenced by handleIndirectSymViaGOTPCRel().

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

Target supports replacing a data "PC"-relative access to a symbol through another symbol, by accessing the later via a GOT entry instead?

Definition at line 166 of file TargetLoweringObjectFile.h.

References SupportIndirectSymViaGOTPCRel.

Referenced by emitGlobalConstantImpl().

Member Data Documentation

const DataLayout* llvm::TargetLoweringObjectFile::DL
protected
bool llvm::TargetLoweringObjectFile::SupportGOTPCRelWithOffset
protected
bool llvm::TargetLoweringObjectFile::SupportIndirectSymViaGOTPCRel
protected

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