00001 #ifndef SUIFPASSES__DISPATCHER_H 00002 #define SUIFPASSES__DISPATCHER_H 00003 00004 #include "passes.h" 00005 00006 class PipelinerDispatchPass : public PipelinablePass { 00007 public: 00008 PipelinerDispatchPass( SuifEnv* suif_env, 00009 suif_vector<PipelinablePass*>* modules ); 00010 00011 virtual ~PipelinerDispatchPass(); 00012 00013 virtual Module *clone() const; 00014 00015 virtual void execute(); 00016 00017 virtual void do_file_set_block( FileSetBlock* file_set_block ); 00018 00019 virtual void do_file_block( FileBlock* file_block ); 00020 00021 virtual void do_definition_block( DefinitionBlock* definition_block ); 00022 00023 virtual void do_procedure_definition( ProcedureDefinition* proc_def ); 00024 00025 virtual void do_variable_definition( VariableDefinition* var_def ); 00026 00027 private: 00028 suif_vector<PipelinablePass*>* _modules; 00029 int _module_count; 00030 }; 00031 00032 00033 #endif 00034