LLVM  mainline
Classes | Public Member Functions | Static Public Member Functions
llvm::TargetRegistry Struct Reference

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

#include <TargetRegistry.h>

List of all members.

Classes

class  iterator

Public Member Functions

 TargetRegistry ()

Static Public Member Functions

static void printRegisteredTargetsForVersion ()
 printRegisteredTargetsForVersion - Print the registered targets appropriately for inclusion in a tool's version output.
static void RegisterTarget (Target &T, const char *Name, const char *ShortDesc, Target::ArchMatchFnTy ArchMatchFn, bool HasJIT=false)
 RegisterTarget - Register the given target.
static void RegisterMCAsmInfo (Target &T, Target::MCAsmInfoCtorFnTy Fn)
 RegisterMCAsmInfo - Register a MCAsmInfo implementation for the given target.
static void RegisterMCCodeGenInfo (Target &T, Target::MCCodeGenInfoCtorFnTy Fn)
 RegisterMCCodeGenInfo - Register a MCCodeGenInfo implementation for the given target.
static void RegisterMCInstrInfo (Target &T, Target::MCInstrInfoCtorFnTy Fn)
 RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target.
static void RegisterMCInstrAnalysis (Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
 RegisterMCInstrAnalysis - Register a MCInstrAnalysis implementation for the given target.
static void RegisterMCRegInfo (Target &T, Target::MCRegInfoCtorFnTy Fn)
 RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.
static void RegisterMCSubtargetInfo (Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
 RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target.
static void RegisterTargetMachine (Target &T, Target::TargetMachineCtorTy Fn)
 RegisterTargetMachine - Register a TargetMachine implementation for the given target.
static void RegisterMCAsmBackend (Target &T, Target::MCAsmBackendCtorTy Fn)
 RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.
static void RegisterMCAsmParser (Target &T, Target::MCAsmParserCtorTy Fn)
 RegisterMCAsmParser - Register a MCTargetAsmParser implementation for the given target.
static void RegisterAsmPrinter (Target &T, Target::AsmPrinterCtorTy Fn)
 RegisterAsmPrinter - Register an AsmPrinter implementation for the given target.
static void RegisterMCDisassembler (Target &T, Target::MCDisassemblerCtorTy Fn)
 RegisterMCDisassembler - Register a MCDisassembler implementation for the given target.
static void RegisterMCInstPrinter (Target &T, Target::MCInstPrinterCtorTy Fn)
 RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.
static void RegisterMCCodeEmitter (Target &T, Target::MCCodeEmitterCtorTy Fn)
 RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.
static void RegisterCOFFStreamer (Target &T, Target::COFFStreamerCtorTy Fn)
static void RegisterMachOStreamer (Target &T, Target::MachOStreamerCtorTy Fn)
static void RegisterELFStreamer (Target &T, Target::ELFStreamerCtorTy Fn)
static void RegisterNullTargetStreamer (Target &T, Target::NullTargetStreamerCtorTy Fn)
static void RegisterAsmTargetStreamer (Target &T, Target::AsmTargetStreamerCtorTy Fn)
static void RegisterObjectTargetStreamer (Target &T, Target::ObjectTargetStreamerCtorTy Fn)
static void RegisterMCRelocationInfo (Target &T, Target::MCRelocationInfoCtorTy Fn)
 RegisterMCRelocationInfo - Register an MCRelocationInfo implementation for the given target.
static void RegisterMCSymbolizer (Target &T, Target::MCSymbolizerCtorTy Fn)
 RegisterMCSymbolizer - Register an MCSymbolizer implementation for the given target.
Registry Access
static iterator_range< iteratortargets ()
static const TargetlookupTarget (const std::string &Triple, std::string &Error)
 lookupTarget - Lookup a target based on a target triple.
static const TargetlookupTarget (const std::string &ArchName, Triple &TheTriple, std::string &Error)
 lookupTarget - Lookup a target based on an architecture name and a target triple.

Detailed Description

TargetRegistry - Generic interface to target specific features.

Definition at line 544 of file TargetRegistry.h.


Constructor & Destructor Documentation


Member Function Documentation

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 64 of file TargetRegistry.cpp.

References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::Triple::getArch(), I, T, and targets().

Referenced by llvm::object::IRObjectFile::IRObjectFile(), LLVMCreateDisasmCPUFeatures(), LLVMGetTargetFromTriple(), lookupTarget(), llvm::EngineBuilder::selectTarget(), and llvm::splitCodeGen().

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 25 of file TargetRegistry.cpp.

References llvm::sys::path::begin(), llvm::sys::path::end(), llvm::Triple::getArchTypeForLLVMName(), llvm::Target::getName(), llvm::Triple::getTriple(), I, lookupTarget(), llvm::Triple::setArch(), targets(), and llvm::Triple::UnknownArch.

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

Definition at line 119 of file TargetRegistry.cpp.

References llvm::array_pod_sort(), llvm::outs(), T, TargetArraySortFn(), and targets().

static void llvm::TargetRegistry::RegisterAsmPrinter ( Target T,
Target::AsmPrinterCtorTy  Fn 
) [inline, static]

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 756 of file TargetRegistry.h.

Referenced by LLVMInitializeAMDGPUAsmPrinter(), and LLVMInitializePowerPCAsmPrinter().

static void llvm::TargetRegistry::RegisterCOFFStreamer ( Target T,
Target::COFFStreamerCtorTy  Fn 
) [inline, static]

Definition at line 800 of file TargetRegistry.h.

Referenced by LLVMInitializeARMTargetMC(), and LLVMInitializeX86TargetMC().

static void llvm::TargetRegistry::RegisterELFStreamer ( Target T,
Target::ELFStreamerCtorTy  Fn 
) [inline, static]
static void llvm::TargetRegistry::RegisterMachOStreamer ( Target T,
Target::MachOStreamerCtorTy  Fn 
) [inline, static]

Definition at line 804 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), and LLVMInitializeARMTargetMC().

static void llvm::TargetRegistry::RegisterMCAsmBackend ( Target T,
Target::MCAsmBackendCtorTy  Fn 
) [inline, static]

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 730 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), and LLVMInitializeX86TargetMC().

