Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: include/llvm/Support/TargetRegistry.h

Issue 1181263004: subclassed MCAsmStreamer (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/llvm/MC/MCAsmStreamer.h ('k') | lib/MC/MCAsmStreamer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 //===-- Support/TargetRegistry.h - Target Registration ----------*- C++ -*-===// 1 //===-- Support/TargetRegistry.h - Target Registration ----------*- C++ -*-===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file exposes the TargetRegistry interface, which tools can use to access 10 // This file exposes the TargetRegistry interface, which tools can use to access
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 raw_pwrite_stream &OS, 140 raw_pwrite_stream &OS,
141 MCCodeEmitter *Emitter, 141 MCCodeEmitter *Emitter,
142 bool RelaxAll); 142 bool RelaxAll);
143 typedef MCStreamer *(*MachOStreamerCtorTy)( 143 typedef MCStreamer *(*MachOStreamerCtorTy)(
144 MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS, 144 MCContext &Ctx, MCAsmBackend &TAB, raw_pwrite_stream &OS,
145 MCCodeEmitter *Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd); 145 MCCodeEmitter *Emitter, bool RelaxAll, bool DWARFMustBeAtTheEnd);
146 typedef MCStreamer *(*COFFStreamerCtorTy)(MCContext &Ctx, MCAsmBackend &TAB, 146 typedef MCStreamer *(*COFFStreamerCtorTy)(MCContext &Ctx, MCAsmBackend &TAB,
147 raw_pwrite_stream &OS, 147 raw_pwrite_stream &OS,
148 MCCodeEmitter *Emitter, 148 MCCodeEmitter *Emitter,
149 bool RelaxAll); 149 bool RelaxAll);
150 typedef MCStreamer *(*NaClAsmStreamerCtorTy)(MCContext &Context,
151 std::unique_ptr<formatted_raw_o stream> OS,
152 bool isVerboseAsm, bool useDwar fDirectory,
153 MCInstPrinter *IP, MCCodeEmitte r *CE,
154 MCAsmBackend *MAB, bool ShowIns t);
150 typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer &S); 155 typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer &S);
151 typedef MCTargetStreamer *(*AsmTargetStreamerCtorTy)( 156 typedef MCTargetStreamer *(*AsmTargetStreamerCtorTy)(
152 MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint, 157 MCStreamer &S, formatted_raw_ostream &OS, MCInstPrinter *InstPrint,
153 bool IsVerboseAsm); 158 bool IsVerboseAsm);
154 typedef MCTargetStreamer *(*ObjectTargetStreamerCtorTy)( 159 typedef MCTargetStreamer *(*ObjectTargetStreamerCtorTy)(
155 MCStreamer &S, const MCSubtargetInfo &STI); 160 MCStreamer &S, const MCSubtargetInfo &STI);
156 typedef MCRelocationInfo *(*MCRelocationInfoCtorTy)(StringRef TT, 161 typedef MCRelocationInfo *(*MCRelocationInfoCtorTy)(StringRef TT,
157 MCContext &Ctx); 162 MCContext &Ctx);
158 typedef MCSymbolizer *(*MCSymbolizerCtorTy)( 163 typedef MCSymbolizer *(*MCSymbolizerCtorTy)(
159 StringRef TT, LLVMOpInfoCallback GetOpInfo, 164 StringRef TT, LLVMOpInfoCallback GetOpInfo,
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 232
228 /// MCCodeEmitterCtorFn - Construction function for this target's 233 /// MCCodeEmitterCtorFn - Construction function for this target's
229 /// CodeEmitter, if registered. 234 /// CodeEmitter, if registered.
230 MCCodeEmitterCtorTy MCCodeEmitterCtorFn; 235 MCCodeEmitterCtorTy MCCodeEmitterCtorFn;
231 236
232 // Construction functions for the various object formats, if registered. 237 // Construction functions for the various object formats, if registered.
233 COFFStreamerCtorTy COFFStreamerCtorFn; 238 COFFStreamerCtorTy COFFStreamerCtorFn;
234 MachOStreamerCtorTy MachOStreamerCtorFn; 239 MachOStreamerCtorTy MachOStreamerCtorFn;
235 ELFStreamerCtorTy ELFStreamerCtorFn; 240 ELFStreamerCtorTy ELFStreamerCtorFn;
236 241
242 // Construction functions for NaCl asm streamer, if registered.
243 NaClAsmStreamerCtorTy NaClAsmStreamerCtorFn;
244
237 /// Construction function for this target's null TargetStreamer, if 245 /// Construction function for this target's null TargetStreamer, if
238 /// registered (default = nullptr). 246 /// registered (default = nullptr).
239 NullTargetStreamerCtorTy NullTargetStreamerCtorFn; 247 NullTargetStreamerCtorTy NullTargetStreamerCtorFn;
240 248
241 /// Construction function for this target's asm TargetStreamer, if 249 /// Construction function for this target's asm TargetStreamer, if
242 /// registered (default = nullptr). 250 /// registered (default = nullptr).
243 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn; 251 AsmTargetStreamerCtorTy AsmTargetStreamerCtorFn;
244 252
245 /// Construction function for this target's obj TargetStreamer, if 253 /// Construction function for this target's obj TargetStreamer, if
246 /// registered (default = nullptr). 254 /// registered (default = nullptr).
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 MCInstPrinter *InstPrint, MCCodeEmitter *CE, 487 MCInstPrinter *InstPrint, MCCodeEmitter *CE,
480 MCAsmBackend *TAB, bool ShowInst) const { 488 MCAsmBackend *TAB, bool ShowInst) const {
481 formatted_raw_ostream &OSRef = *OS; 489 formatted_raw_ostream &OSRef = *OS;
482 MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), IsVerboseAsm, 490 MCStreamer *S = llvm::createAsmStreamer(Ctx, std::move(OS), IsVerboseAsm,
483 UseDwarfDirectory, InstPrint, CE, 491 UseDwarfDirectory, InstPrint, CE,
484 TAB, ShowInst); 492 TAB, ShowInst);
485 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm); 493 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm);
486 return S; 494 return S;
487 } 495 }
488 496
497 MCStreamer *createNaClAsmStreamer(MCContext &Ctx,
498 std::unique_ptr<formatted_raw_ostream> OS,
499 bool IsVerboseAsm, bool UseDwarfDirectory,
500 MCInstPrinter *InstPrint, MCCodeEmitter *CE,
501 MCAsmBackend *TAB, bool ShowInst) const {
502 if (NaClAsmStreamerCtorFn) {
503 formatted_raw_ostream &OSRef = *OS;
504 MCStreamer *S = NaClAsmStreamerCtorFn(Ctx, std::move(OS), IsVerboseAsm,
505 UseDwarfDirectory, InstPrint, CE,
506 TAB, ShowInst);
507 createAsmTargetStreamer(*S, OSRef, InstPrint, IsVerboseAsm);
508 return S;
509 }
510 return nullptr;
511 }
512
489 MCTargetStreamer *createAsmTargetStreamer(MCStreamer &S, 513 MCTargetStreamer *createAsmTargetStreamer(MCStreamer &S,
490 formatted_raw_ostream &OS, 514 formatted_raw_ostream &OS,
491 MCInstPrinter *InstPrint, 515 MCInstPrinter *InstPrint,
492 bool IsVerboseAsm) const { 516 bool IsVerboseAsm) const {
493 if (AsmTargetStreamerCtorFn) 517 if (AsmTargetStreamerCtorFn)
494 return AsmTargetStreamerCtorFn(S, OS, InstPrint, IsVerboseAsm); 518 return AsmTargetStreamerCtorFn(S, OS, InstPrint, IsVerboseAsm);
495 return nullptr; 519 return nullptr;
496 } 520 }
497 521
498 MCStreamer *createNullStreamer(MCContext &Ctx) const { 522 MCStreamer *createNullStreamer(MCContext &Ctx) const {
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 842
819 static void RegisterMachOStreamer(Target &T, 843 static void RegisterMachOStreamer(Target &T,
820 Target::MachOStreamerCtorTy Fn) { 844 Target::MachOStreamerCtorTy Fn) {
821 T.MachOStreamerCtorFn = Fn; 845 T.MachOStreamerCtorFn = Fn;
822 } 846 }
823 847
824 static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn) { 848 static void RegisterELFStreamer(Target &T, Target::ELFStreamerCtorTy Fn) {
825 T.ELFStreamerCtorFn = Fn; 849 T.ELFStreamerCtorFn = Fn;
826 } 850 }
827 851
852 static void RegisterNaClAsmStreamer(Target &T, Target::NaClAsmStreamerCtorTy Fn) {
853 T.NaClAsmStreamerCtorFn = Fn;
854 }
855
828 static void 856 static void
829 RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn) { 857 RegisterNullTargetStreamer(Target &T, Target::NullTargetStreamerCtorTy Fn) {
830 T.NullTargetStreamerCtorFn = Fn; 858 T.NullTargetStreamerCtorFn = Fn;
831 } 859 }
832 860
833 static void RegisterAsmTargetStreamer(Target &T, 861 static void RegisterAsmTargetStreamer(Target &T,
834 Target::AsmTargetStreamerCtorTy Fn) { 862 Target::AsmTargetStreamerCtorTy Fn) {
835 T.AsmTargetStreamerCtorFn = Fn; 863 T.AsmTargetStreamerCtorFn = Fn;
836 } 864 }
837 865
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1205 static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/, 1233 static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/,
1206 const MCRegisterInfo & /*MRI*/, 1234 const MCRegisterInfo & /*MRI*/,
1207 MCContext & /*Ctx*/) { 1235 MCContext & /*Ctx*/) {
1208 return new MCCodeEmitterImpl(); 1236 return new MCCodeEmitterImpl();
1209 } 1237 }
1210 }; 1238 };
1211 1239
1212 } 1240 }
1213 1241
1214 #endif 1242 #endif
OLDNEW
« no previous file with comments | « include/llvm/MC/MCAsmStreamer.h ('k') | lib/MC/MCAsmStreamer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698