diff options
Diffstat (limited to 'ir_cudasuif.hh')
-rw-r--r-- | ir_cudasuif.hh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ir_cudasuif.hh b/ir_cudasuif.hh new file mode 100644 index 0000000..834778e --- /dev/null +++ b/ir_cudasuif.hh @@ -0,0 +1,36 @@ +#ifndef IR_CUDA_SUIF +#define IR_CUDA_SUIF + +#include <code_gen/CG_suifRepr.h> +#include <code_gen/CG_suifBuilder.h> +#include "ir_suif.hh" +#include "loop.hh" +#include "loop_cuda.hh" +#include "ir_suif_utils.hh" + + + +class IR_cudasuifCode : public IR_suifCode{ + +public: + global_symtab *gsym_; + std::vector<proc_sym*> write_procs;//procs to write + + + IR_cudasuifCode(const char *filename, int proc_num); + IR_ArraySymbol *CreateArraySymbol(const IR_Symbol *sym, + std::vector<omega::CG_outputRepr *> &size, + int sharedAnnotation = 1); + omega::CG_outputRepr* init_code(){ return init_code_; } + bool commit_loop(Loop *loop, int loop_num); + std::vector<tree_for *> get_loops() + { + std::vector<tree_for *> loops = find_loops(psym_->block()->body()); + return loops; + } + ~IR_cudasuifCode(); + +}; + + +#endif |