1 //===- DAGISelEmitter.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 DAG instruction selector. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef DAGISEL_EMITTER_H 15 #define DAGISEL_EMITTER_H 16 17 #include "llvm/TableGen/TableGenBackend.h" 18 #include "CodeGenDAGPatterns.h" 19 20 namespace llvm { 21 22 /// DAGISelEmitter - The top-level class which coordinates construction 23 /// and emission of the instruction selector. 24 /// 25 class DAGISelEmitter : public TableGenBackend { 26 RecordKeeper &Records; 27 CodeGenDAGPatterns CGP; 28 public: DAGISelEmitter(RecordKeeper & R)29 explicit DAGISelEmitter(RecordKeeper &R) : Records(R), CGP(R) {} 30 31 // run - Output the isel, returning true on failure. 32 void run(raw_ostream &OS); 33 }; 34 35 } // End llvm namespace 36 37 #endif 38