1 //===- FastISelEmitter.h - Generate an instruction selector -----*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This tablegen backend emits a "fast" instruction selector. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef FASTISEL_EMITTER_H 15 #define FASTISEL_EMITTER_H 16 17 #include "TableGenBackend.h" 18 #include "CodeGenDAGPatterns.h" 19 20 namespace llvm { 21 22 class CodeGenTarget; 23 24 /// FastISelEmitter - The top-level class which coordinates construction 25 /// and emission of the instruction selector. 26 /// 27 class FastISelEmitter : public TableGenBackend { 28 RecordKeeper &Records; 29 CodeGenDAGPatterns CGP; 30 public: 31 explicit FastISelEmitter(RecordKeeper &R); 32 33 // run - Output the isel, returning true on failure. 34 void run(raw_ostream &OS); 35 }; 36 37 } // End llvm namespace 38 39 #endif 40