LLVM API Documentation

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

TargetRegistry - Generic interface to target specific features. More...

#include <TargetRegistry.h>

Classes

class  iterator
 

Static Public Member Functions

static void printRegisteredTargetsForVersion ()
 
Registry Access
static iterator begin ()
 
static iterator end ()
 
static const TargetlookupTarget (const std::string &Triple, std::string &Error)
 
static const TargetlookupTarget (const std::string &ArchName, Triple &TheTriple, std::string &Error)
 
static const TargetgetClosestTargetForJIT (std::string &Error)
 
Target Registration
static void RegisterTarget (Target &T, const char *Name, const char *ShortDesc, Target::TripleMatchQualityFnTy TQualityFn, bool HasJIT=false)
 
static void RegisterMCAsmInfo (Target &T, Target::MCAsmInfoCtorFnTy Fn)
 
static void RegisterMCCodeGenInfo (Target &T, Target::MCCodeGenInfoCtorFnTy Fn)
 
static void RegisterMCInstrInfo (Target &T, Target::MCInstrInfoCtorFnTy Fn)
 
static void RegisterMCInstrAnalysis (Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
 
static void RegisterMCRegInfo (Target &T, Target::MCRegInfoCtorFnTy Fn)
 
static void RegisterMCSubtargetInfo (Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
 
static void RegisterTargetMachine (Target &T, Target::TargetMachineCtorTy Fn)
 
static void RegisterMCAsmBackend (Target &T, Target::MCAsmBackendCtorTy Fn)
 
static void RegisterMCAsmParser (Target &T, Target::MCAsmParserCtorTy Fn)
 
static void RegisterAsmPrinter (Target &T, Target::AsmPrinterCtorTy Fn)
 
static void RegisterMCDisassembler (Target &T, Target::MCDisassemblerCtorTy Fn)
 
static void RegisterMCInstPrinter (Target &T, Target::MCInstPrinterCtorTy Fn)
 
static void RegisterMCCodeEmitter (Target &T, Target::MCCodeEmitterCtorTy Fn)
 
static void RegisterMCObjectStreamer (Target &T, Target::MCObjectStreamerCtorTy Fn)
 
static void RegisterAsmStreamer (Target &T, Target::AsmStreamerCtorTy Fn)
 
static void RegisterMCRelocationInfo (Target &T, Target::MCRelocationInfoCtorTy Fn)
 
static void RegisterMCSymbolizer (Target &T, Target::MCSymbolizerCtorTy Fn)
 

Detailed Description

TargetRegistry - Generic interface to target specific features.

Definition at line 487 of file TargetRegistry.h.

Member Function Documentation

TargetRegistry::iterator TargetRegistry::begin ( )
static
static iterator llvm::TargetRegistry::end ( )
inlinestatic
const Target * TargetRegistry::getClosestTargetForJIT ( std::string &  Error)
static

getClosestTargetForJIT - Pick the best target that is compatible with the current host. If no close target can be found, this returns null and sets the Error string to a reason.

Maintained for compatibility through 2.6.

Definition at line 127 of file TargetRegistry.cpp.

References llvm::sys::getDefaultTargetTriple(), llvm::Target::hasJIT(), and lookupTarget().

const Target * TargetRegistry::lookupTarget ( const std::string &  Triple,
std::string &  Error 
)
static

lookupTarget - Lookup a target based on a target triple.

Parameters
Triple- The triple to use for finding a target.
Error- On failure, an error string describing why no target was found.

Definition at line 67 of file TargetRegistry.cpp.

References begin(), and end().

Referenced by getClosestTargetForJIT(), LLVMCreateDisasmCPU(), LLVMGetTargetFromTriple(), lookupTarget(), and llvm::EngineBuilder::selectTarget().

const Target * TargetRegistry::lookupTarget ( const std::string &  ArchName,
Triple TheTriple,
std::string &  Error 
)
static

lookupTarget - Lookup a target based on an architecture name and a target triple. If the architecture name is non-empty, then the lookup is done by architecture. Otherwise, the target triple is used.

Parameters
ArchName- The architecture to use for finding a target.
TheTriple- The triple to use for finding a target. The triple is updated with canonical architecture name if a lookup by architecture is done.
Error- On failure, an error string describing why no target was found.

Definition at line 26 of file TargetRegistry.cpp.

References begin(), end(), llvm::Triple::getArchTypeForLLVMName(), llvm::Triple::getTriple(), lookupTarget(), llvm::Triple::setArch(), and llvm::Triple::UnknownArch.

void TargetRegistry::printRegisteredTargetsForVersion ( )
static

printRegisteredTargetsForVersion - Print the registered targets appropriately for inclusion in a tool's version output.

Definition at line 143 of file TargetRegistry.cpp.

References llvm::array_pod_sort(), begin(), end(), I, llvm::outs(), and TargetArraySortFn().

static void llvm::TargetRegistry::RegisterAsmPrinter ( Target T,
Target::AsmPrinterCtorTy  Fn 
)
inlinestatic

RegisterAsmPrinter - Register an AsmPrinter implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an AsmPrinter for the target.

Definition at line 714 of file TargetRegistry.h.

Referenced by LLVMInitializePowerPCAsmPrinter(), LLVMInitializeR600AsmPrinter(), and llvm::RegisterAsmPrinter< AsmPrinterImpl >::RegisterAsmPrinter().

static void llvm::TargetRegistry::RegisterAsmStreamer ( Target T,
Target::AsmStreamerCtorTy  Fn 
)
inlinestatic

RegisterAsmStreamer - Register an assembly MCStreamer implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCStreamer for the target.

Definition at line 783 of file TargetRegistry.h.

Referenced by LLVMInitializeARMTargetMC(), LLVMInitializeMipsTargetMC(), and LLVMInitializePowerPCTargetMC().

static void llvm::TargetRegistry::RegisterMCAsmBackend ( Target T,
Target::MCAsmBackendCtorTy  Fn 
)
inlinestatic

RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an AsmBackend for the target.

Definition at line 688 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), and llvm::RegisterMCAsmBackend< MCAsmBackendImpl >::RegisterMCAsmBackend().

static void llvm::TargetRegistry::RegisterMCAsmInfo ( Target T,
Target::MCAsmInfoCtorFnTy  Fn 
)
inlinestatic

RegisterMCAsmInfo - Register a MCAsmInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a MCAsmInfo for the target.

Definition at line 600 of file TargetRegistry.h.

Referenced by LLVMInitializeSystemZTargetMC(), llvm::RegisterMCAsmInfo< MCAsmInfoImpl >::RegisterMCAsmInfo(), and llvm::RegisterMCAsmInfoFn::RegisterMCAsmInfoFn().

static void llvm::TargetRegistry::RegisterMCAsmParser ( Target T,
Target::MCAsmParserCtorTy  Fn 
)
inlinestatic

RegisterMCAsmParser - Register a MCTargetAsmParser implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCTargetAsmParser for the target.

Definition at line 701 of file TargetRegistry.h.

Referenced by llvm::RegisterMCAsmParser< MCAsmParserImpl >::RegisterMCAsmParser().

static void llvm::TargetRegistry::RegisterMCCodeEmitter ( Target T,
Target::MCCodeEmitterCtorTy  Fn 
)
inlinestatic

RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCCodeEmitter for the target.

Definition at line 755 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), and llvm::RegisterMCCodeEmitter< MCCodeEmitterImpl >::RegisterMCCodeEmitter().

