slang_rs_backend.h revision 9ef2f785e0cc490af678dfd685995dec787321ff
1462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#ifndef _SLANG_COMPILER_RS_BACKEND_HPP 2462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao# define _SLANG_COMPILER_RENDER_SCRIPT_BACKEND_HPP 3462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 4462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include "libslang.h" 5462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include "slang_backend.hpp" 6462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao#include "slang_pragma_recorder.hpp" 7462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 8462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaonamespace llvm { 9462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass NamedMDNode; 109ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao} 11462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 12462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaonamespace clang { 13462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass ASTConsumer; 14462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass Diagnostic; 15462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass TargetOptions; 16462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass PragmaList; 17462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass CodeGenerator; 18462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass ASTContext; 19462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass DeclGroupRef; 209ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao} 21462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 22462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaonamespace slang { 23462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 24462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass RSContext; 25462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 26462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liaoclass RSBackend : public Backend { 279ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao private: 289ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao RSContext *mContext; 29462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 309ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao llvm::NamedMDNode *mExportVarMetadata; 319ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao llvm::NamedMDNode *mExportFuncMetadata; 329ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao llvm::NamedMDNode *mExportTypeMetadata; 339ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao llvm::NamedMDNode *mExportElementMetadata; 34462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 359ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao virtual void HandleTranslationUnitEx(clang::ASTContext &Ctx); 36462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 379ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao public: 389ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao RSBackend(RSContext *Context, 399ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao clang::Diagnostic &Diags, 409ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao const clang::CodeGenOptions &CodeGenOpts, 419ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao const clang::TargetOptions &TargetOpts, 429ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao const PragmaList &Pragmas, 439ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao llvm::raw_ostream *OS, 449ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao SlangCompilerOutputTy OutputType, 459ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao clang::SourceManager &SourceMgr, 469ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao bool AllowRSPrefix); 47462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 489ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao virtual void HandleTopLevelDecl(clang::DeclGroupRef D); 49462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 509ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao virtual ~RSBackend(); 519ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao}; 52462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 539ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao} 54462aefd62cc646d2ff753c1d003ef3cd7bbea26Shih-wei Liao 559ef2f785e0cc490af678dfd685995dec787321ffShih-wei Liao#endif // _SLANG_COMPILER_BACKEND_HPP 56