slang_rs_backend.h revision 6315f76e3cc6ff2d012d1183a0b030d4ff0dc808
1#ifndef _SLANG_COMPILER_RS_BACKEND_H 2#define _SLANG_COMPILER_RENDER_SCRIPT_BACKEND_H 3 4#include "libslang.h" 5#include "slang_backend.h" 6#include "slang_pragma_recorder.h" 7 8namespace llvm { 9 class NamedMDNode; 10} 11 12namespace clang { 13 class ASTConsumer; 14 class Diagnostic; 15 class TargetOptions; 16 class PragmaList; 17 class CodeGenerator; 18 class ASTContext; 19 class DeclGroupRef; 20} 21 22namespace slang { 23 24class RSContext; 25 26class RSBackend : public Backend { 27 private: 28 RSContext *mContext; 29 30 llvm::NamedMDNode *mExportVarMetadata; 31 llvm::NamedMDNode *mExportFuncMetadata; 32 llvm::NamedMDNode *mExportTypeMetadata; 33 llvm::NamedMDNode *mExportElementMetadata; 34 35 virtual void HandleTranslationUnitEx(clang::ASTContext &Ctx); 36 37 public: 38 RSBackend(RSContext *Context, 39 clang::Diagnostic &Diags, 40 const clang::CodeGenOptions &CodeGenOpts, 41 const clang::TargetOptions &TargetOpts, 42 const PragmaList &Pragmas, 43 llvm::raw_ostream *OS, 44 SlangCompilerOutputTy OutputType, 45 clang::SourceManager &SourceMgr, 46 bool AllowRSPrefix); 47 48 virtual void HandleTopLevelDecl(clang::DeclGroupRef D); 49 50 virtual ~RSBackend(); 51}; 52} 53 54#endif // _SLANG_COMPILER_BACKEND_H 55