static void llvm::TargetRegistry::RegisterMCCodeGenInfo ( Target T,
Target::MCCodeGenInfoCtorFnTy  Fn 
)
inlinestatic

RegisterMCCodeGenInfo - Register a MCCodeGenInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a MCCodeGenInfo for the target.

Definition at line 613 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeXCoreTargetMC(), llvm::RegisterMCCodeGenInfo< MCCodeGenInfoImpl >::RegisterMCCodeGenInfo(), and llvm::RegisterMCCodeGenInfoFn::RegisterMCCodeGenInfoFn().

static void llvm::TargetRegistry::RegisterMCDisassembler ( Target T,
Target::MCDisassemblerCtorTy  Fn 
)
inlinestatic

RegisterMCDisassembler - Register a MCDisassembler implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCDisassembler for the target.

Definition at line 727 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64Disassembler(), LLVMInitializeARMDisassembler(), LLVMInitializeMipsDisassembler(), LLVMInitializeSystemZDisassembler(), LLVMInitializeX86Disassembler(), and LLVMInitializeXCoreDisassembler().

static void llvm::TargetRegistry::RegisterMCInstPrinter ( Target T,
Target::MCInstPrinterCtorTy  Fn 
)
inlinestatic

RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCInstPrinter for the target.

Definition at line 741 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeHexagonAsmPrinter(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), and LLVMInitializeXCoreTargetMC().

