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