LLVM API Documentation

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

#include <TargetRegistry.h>

Public Types

typedef unsigned(* TripleMatchQualityFnTy )(const std::string &TT)
 
typedef MCAsmInfo *(* MCAsmInfoCtorFnTy )(const MCRegisterInfo &MRI, StringRef TT)
 
typedef MCCodeGenInfo *(* MCCodeGenInfoCtorFnTy )(StringRef TT, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
 
typedef MCInstrInfo *(* MCInstrInfoCtorFnTy )(void)
 
typedef MCInstrAnalysis *(* MCInstrAnalysisCtorFnTy )(const MCInstrInfo *Info)
 
typedef MCRegisterInfo *(* MCRegInfoCtorFnTy )(StringRef TT)
 
typedef MCSubtargetInfo *(* MCSubtargetInfoCtorFnTy )(StringRef TT, StringRef CPU, StringRef Features)
 
typedef TargetMachine *(* TargetMachineCtorTy )(const Target &T, StringRef TT, StringRef CPU, StringRef Features, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
 
typedef AsmPrinter *(* AsmPrinterCtorTy )(TargetMachine &TM, MCStreamer &Streamer)
 
typedef MCAsmBackend *(* MCAsmBackendCtorTy )(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)
 
typedef MCTargetAsmParser *(* MCAsmParserCtorTy )(MCSubtargetInfo &STI, MCAsmParser &P, const MCInstrInfo &MII)
 
typedef MCDisassembler *(* MCDisassemblerCtorTy )(const Target &T, const MCSubtargetInfo &STI)
 
typedef MCInstPrinter *(* MCInstPrinterCtorTy )(const Target &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI)
 
typedef MCCodeEmitter *(* MCCodeEmitterCtorTy )(const MCInstrInfo &II, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)
 
typedef MCStreamer *(* MCObjectStreamerCtorTy )(const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter, bool RelaxAll, bool NoExecStack)
 
typedef MCStreamer *(* AsmStreamerCtorTy )(MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, bool useCFI, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
 
typedef MCRelocationInfo *(* MCRelocationInfoCtorTy )(StringRef TT, MCContext &Ctx)
 
typedef MCSymbolizer *(* MCSymbolizerCtorTy )(StringRef TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, MCRelocationInfo *RelInfo)
 

Public Member Functions

 Target ()
 
Target Information
const TargetgetNext () const
 
const char * getName () const
 getName - Get the target name. More...
 
const char * getShortDescription () const
 getShortDescription - Get a short description of the target. More...
 
Feature Predicates
bool hasJIT () const
 hasJIT - Check if this targets supports the just-in-time compilation. More...
 
bool hasTargetMachine () const
 hasTargetMachine - Check if this target supports code generation. More...
 
bool hasMCAsmBackend () const
 hasMCAsmBackend - Check if this target supports .o generation. More...
 
Feature Constructors
MCAsmInfocreateMCAsmInfo (const MCRegisterInfo &MRI, StringRef Triple) const
 
MCCodeGenInfocreateMCCodeGenInfo (StringRef Triple, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL) const
 
MCInstrInfocreateMCInstrInfo () const
 
MCInstrAnalysiscreateMCInstrAnalysis (const MCInstrInfo *Info) const
 
MCRegisterInfocreateMCRegInfo (StringRef Triple) const
 
MCSubtargetInfocreateMCSubtargetInfo (StringRef Triple, StringRef CPU, StringRef Features) const
 
TargetMachinecreateTargetMachine (StringRef Triple, StringRef CPU, StringRef Features, const TargetOptions &Options, Reloc::Model RM=Reloc::Default, CodeModel::Model CM=CodeModel::Default, CodeGenOpt::Level OL=CodeGenOpt::Default) const
 
MCAsmBackendcreateMCAsmBackend (const MCRegisterInfo &MRI, StringRef Triple, StringRef CPU) const
 
MCTargetAsmParsercreateMCAsmParser (MCSubtargetInfo &STI, MCAsmParser &Parser, const MCInstrInfo &MII) const
 
AsmPrintercreateAsmPrinter (TargetMachine &TM, MCStreamer &Streamer) const
 
MCDisassemblercreateMCDisassembler (const MCSubtargetInfo &STI) const
 
MCInstPrintercreateMCInstPrinter (unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI) const
 
MCCodeEmittercreateMCCodeEmitter (const MCInstrInfo &II, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx) const
 createMCCodeEmitter - Create a target specific code emitter. More...
 
MCStreamercreateMCObjectStreamer (StringRef TT, MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter, bool RelaxAll, bool NoExecStack) const
 
MCStreamercreateAsmStreamer (MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, bool useCFI, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst) const
 createAsmStreamer - Create a target specific MCStreamer. More...
 
MCRelocationInfocreateMCRelocationInfo (StringRef TT, MCContext &Ctx) const
 
MCSymbolizercreateMCSymbolizer (StringRef TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, MCRelocationInfo *RelInfo) const
 

Friends

struct TargetRegistry
 

Detailed Description

Target - Wrapper for Target specific information.

For registration purposes, this is a POD type so that targets can be registered without the use of static constructors.

Targets should implement a single global instance of this class (which will be zero initialized), and pass that instance to the TargetRegistry as part of their initialization.

Definition at line 78 of file TargetRegistry.h.

Member Typedef Documentation

typedef AsmPrinter*(* llvm::Target::AsmPrinterCtorTy)(TargetMachine &TM, MCStreamer &Streamer)

Definition at line 104 of file TargetRegistry.h.

typedef MCStreamer*(* llvm::Target::AsmStreamerCtorTy)(MCContext &Ctx, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, bool useCFI, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)

Definition at line 133 of file TargetRegistry.h.

typedef MCAsmBackend*(* llvm::Target::MCAsmBackendCtorTy)(const Target &T, const MCRegisterInfo &MRI, StringRef TT, StringRef CPU)

Definition at line 106 of file TargetRegistry.h.

typedef MCAsmInfo*(* llvm::Target::MCAsmInfoCtorFnTy)(const MCRegisterInfo &MRI, StringRef TT)

Definition at line 84 of file TargetRegistry.h.

typedef MCTargetAsmParser*(* llvm::Target::MCAsmParserCtorTy)(MCSubtargetInfo &STI, MCAsmParser &P, const MCInstrInfo &MII)

Definition at line 110 of file TargetRegistry.h.

typedef MCCodeEmitter*(* llvm::Target::MCCodeEmitterCtorTy)(const MCInstrInfo &II, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI, MCContext &Ctx)

Definition at line 121 of file TargetRegistry.h.

typedef MCCodeGenInfo*(* llvm::Target::MCCodeGenInfoCtorFnTy)(StringRef TT, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)

Definition at line 86 of file TargetRegistry.h.

typedef MCDisassembler*(* llvm::Target::MCDisassemblerCtorTy)(const Target &T, const MCSubtargetInfo &STI)

Definition at line 113 of file TargetRegistry.h.

typedef MCInstPrinter*(* llvm::Target::MCInstPrinterCtorTy)(const Target &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI, const MCSubtargetInfo &STI)

Definition at line 115 of file TargetRegistry.h.

typedef MCInstrAnalysis*(* llvm::Target::MCInstrAnalysisCtorFnTy)(const MCInstrInfo *Info)

Definition at line 91 of file TargetRegistry.h.

typedef MCInstrInfo*(* llvm::Target::MCInstrInfoCtorFnTy)(void)

Definition at line 90 of file TargetRegistry.h.

typedef MCStreamer*(* llvm::Target::MCObjectStreamerCtorTy)(const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &_OS, MCCodeEmitter *_Emitter, bool RelaxAll, bool NoExecStack)

Definition at line 125 of file TargetRegistry.h.

typedef MCRegisterInfo*(* llvm::Target::MCRegInfoCtorFnTy)(StringRef TT)

Definition at line 92 of file TargetRegistry.h.

typedef MCRelocationInfo*(* llvm::Target::MCRelocationInfoCtorTy)(StringRef TT, MCContext &Ctx)

Definition at line 143 of file TargetRegistry.h.

typedef MCSubtargetInfo*(* llvm::Target::MCSubtargetInfoCtorFnTy)(StringRef TT, StringRef CPU, StringRef Features)

Definition at line 93 of file TargetRegistry.h.

typedef MCSymbolizer*(* llvm::Target::MCSymbolizerCtorTy)(StringRef TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, MCRelocationInfo *RelInfo)

Definition at line 145 of file TargetRegistry.h.

typedef TargetMachine*(* llvm::Target::TargetMachineCtorTy)(const Target &T, StringRef TT, StringRef CPU, StringRef Features, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)

Definition at line 96 of file TargetRegistry.h.

typedef unsigned(* llvm::Target::TripleMatchQualityFnTy)(const std::string &TT)

Definition at line 82 of file TargetRegistry.h.

Constructor & Destructor Documentation

llvm::Target::Target ( )
inline

Definition at line 239 of file TargetRegistry.h.

Member Function Documentation

AsmPrinter* llvm::Target::createAsmPrinter ( TargetMachine TM,
MCStreamer Streamer 
) const
inline

createAsmPrinter - Create a target specific assembly printer pass. This takes ownership of the MCStreamer object.

Definition at line 378 of file TargetRegistry.h.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

MCStreamer* llvm::Target::createAsmStreamer ( MCContext Ctx,
formatted_raw_ostream OS,
bool  isVerboseAsm,
bool  useLoc,
bool  useCFI,
bool  useDwarfDirectory,
MCInstPrinter InstPrint,
MCCodeEmitter CE,
MCAsmBackend TAB,
bool  ShowInst 
) const
inline

createAsmStreamer - Create a target specific MCStreamer.

Definition at line 433 of file TargetRegistry.h.

References llvm::createAsmStreamer().

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile().

MCAsmBackend* llvm::Target::createMCAsmBackend ( const MCRegisterInfo MRI,
StringRef  Triple,
StringRef  CPU 
) const
inline

createMCAsmBackend - Create a target specific assembly parser.

Parameters
TripleThe target triple string.

Definition at line 357 of file TargetRegistry.h.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

MCAsmInfo* llvm::Target::createMCAsmInfo ( const MCRegisterInfo MRI,
StringRef  Triple 
) const
inline

createMCAsmInfo - Create a MCAsmInfo implementation for the specified target triple.

Parameters
TripleThis argument is used to determine the target machine feature set; it should always be provided. Generally this should be either the target triple from the module, or the target triple of the host if that does not exist.

Definition at line 279 of file TargetRegistry.h.

Referenced by llvm::LLVMTargetMachine::initAsmInfo(), and LLVMCreateDisasmCPU().

MCTargetAsmParser* llvm::Target::createMCAsmParser ( MCSubtargetInfo STI,
MCAsmParser Parser,
const MCInstrInfo MII 
) const
inline

createMCAsmParser - Create a target specific assembly parser.

Parameters
ParserThe target independent parser implementation to use for parsing and lexing.

Definition at line 368 of file TargetRegistry.h.

MCCodeEmitter* llvm::Target::createMCCodeEmitter ( const MCInstrInfo II,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI,
MCContext Ctx 
) const
inline

createMCCodeEmitter - Create a target specific code emitter.

Definition at line 402 of file TargetRegistry.h.

Referenced by llvm::LLVMTargetMachine::addPassesToEmitFile(), and llvm::LLVMTargetMachine::addPassesToEmitMC().

MCCodeGenInfo* llvm::Target::createMCCodeGenInfo ( StringRef  Triple,
Reloc::Model  RM,
CodeModel::Model  CM,
CodeGenOpt::Level  OL 
) const
inline

createMCCodeGenInfo - Create a MCCodeGenInfo implementation.

Definition at line 288 of file TargetRegistry.h.

Referenced by llvm::LLVMTargetMachine::LLVMTargetMachine().

MCDisassembler* llvm::Target::createMCDisassembler ( const MCSubtargetInfo STI) const
inline

Definition at line 384 of file TargetRegistry.h.

Referenced by LLVMCreateDisasmCPU().

MCInstPrinter* llvm::Target::createMCInstPrinter ( unsigned  SyntaxVariant,
const MCAsmInfo MAI,
const MCInstrInfo MII,
const MCRegisterInfo MRI,
const MCSubtargetInfo STI 
) const
inline
MCInstrAnalysis* llvm::Target::createMCInstrAnalysis ( const MCInstrInfo Info) const
inline

createMCInstrAnalysis - Create a MCInstrAnalysis implementation.

Definition at line 306 of file TargetRegistry.h.

MCInstrInfo* llvm::Target::createMCInstrInfo ( ) const
inline

createMCInstrInfo - Create a MCInstrInfo implementation.

Definition at line 298 of file TargetRegistry.h.

Referenced by createX86_32Disassembler(), createX86_64Disassembler(), and LLVMCreateDisasmCPU().

MCStreamer* llvm::Target::createMCObjectStreamer ( StringRef  TT,
MCContext Ctx,
MCAsmBackend TAB,
raw_ostream _OS,
MCCodeEmitter _Emitter,
bool  RelaxAll,
bool  NoExecStack 
) const
inline

createMCObjectStreamer - Create a target specific MCStreamer.

Parameters
TTThe target triple.
CtxThe target context.
TABThe target assembler backend object. Takes ownership.
_OSThe stream object.
_EmitterThe target independent assembler object.Takes ownership.
RelaxAllRelax all fixups?
NoExecStackMark file as not needing a executable stack.

Definition at line 420 of file TargetRegistry.h.

MCRegisterInfo* llvm::Target::createMCRegInfo ( StringRef  Triple) const
inline
MCRelocationInfo* llvm::Target::createMCRelocationInfo ( StringRef  TT,
MCContext Ctx 
) const
inline

createMCRelocationInfo - Create a target specific MCRelocationInfo.

Parameters
TTThe target triple.
CtxThe target context.

Definition at line 457 of file TargetRegistry.h.

References llvm::createMCRelocationInfo().

Referenced by LLVMCreateDisasmCPU().

MCSubtargetInfo* llvm::Target::createMCSubtargetInfo ( StringRef  Triple,
StringRef  CPU,
StringRef  Features 
) const
inline

createMCSubtargetInfo - Create a MCSubtargetInfo implementation.

Parameters
TripleThis argument is used to determine the target machine feature set; it should always be provided. Generally this should be either the target triple from the module, or the target triple of the host if that does not exist.
CPUThis specifies the name of the target CPU.
FeaturesThis specifies the string representation of the additional target features.

Definition at line 329 of file TargetRegistry.h.

Referenced by LLVMCreateDisasmCPU().

MCSymbolizer* llvm::Target::createMCSymbolizer ( StringRef  TT,
LLVMOpInfoCallback  GetOpInfo,
LLVMSymbolLookupCallback  SymbolLookUp,
void *  DisInfo,
MCContext Ctx,
MCRelocationInfo RelInfo 
) const
inline

createMCSymbolizer - Create a target specific MCSymbolizer.

Parameters
TTThe target triple.
GetOpInfoThe function to get the symbolic information for operands.
SymbolLookUpThe function to lookup a symbol name.
DisInfoThe pointer to the block of symbolic information for above call back.
CtxThe target context.
RelInfoThe relocation information for this target. Takes ownership.

Definition at line 474 of file TargetRegistry.h.

References llvm::createMCSymbolizer().

Referenced by LLVMCreateDisasmCPU().

TargetMachine* llvm::Target::createTargetMachine ( StringRef  Triple,
StringRef  CPU,
StringRef  Features,
const TargetOptions Options,
Reloc::Model  RM = Reloc::Default,
CodeModel::Model  CM = CodeModel::Default,
CodeGenOpt::Level  OL = CodeGenOpt::Default 
) const
inline

createTargetMachine - Create a target specific machine implementation for the specified Triple.

Parameters
TripleThis argument is used to determine the target machine feature set; it should always be provided. Generally this should be either the target triple from the module, or the target triple of the host if that does not exist.

Definition at line 343 of file TargetRegistry.h.

References llvm::NVPTX::PTXCvtMode::RM.

Referenced by llvm::EngineBuilder::selectTarget().

const char* llvm::Target::getName ( ) const
inline

getName - Get the target name.

Definition at line 250 of file TargetRegistry.h.

const Target* llvm::Target::getNext ( ) const
inline

Definition at line 247 of file TargetRegistry.h.

Referenced by llvm::TargetRegistry::iterator::operator++().

const char* llvm::Target::getShortDescription ( ) const
inline

getShortDescription - Get a short description of the target.

Definition at line 253 of file TargetRegistry.h.

bool llvm::Target::hasJIT ( ) const
inline

hasJIT - Check if this targets supports the just-in-time compilation.

Definition at line 260 of file TargetRegistry.h.

Referenced by llvm::EngineBuilder::create(), and llvm::TargetRegistry::getClosestTargetForJIT().

bool llvm::Target::hasMCAsmBackend ( ) const
inline

hasMCAsmBackend - Check if this target supports .o generation.

Definition at line 266 of file TargetRegistry.h.

bool llvm::Target::hasTargetMachine ( ) const
inline

hasTargetMachine - Check if this target supports code generation.

Definition at line 263 of file TargetRegistry.h.

Friends And Related Function Documentation

friend struct TargetRegistry
friend

Definition at line 80 of file TargetRegistry.h.


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