| //===- IntrinsicEmitter.h - Generate intrinsic information ------*- C++ -*-===// | 
 | // | 
 | //                     The LLVM Compiler Infrastructure | 
 | // | 
 | // This file is distributed under the University of Illinois Open Source | 
 | // License. See LICENSE.TXT for details. | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 | // | 
 | // This tablegen backend emits information about intrinsic functions. | 
 | // | 
 | //===----------------------------------------------------------------------===// | 
 |  | 
 | #ifndef INTRINSIC_EMITTER_H | 
 | #define INTRINSIC_EMITTER_H | 
 |  | 
 | #include "CodeGenIntrinsics.h" | 
 | #include "TableGenBackend.h" | 
 |  | 
 | namespace llvm { | 
 |   class IntrinsicEmitter : public TableGenBackend { | 
 |     RecordKeeper &Records; | 
 |     bool TargetOnly; | 
 |     std::string TargetPrefix; | 
 |      | 
 |   public: | 
 |     IntrinsicEmitter(RecordKeeper &R, bool T = false)  | 
 |       : Records(R), TargetOnly(T) {} | 
 |  | 
 |     void run(raw_ostream &OS); | 
 |      | 
 |     void EmitEnumInfo(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                       raw_ostream &OS); | 
 |  | 
 |     void EmitFnNameRecognizer(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                               raw_ostream &OS); | 
 |     void EmitIntrinsicToNameTable(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                                   raw_ostream &OS); | 
 |     void EmitIntrinsicToOverloadTable(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                                       raw_ostream &OS); | 
 |     void EmitVerifier(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                       raw_ostream &OS); | 
 |     void EmitGenerator(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                        raw_ostream &OS); | 
 |     void EmitAttributes(const std::vector<CodeGenIntrinsic> &Ints, | 
 |                         raw_ostream &OS); | 
 |     void EmitModRefBehavior(const std::vector<CodeGenIntrinsic> &Ints, | 
 |                             raw_ostream &OS); | 
 |     void EmitGCCBuiltinList(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                             raw_ostream &OS); | 
 |     void EmitIntrinsicToGCCBuiltinMap(const std::vector<CodeGenIntrinsic> &Ints,  | 
 |                                       raw_ostream &OS); | 
 |   }; | 
 |  | 
 | } // End llvm namespace | 
 |  | 
 | #endif | 
 |  | 
 |  | 
 |  |