static void llvm::TargetRegistry::RegisterMCInstrAnalysis ( Target T,
Target::MCInstrAnalysisCtorFnTy  Fn 
)
inlinestatic
static void llvm::TargetRegistry::RegisterMCInstrInfo ( Target T,
Target::MCInstrInfoCtorFnTy  Fn 
)
inlinestatic

RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a MCInstrInfo for the target.

Definition at line 627 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), llvm::RegisterMCInstrInfo< MCInstrInfoImpl >::RegisterMCInstrInfo(), and llvm::RegisterMCInstrInfoFn::RegisterMCInstrInfoFn().

static void llvm::TargetRegistry::RegisterMCObjectStreamer ( Target T,
Target::MCObjectStreamerCtorTy  Fn 
)
inlinestatic

RegisterMCObjectStreamer - Register a object code MCStreamer implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCStreamer for the target.

Definition at line 769 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSystemZTargetMC(), and LLVMInitializeX86TargetMC().

static void llvm::TargetRegistry::RegisterMCRegInfo ( Target T,
Target::MCRegInfoCtorFnTy  Fn 
)
inlinestatic

RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a MCRegisterInfo for the target.

Definition at line 647 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), llvm::RegisterMCRegInfo< MCRegisterInfoImpl >::RegisterMCRegInfo(), and llvm::RegisterMCRegInfoFn::RegisterMCRegInfoFn().

static void llvm::TargetRegistry::RegisterMCRelocationInfo ( Target T,
Target::MCRelocationInfoCtorTy  Fn 
)
inlinestatic

RegisterMCRelocationInfo - Register an MCRelocationInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCRelocationInfo for the target.

Definition at line 796 of file TargetRegistry.h.

Referenced by LLVMInitializeARMTargetMC(), and LLVMInitializeX86TargetMC().

static void llvm::TargetRegistry::RegisterMCSubtargetInfo ( Target T,
Target::MCSubtargetInfoCtorFnTy  Fn 
)
inlinestatic

RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a MCSubtargetInfo for the target.

Definition at line 660 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeR600TargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), llvm::RegisterMCSubtargetInfo< MCSubtargetInfoImpl >::RegisterMCSubtargetInfo(), and llvm::RegisterMCSubtargetInfoFn::RegisterMCSubtargetInfoFn().

static void llvm::TargetRegistry::RegisterMCSymbolizer ( Target T,
Target::MCSymbolizerCtorTy  Fn 
)
inlinestatic

RegisterMCSymbolizer - Register an MCSymbolizer implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct an MCSymbolizer for the target.

Definition at line 810 of file TargetRegistry.h.

void TargetRegistry::RegisterTarget ( Target T,
const char *  Name,
const char *  ShortDesc,
Target::TripleMatchQualityFnTy  TQualityFn,
bool  HasJIT = false 
)
static

RegisterTarget - Register the given target. Attempts to register a target which has already been registered will be ignored.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Name- The target name. This should be a static string.
ShortDesc- A short target description. This should be a static string.
TQualityFn- The triple match quality computation function for this target.
HasJIT- Whether the target supports JIT code generation.

Definition at line 104 of file TargetRegistry.cpp.

References FirstTarget, and T.

Referenced by LLVMInitializeCppBackendTargetInfo(), and llvm::RegisterTarget< TargetArchType, HasJIT >::RegisterTarget().

static void llvm::TargetRegistry::RegisterTargetMachine ( Target T,
Target::TargetMachineCtorTy  Fn 
)
inlinestatic

RegisterTargetMachine - Register a TargetMachine implementation for the given target.

Clients are responsible for ensuring that registration doesn't occur while another thread is attempting to access the registry. Typically this is done by initializing all targets at program startup.

Parameters
T- The target being registered.
Fn- A function to construct a TargetMachine for the target.

Definition at line 674 of file TargetRegistry.h.

Referenced by llvm::RegisterTargetMachine< TargetMachineImpl >::RegisterTargetMachine().


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