19 #ifndef LLVM_SUPPORT_TARGETREGISTRY_H 20 #define LLVM_SUPPORT_TARGETREGISTRY_H 47 class MCInstrAnalysis;
51 class MCRelocationInfo;
53 class MCSubtargetInfo;
55 class MCTargetAsmParser;
56 class MCTargetOptions;
57 class MCTargetStreamer;
59 class raw_pwrite_stream;
84 bool isVerboseAsm,
bool useDwarfDirectory,
85 MCInstPrinter *InstPrint, std::unique_ptr<MCCodeEmitter> &&CE,
86 std::unique_ptr<MCAsmBackend> &&TAB,
bool ShowInst);
89 std::unique_ptr<MCAsmBackend> &&TAB,
90 std::unique_ptr<MCObjectWriter> &&OW,
91 std::unique_ptr<MCCodeEmitter> &&CE,
94 std::unique_ptr<MCAsmBackend> &&TAB,
95 std::unique_ptr<MCObjectWriter> &&OW,
96 std::unique_ptr<MCCodeEmitter> &&CE,
97 bool RelaxAll,
bool DWARFMustBeAtTheEnd,
98 bool LabelSections =
false);
100 std::unique_ptr<MCAsmBackend> &&TAB,
101 std::unique_ptr<MCObjectWriter> &&OW,
102 std::unique_ptr<MCCodeEmitter> &&CE,
109 void *DisInfo, MCContext *Ctx,
110 std::unique_ptr<MCRelocationInfo> &&RelInfo);
154 unsigned SyntaxVariant,
163 std::unique_ptr<MCAsmBackend> &&TAB,
164 std::unique_ptr<MCObjectWriter> &&OW,
165 std::unique_ptr<MCCodeEmitter> &&Emitter,
bool RelaxAll);
168 std::unique_ptr<MCObjectWriter> &&OW,
169 std::unique_ptr<MCCodeEmitter> &&Emitter,
bool RelaxAll,
170 bool DWARFMustBeAtTheEnd);
173 std::unique_ptr<MCObjectWriter> &&OW,
174 std::unique_ptr<MCCodeEmitter> &&Emitter,
bool RelaxAll,
175 bool IncrementalLinkerCompatible);
178 std::unique_ptr<MCAsmBackend> &&TAB,
179 std::unique_ptr<MCObjectWriter> &&OW,
180 std::unique_ptr<MCCodeEmitter> &&Emitter,
bool RelaxAll);
192 std::unique_ptr<MCRelocationInfo> &&RelInfo);
206 const char *ShortDesc;
210 const char *BackendName;
233 MCSubtargetInfoCtorFnTy MCSubtargetInfoCtorFn;
237 TargetMachineCtorTy TargetMachineCtorFn;
241 MCAsmBackendCtorTy MCAsmBackendCtorFn;
245 MCAsmParserCtorTy MCAsmParserCtorFn;
249 AsmPrinterCtorTy AsmPrinterCtorFn;
253 MCDisassemblerCtorTy MCDisassemblerCtorFn;
257 MCInstPrinterCtorTy MCInstPrinterCtorFn;
261 MCCodeEmitterCtorTy MCCodeEmitterCtorFn;
264 COFFStreamerCtorTy COFFStreamerCtorFn =
nullptr;
265 MachOStreamerCtorTy MachOStreamerCtorFn =
nullptr;
266 ELFStreamerCtorTy ELFStreamerCtorFn =
nullptr;
267 WasmStreamerCtorTy WasmStreamerCtorFn =
nullptr;
275 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn =
nullptr;
279 ObjectTargetStreamerCtorTy ObjectTargetStreamerCtorFn =
nullptr;
283 MCRelocationInfoCtorTy MCRelocationInfoCtorFn =
nullptr;
287 MCSymbolizerCtorTy MCSymbolizerCtorFn =
nullptr;
336 if (!MCAsmInfoCtorFn)
338 return MCAsmInfoCtorFn(MRI,
Triple(TheTriple));
344 if (!MCInstrInfoCtorFn)
346 return MCInstrInfoCtorFn();
352 if (!MCInstrAnalysisCtorFn)
354 return MCInstrAnalysisCtorFn(Info);
360 if (!MCRegInfoCtorFn)
362 return MCRegInfoCtorFn(
Triple(TT));
376 if (!MCSubtargetInfoCtorFn)
378 return MCSubtargetInfoCtorFn(
Triple(TheTriple), CPU, Features);
394 bool JIT =
false)
const {
395 if (!TargetMachineCtorFn)
397 return TargetMachineCtorFn(*
this,
Triple(TT), CPU, Features, Options, RM,
405 if (!MCAsmBackendCtorFn)
407 return MCAsmBackendCtorFn(*
this, STI, MRI, Options);
418 if (!MCAsmParserCtorFn)
420 return MCAsmParserCtorFn(STI, Parser, MII, Options);
426 std::unique_ptr<MCStreamer> &&Streamer)
const {
427 if (!AsmPrinterCtorFn)
429 return AsmPrinterCtorFn(TM, std::move(Streamer));
434 if (!MCDisassemblerCtorFn)
436 return MCDisassemblerCtorFn(*
this, STI, Ctx);
443 if (!MCInstPrinterCtorFn)
445 return MCInstPrinterCtorFn(T, SyntaxVariant, MAI, MII, MRI);
452 if (!MCCodeEmitterCtorFn)
454 return MCCodeEmitterCtorFn(II, MRI, Ctx);
466 std::unique_ptr<MCAsmBackend> &&TAB,
467 std::unique_ptr<MCObjectWriter> &&OW,
468 std::unique_ptr<MCCodeEmitter> &&Emitter,
470 bool IncrementalLinkerCompatible,
471 bool DWARFMustBeAtTheEnd)
const {
478 S = COFFStreamerCtorFn(Ctx, std::move(TAB), std::move(OW),
479 std::move(Emitter), RelaxAll,
480 IncrementalLinkerCompatible);
483 if (MachOStreamerCtorFn)
484 S = MachOStreamerCtorFn(Ctx, std::move(TAB), std::move(OW),
485 std::move(Emitter), RelaxAll,
486 DWARFMustBeAtTheEnd);
489 std::move(Emitter), RelaxAll,
490 DWARFMustBeAtTheEnd);
493 if (ELFStreamerCtorFn)
494 S = ELFStreamerCtorFn(T, Ctx, std::move(TAB), std::move(OW),
495 std::move(Emitter), RelaxAll);
498 std::move(Emitter), RelaxAll);
501 if (WasmStreamerCtorFn)
502 S = WasmStreamerCtorFn(T, Ctx, std::move(TAB), std::move(OW),
503 std::move(Emitter), RelaxAll);
506 std::move(Emitter), RelaxAll);
509 if (ObjectTargetStreamerCtorFn)
510 ObjectTargetStreamerCtorFn(*S, STI);
515 std::unique_ptr<formatted_raw_ostream> OS,
516 bool IsVerboseAsm,
bool UseDwarfDirectory,
518 std::unique_ptr<MCCodeEmitter> &&CE,
519 std::unique_ptr<MCAsmBackend> &&TAB,
520 bool ShowInst)
const {
523 Ctx, std::move(OS), IsVerboseAsm, UseDwarfDirectory, InstPrint,
524 std::move(CE), std::move(TAB), ShowInst);
532 bool IsVerboseAsm)
const {
533 if (AsmTargetStreamerCtorFn)
534 return AsmTargetStreamerCtorFn(S, OS, InstPrint, IsVerboseAsm);
545 if (NullTargetStreamerCtorFn)
546 return NullTargetStreamerCtorFn(S);
555 MCRelocationInfoCtorTy Fn = MCRelocationInfoCtorFn
556 ? MCRelocationInfoCtorFn
558 return Fn(
Triple(TT), Ctx);
577 std::unique_ptr<MCRelocationInfo> &&RelInfo)
const {
578 MCSymbolizerCtorTy Fn =
580 return Fn(
Triple(TT), GetOpInfo, SymbolLookUp, DisInfo, Ctx,
596 :
public std::iterator<std::forward_iterator_tag, Target, ptrdiff_t> {
599 const Target *Current =
nullptr;
611 assert(Current &&
"Cannot increment end iterator!");
622 assert(Current &&
"Cannot dereference end iterator!");
631 static void printRegisteredTargetsForVersion(
raw_ostream &OS);
643 static const Target *lookupTarget(
const std::string &
Triple,
657 static const Target *lookupTarget(
const std::string &ArchName,
658 Triple &TheTriple, std::string &Error);
683 const char *BackendName,
685 bool HasJIT =
false);
697 T.MCAsmInfoCtorFn = Fn;
710 T.MCInstrInfoCtorFn = Fn;
717 T.MCInstrAnalysisCtorFn = Fn;
730 T.MCRegInfoCtorFn = Fn;
744 T.MCSubtargetInfoCtorFn = Fn;
757 T.TargetMachineCtorFn = Fn;
770 T.MCAsmBackendCtorFn = Fn;
783 T.MCAsmParserCtorFn = Fn;
796 T.AsmPrinterCtorFn = Fn;
810 T.MCDisassemblerCtorFn = Fn;
823 T.MCInstPrinterCtorFn = Fn;
836 T.MCCodeEmitterCtorFn = Fn;
840 T.COFFStreamerCtorFn = Fn;
844 T.MachOStreamerCtorFn = Fn;
848 T.ELFStreamerCtorFn = Fn;
852 T.WasmStreamerCtorFn = Fn;
857 T.NullTargetStreamerCtorFn = Fn;
862 T.AsmTargetStreamerCtorFn = Fn;
868 T.ObjectTargetStreamerCtorFn = Fn;
882 T.MCRelocationInfoCtorFn = Fn;
895 T.MCSymbolizerCtorFn = Fn;
919 const char *BackendName) {
925 return Arch == TargetArchType;
943 static MCAsmInfo *
Allocator(
const MCRegisterInfo & ,
945 return new MCAsmInfoImpl(TT);
977 static MCInstrInfo *
Allocator() {
return new MCInstrInfoImpl(); }
1008 static MCInstrAnalysis *
Allocator(
const MCInstrInfo *
Info) {
1009 return new MCInstrAnalysisImpl(Info);
1041 static MCRegisterInfo *
Allocator(
const Triple & ) {
1042 return new MCRegisterInfoImpl();
1074 static MCSubtargetInfo *
Allocator(
const Triple & , StringRef ,
1076 return new MCSubtargetInfoImpl();
1108 static TargetMachine *
1110 const TargetOptions &Options, Optional<Reloc::Model>
RM,
1112 return new TargetMachineImpl(T, TT, CPU, FS, Options, RM, CM, OL, JIT);
1129 static MCAsmBackend *
Allocator(
const Target &
T,
const MCSubtargetInfo &STI,
1130 const MCRegisterInfo &
MRI,
1131 const MCTargetOptions &Options) {
1132 return new MCAsmBackendImpl(T, STI, MRI);
1150 static MCTargetAsmParser *
Allocator(
const MCSubtargetInfo &STI,
1151 MCAsmParser &
P,
const MCInstrInfo &MII,
1152 const MCTargetOptions &Options) {
1153 return new MCAsmParserImpl(STI, P, MII, Options);
1172 std::unique_ptr<MCStreamer> &&Streamer) {
1173 return new AsmPrinterImpl(TM, std::move(Streamer));
1191 static MCCodeEmitter *
Allocator(
const MCInstrInfo & ,
1192 const MCRegisterInfo & ,
1194 return new MCCodeEmitterImpl();
1200 #endif // LLVM_SUPPORT_TARGETREGISTRY_H const Target * operator->() const
RegisterMCSubtargetInfoFn(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
MCTargetStreamer *(*)(MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool IsVerboseAsm) AsmTargetStreamerCtorTy
MCStreamer * createMCObjectStreamer(const Triple &T, MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, const MCSubtargetInfo &STI, bool RelaxAll, bool IncrementalLinkerCompatible, bool DWARFMustBeAtTheEnd) const
Create a target specific MCStreamer.
RegisterMCInstrInfoFn - Helper template for registering a target instruction info implementation...
This class represents lattice values for constants.
RegisterMCAsmInfoFn(Target &T, Target::MCAsmInfoCtorFnTy Fn)
Generic assembler parser interface, for use by target specific assembly parsers.
TargetMachine * createTargetMachine(StringRef TT, StringRef CPU, StringRef Features, const TargetOptions &Options, Optional< Reloc::Model > RM, Optional< CodeModel::Model > CM=None, CodeGenOpt::Level OL=CodeGenOpt::Default, bool JIT=false) const
createTargetMachine - Create a target specific machine implementation for the specified Triple...
bool hasTargetMachine() const
hasTargetMachine - Check if this target supports code generation.
RegisterMCSubtargetInfo - Helper template for registering a target subtarget info implementation...
static void RegisterMCInstrAnalysis(Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
RegisterMCInstrAnalysis - Register a MCInstrAnalysis implementation for the given target...
MCTargetAsmParser - Generic interface to target specific assembly parsers.
Superclass for all disassemblers.
This provides a very simple, boring adaptor for a begin and end iterator into a range type...
MCCodeEmitter *(*)(const MCInstrInfo &II, const MCRegisterInfo &MRI, MCContext &Ctx) MCCodeEmitterCtorTy
MCSymbolizer *(*)(const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo) MCSymbolizerCtorTy
Target specific streamer interface.
MCAsmBackend * createMCAsmBackend(const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) const
createMCAsmBackend - Create a target specific assembly parser.
RegisterMCCodeEmitter(Target &T)
MCInstrInfo * createMCInstrInfo() const
createMCInstrInfo - Create a MCInstrInfo implementation.
MCSubtargetInfo *(*)(const Triple &TT, StringRef CPU, StringRef Features) MCSubtargetInfoCtorFnTy
MCStreamer * createNullStreamer(MCContext &Ctx)
Create a dummy machine code streamer, which does nothing.
RegisterMCInstrAnalysis(Target &T)
const FeatureBitset Features
MCTargetStreamer *(*)(MCStreamer &S) NullTargetStreamerCtorTy
MCDisassembler * createMCDisassembler(const MCSubtargetInfo &STI, MCContext &Ctx) const
static void RegisterMCDisassembler(Target &T, Target::MCDisassemblerCtorTy Fn)
RegisterMCDisassembler - Register a MCDisassembler implementation for the given target.
TargetRegistry - Generic interface to target specific features.
static void RegisterMCInstPrinter(Target &T, Target::MCInstPrinterCtorTy Fn)
RegisterMCInstPrinter - Register a MCInstPrinter implementation for the given target.
MCSymbolizer * createMCSymbolizer(const Triple &TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo)
static void RegisterAsmTargetStreamer(Target &T, Target::AsmTargetStreamerCtorTy Fn)
RegisterMCInstrAnalysisFn - Helper template for registering a target instruction analyzer implementat...
static void RegisterWasmStreamer(Target &T, Target::WasmStreamerCtorTy Fn)
const char * getShortDescription() const
getShortDescription - Get a short description of the target.
const char * getName() const
getName - Get the target name.
RegisterMCAsmBackend(Target &T)
RegisterTargetMachine(Target &T)
amdgpu Simplify well known AMD library false Value Value const Twine & Name
MCInstPrinter * createMCInstPrinter(const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI) const
bool hasMCAsmParser() const
hasMCAsmParser - Check if this target supports assembly parsing.
RegisterMCRegInfoFn - Helper template for registering a target register info implementation.
static void RegisterCOFFStreamer(Target &T, Target::COFFStreamerCtorTy Fn)
int(* LLVMOpInfoCallback)(void *DisInfo, uint64_t PC, uint64_t Offset, uint64_t Size, int TagType, void *TagBuf)
The type for the operand information call back function.
MCAsmBackend *(*)(const Target &T, const MCSubtargetInfo &STI, const MCRegisterInfo &MRI, const MCTargetOptions &Options) MCAsmBackendCtorTy
APInt operator*(APInt a, uint64_t RHS)
MCInstrAnalysis *(*)(const MCInstrInfo *Info) MCInstrAnalysisCtorFnTy
Context object for machine code objects.
MCStreamer * createNullStreamer(MCContext &Ctx) const
MCRegisterInfo *(*)(const Triple &TT) MCRegInfoCtorFnTy
RegisterTargetMachine - Helper template for registering a target machine implementation, for use in the target machine initialization function.
RegisterMCAsmParser - Helper template for registering a target specific assembly parser, for use in the target machine initialization function.
static void RegisterTargetMachine(Target &T, Target::TargetMachineCtorTy Fn)
RegisterTargetMachine - Register a TargetMachine implementation for the given target.
MCStreamer * createAsmStreamer(MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool isVerboseAsm, bool useDwarfDirectory, MCInstPrinter *InstPrint, MCCodeEmitter *CE, MCAsmBackend *TAB, bool ShowInst)
Create a machine code streamer which will print out assembly for the native target, suitable for compiling with a native assembler.
RegisterAsmPrinter - Helper template for registering a target specific assembly printer, for use in the target machine initialization function.
RegisterMCInstrAnalysis - Helper template for registering a target instruction analyzer implementatio...
const Target & operator*() const
MCCodeEmitter * createMCCodeEmitter(const MCInstrInfo &II, const MCRegisterInfo &MRI, MCContext &Ctx) const
createMCCodeEmitter - Create a target specific code emitter.
AsmPrinter *(*)(TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer) AsmPrinterCtorTy
Analysis containing CSE Info
MCRelocationInfo * createMCRelocationInfo(const Triple &TT, MCContext &Ctx)
MCRegisterInfo base class - We assume that the target defines a static array of MCRegisterDesc object...
This class is intended to be used as a base class for asm properties and features specific to the tar...
bool isOSWindows() const
Tests whether the OS is Windows.
const Target * getNext() const
static void RegisterMCAsmBackend(Target &T, Target::MCAsmBackendCtorTy Fn)
RegisterMCAsmBackend - Register a MCAsmBackend implementation for the given target.
RegisterMCSubtargetInfoFn - Helper template for registering a target subtarget info implementation...
Streaming machine code generation interface.
MCTargetAsmParser *(*)(const MCSubtargetInfo &STI, MCAsmParser &P, const MCInstrInfo &MII, const MCTargetOptions &Options) MCAsmParserCtorTy
unsigned const MachineRegisterInfo * MRI
RegisterAsmPrinter(Target &T)
AsmPrinter * createAsmPrinter(TargetMachine &TM, std::unique_ptr< MCStreamer > &&Streamer) const
createAsmPrinter - Create a target specific assembly printer pass.
static void RegisterMCAsmParser(Target &T, Target::MCAsmParserCtorTy Fn)
RegisterMCAsmParser - Register a MCTargetAsmParser implementation for the given target.
Symbolize and annotate disassembled instructions.
MCDisassembler *(*)(const Target &T, const MCSubtargetInfo &STI, MCContext &Ctx) MCDisassemblerCtorTy
static void RegisterMachOStreamer(Target &T, Target::MachOStreamerCtorTy Fn)
MCStreamer * createELFStreamer(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll)
MCCodeEmitter - Generic instruction encoding interface.
Interface to description of machine instruction set.
RegisterMCRegInfo(Target &T)
This class is intended to be used as a driving class for all asm writers.
bool(*)(Triple::ArchType Arch) ArchMatchFnTy
static void RegisterTarget(Target &T, const char *Name, const char *ShortDesc, const char *BackendName, Target::ArchMatchFnTy ArchMatchFn, bool HasJIT=false)
RegisterTarget - Register the given target.
Create MCExprs from relocations found in an object file.
MCRegisterInfo * createMCRegInfo(StringRef TT) const
createMCRegInfo - Create a MCRegisterInfo implementation.
static void RegisterMCAsmInfo(Target &T, Target::MCAsmInfoCtorFnTy Fn)
RegisterMCAsmInfo - Register a MCAsmInfo implementation for the given target.
MCTargetAsmParser * createMCAsmParser(const MCSubtargetInfo &STI, MCAsmParser &Parser, const MCInstrInfo &MII, const MCTargetOptions &Options) const
createMCAsmParser - Create a target specific assembly parser.
static void RegisterMCSubtargetInfo(Target &T, Target::MCSubtargetInfoCtorFnTy Fn)
RegisterMCSubtargetInfo - Register a MCSubtargetInfo implementation for the given target...
static void RegisterObjectTargetStreamer(Target &T, Target::ObjectTargetStreamerCtorTy Fn)
friend struct TargetRegistry
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
Triple - Helper class for working with autoconf configuration names.
MCTargetStreamer * createAsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, bool IsVerboseAsm) const
RegisterMCAsmBackend - Helper template for registering a target specific assembler backend...
MCInstrAnalysis * createMCInstrAnalysis(const MCInstrInfo *Info) const
createMCInstrAnalysis - Create a MCInstrAnalysis implementation.
RegisterTarget(Target &T, const char *Name, const char *Desc, const char *BackendName)
static void RegisterMCCodeEmitter(Target &T, Target::MCCodeEmitterCtorTy Fn)
RegisterMCCodeEmitter - Register a MCCodeEmitter implementation for the given target.
bool hasMCAsmBackend() const
hasMCAsmBackend - Check if this target supports .o generation.
MCTargetStreamer *(*)(MCStreamer &S, const MCSubtargetInfo &STI) ObjectTargetStreamerCtorTy
RegisterMCSubtargetInfo(Target &T)
RegisterMCAsmInfo(Target &T)
MCAsmInfo * createMCAsmInfo(const MCRegisterInfo &MRI, StringRef TheTriple) const
createMCAsmInfo - Create a MCAsmInfo implementation for the specified target triple.
A range adaptor for a pair of iterators.
static void RegisterMCRegInfo(Target &T, Target::MCRegInfoCtorFnTy Fn)
RegisterMCRegInfo - Register a MCRegisterInfo implementation for the given target.
Target - Wrapper for Target specific information.
RegisterMCInstrInfo(Target &T)
RegisterMCInstrAnalysisFn(Target &T, Target::MCInstrAnalysisCtorFnTy Fn)
MCAsmInfo *(*)(const MCRegisterInfo &MRI, const Triple &TT) MCAsmInfoCtorFnTy
MCSubtargetInfo * createMCSubtargetInfo(StringRef TheTriple, StringRef CPU, StringRef Features) const
createMCSubtargetInfo - Create a MCSubtargetInfo implementation.
RegisterMCAsmParser(Target &T)
This is an instance of a target assembly language printer that converts an MCInst to valid target ass...
ObjectFormatType getObjectFormat() const
getFormat - Get the object format for this triple.
MCRelocationInfo *(*)(const Triple &TT, MCContext &Ctx) MCRelocationInfoCtorTy
static void RegisterMCInstrInfo(Target &T, Target::MCInstrInfoCtorFnTy Fn)
RegisterMCInstrInfo - Register a MCInstrInfo implementation for the given target. ...
Generic base class for all target subtargets.
TargetMachine *(*)(const Target &T, const Triple &TT, StringRef CPU, StringRef Features, const TargetOptions &Options, Optional< Reloc::Model > RM, Optional< CodeModel::Model > CM, CodeGenOpt::Level OL, bool JIT) TargetMachineCtorTy
MCSymbolizer * createMCSymbolizer(StringRef TT, LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, std::unique_ptr< MCRelocationInfo > &&RelInfo) const
createMCSymbolizer - Create a target specific MCSymbolizer.
static bool getArchMatch(Triple::ArchType Arch)
const char * getBackendName() const
getBackendName - Get the backend name.
static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn)
MCStreamer * createAsmStreamer(MCContext &Ctx, std::unique_ptr< formatted_raw_ostream > OS, bool IsVerboseAsm, bool UseDwarfDirectory, MCInstPrinter *InstPrint, std::unique_ptr< MCCodeEmitter > &&CE, std::unique_ptr< MCAsmBackend > &&TAB, bool ShowInst) const
bool operator!=(const iterator &x) const
MCStreamer *(*)(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd) MachOStreamerCtorTy
static void RegisterMCSymbolizer(Target &T, Target::MCSymbolizerCtorTy Fn)
RegisterMCSymbolizer - Register an MCSymbolizer implementation for the given target.
RegisterMCInstrInfoFn(Target &T, Target::MCInstrInfoCtorFnTy Fn)
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
RegisterMCRegInfo - Helper template for registering a target register info implementation.
MCRelocationInfo * createMCRelocationInfo(StringRef TT, MCContext &Ctx) const
createMCRelocationInfo - Create a target specific MCRelocationInfo.
RegisterMCAsmInfoFn - Helper template for registering a target assembly info implementation.
static void RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn)
Generic interface to target specific assembler backends.
RegisterMCAsmInfo - Helper template for registering a target assembly info implementation.
bool hasJIT() const
hasJIT - Check if this targets supports the just-in-time compilation.
MCStreamer *(*)(const Triple &T, MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll) ELFStreamerCtorTy
Lightweight error class with error context and mandatory checking.
MCTargetStreamer * createNullTargetStreamer(MCStreamer &S) const
static void RegisterMCRelocationInfo(Target &T, Target::MCRelocationInfoCtorTy Fn)
RegisterMCRelocationInfo - Register an MCRelocationInfo implementation for the given target...
This class implements an extremely fast bulk output stream that can only output to a stream...
MCInstPrinter *(*)(const Triple &T, unsigned SyntaxVariant, const MCAsmInfo &MAI, const MCInstrInfo &MII, const MCRegisterInfo &MRI) MCInstPrinterCtorTy
Primary interface to the complete machine description for the target machine.
static void RegisterAsmPrinter(Target &T, Target::AsmPrinterCtorTy Fn)
RegisterAsmPrinter - Register an AsmPrinter implementation for the given target.
MCStreamer * createWasmStreamer(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll)
MCInstrInfo *(*)() MCInstrInfoCtorFnTy
StringRef - Represent a constant reference to a string, i.e.
MCStreamer *(*)(const Triple &T, MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll) WasmStreamerCtorTy
bool operator==(uint64_t V1, const APInt &V2)
MCStreamer * createMachOStreamer(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&CE, bool RelaxAll, bool DWARFMustBeAtTheEnd, bool LabelSections=false)
const char *(* LLVMSymbolLookupCallback)(void *DisInfo, uint64_t ReferenceValue, uint64_t *ReferenceType, uint64_t ReferencePC, const char **ReferenceName)
The type for the symbol lookup function.
bool operator==(const iterator &x) const
RegisterMCCodeEmitter - Helper template for registering a target specific machine code emitter...
RegisterMCRegInfoFn(Target &T, Target::MCRegInfoCtorFnTy Fn)
MCStreamer *(*)(MCContext &Ctx, std::unique_ptr< MCAsmBackend > &&TAB, std::unique_ptr< MCObjectWriter > &&OW, std::unique_ptr< MCCodeEmitter > &&Emitter, bool RelaxAll, bool IncrementalLinkerCompatible) COFFStreamerCtorTy
RegisterMCInstrInfo - Helper template for registering a target instruction info implementation.