00001 #ifndef DYN_ANALYSIS_INSTR_H_INCLUDED_
00002 #define DYN_ANALYSIS_INSTR_H_INCLUDED_
00003 
00004 #include "rose.h"
00005 
00006 #include <list>
00007 #include <utility>
00008 
00009 
00010 namespace risc
00011 {
00012 
00013 class Instance;
00014 
00015 namespace inst
00016 {
00017 
00023 void
00024 print_event_list(
00025     SgFunctionDefinition *func_def,
00026     SgVariableDeclaration *systemc_event_list,
00027     SgVariableDeclaration *PLACEHOLDER,
00028     bool is_and_event_list);
00029 
00036 void
00037 print_variable(
00038     SgFunctionDefinition *func_def,
00039     SgVariableDeclaration *var_decl,
00040     std::string printf_format_string,
00041     std::string printf_pre_format_string);
00042 
00043 
00050 void
00051 print_port(
00052     SgFunctionDefinition *func_def,
00053     SgVariableDeclaration *var_decl);
00054 
00055 
00062 void
00063 print_channel(SgFunctionDefinition *func_def, risc::Instance *channel);
00064 
00072 SgFunctionDefinition*
00073 add_function_to_class(SgScopeStatement *class_def, std::string func_name);
00074 
00081 void
00082 instrument_reference_printing(std::string filename);
00083 
00091 std::pair<SgForStatement*, SgVariableDeclaration*>
00092 insert_loop_iteration_over_vector_elements(
00093     SgVariableDeclaration *event_list,
00094     SgBasicBlock *body);
00095 
00096 }; 
00097 
00098 }; 
00099 
00100 #endif 
00101 
00102