static void llvm::TargetRegistry::RegisterMCAsmInfo ( Target T,
Target::MCAsmInfoCtorFnTy  Fn 
) [inline, static]

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 643 of file TargetRegistry.h.

Referenced by LLVMInitializeSystemZTargetMC(), and llvm::RegisterMCAsmInfoFn::RegisterMCAsmInfoFn().

static void llvm::TargetRegistry::RegisterMCAsmParser ( Target T,
Target::MCAsmParserCtorTy  Fn 
) [inline, static]

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 743 of file TargetRegistry.h.

static void llvm::TargetRegistry::RegisterMCCodeEmitter ( Target T,
Target::MCCodeEmitterCtorTy  Fn 
) [inline, static]

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 796 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), and LLVMInitializeX86TargetMC().

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 656 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeXCoreTargetMC(), and llvm::RegisterMCCodeGenInfoFn::RegisterMCCodeGenInfoFn().

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 769 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64Disassembler(), LLVMInitializeARMDisassembler(), LLVMInitializeHexagonDisassembler(), LLVMInitializeMipsDisassembler(), LLVMInitializePowerPCDisassembler(), LLVMInitializeSparcDisassembler(), LLVMInitializeSystemZDisassembler(), LLVMInitializeWebAssemblyDisassembler(), LLVMInitializeX86Disassembler(), and LLVMInitializeXCoreDisassembler().

static void llvm::TargetRegistry::RegisterMCInstPrinter ( Target T,
Target::MCInstPrinterCtorTy  Fn 
) [inline, static]

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 783 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), LLVMInitializeX86TargetMC(), and LLVMInitializeXCoreTargetMC().

static void llvm::TargetRegistry::RegisterMCInstrInfo ( Target T,
Target::MCInstrInfoCtorFnTy  Fn 
) [inline, static]

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 670 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), and llvm::RegisterMCInstrInfoFn::RegisterMCInstrInfoFn().

static void llvm::TargetRegistry::RegisterMCRegInfo ( Target T,
Target::MCRegInfoCtorFnTy  Fn 
) [inline, static]

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 690 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), and llvm::RegisterMCRegInfoFn::RegisterMCRegInfoFn().

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 837 of file TargetRegistry.h.

Referenced by LLVMInitializeARMTargetMC(), and LLVMInitializeX86TargetMC().

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 703 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64TargetMC(), LLVMInitializeAMDGPUTargetMC(), LLVMInitializeARMTargetMC(), LLVMInitializeBPFTargetMC(), LLVMInitializeHexagonTargetMC(), LLVMInitializeMipsTargetMC(), LLVMInitializeMSP430TargetMC(), LLVMInitializeNVPTXTargetMC(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcTargetMC(), LLVMInitializeSystemZTargetMC(), LLVMInitializeWebAssemblyTargetMC(), LLVMInitializeX86TargetMC(), LLVMInitializeXCoreTargetMC(), and llvm::RegisterMCSubtargetInfoFn::RegisterMCSubtargetInfoFn().

static void llvm::TargetRegistry::RegisterMCSymbolizer ( Target T,
Target::MCSymbolizerCtorTy  Fn 
) [inline, static]

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 851 of file TargetRegistry.h.

Referenced by LLVMInitializeAArch64Disassembler().

Definition at line 812 of file TargetRegistry.h.

Referenced by LLVMInitializeARMTargetMC(), and LLVMInitializeMipsTargetMC().

void TargetRegistry::RegisterTarget ( Target T,
const char *  Name,
const char *  ShortDesc,
Target::ArchMatchFnTy  ArchMatchFn,
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.
ArchMatchFn- The arch match checking function for this target.
HasJIT- Whether the target supports JIT code generation.

Definition at line 91 of file TargetRegistry.cpp.

References FirstTarget, Name, and T.

Referenced by LLVMInitializeAArch64TargetInfo(), LLVMInitializeBPFTargetInfo(), and LLVMInitializeCppBackendTargetInfo().

static void llvm::TargetRegistry::RegisterTargetMachine ( Target T,
Target::TargetMachineCtorTy  Fn 
) [inline, static]

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 717 of file TargetRegistry.h.


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