All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Functions | Variables
risc::inst Namespace Reference

Classes

class  InstrumentationTraversal
 The AST traversal class. More...
 

Functions

void print_event_list (SgFunctionDefinition *func_def, SgVariableDeclaration *systemc_event_list, SgVariableDeclaration *PLACEHOLDER, bool is_and_event_list)
 This function adds the printing of event list and the individual elements to the function func_def. More...
 
void print_variable (SgFunctionDefinition *func_def, SgVariableDeclaration *var_decl, std::string printf_format_string, std::string printf_pre_format_string)
 This function adds the printing of the variable var_decl to the function func_def This function is only for internal use. More...
 
void print_port (SgFunctionDefinition *func_def, SgVariableDeclaration *var_decl)
 This function adds the printing of the variable var_decl to the function func_def This function is only for internal use. More...
 
void print_init_socket (SgFunctionDefinition *func_def, SgVariableDeclaration *var_decl)
 This function adds the printing of the variable var_decl to the function func_def This function is only for internal use. More...
 
void print_target_socket (SgFunctionDefinition *func_def, SgVariableDeclaration *var_decl)
 This function adds the printing of the variable var_decl to the function func_def This function is only for internal use. More...
 
void print_channel (SgFunctionDefinition *func_def, risc::Instance *channel)
 This function adds the printing of the channel channel to the function func_def This function is only for internal use. More...
 
SgFunctionDefinition * add_function_to_class (SgScopeStatement *class_def, std::string func_name)
 This function adds a new function with the name func_name to the class class_def. The return type will be void and the only parameter is FILE *file This function is only for internal use. More...
 
void instrument_reference_printing (std::string filename)
 The function should be called for the instrumentation of the variable address printing of the design. More...
 
std::pair< SgForStatement
*, SgVariableDeclaration * > 
insert_loop_iteration_over_vector_elements (SgVariableDeclaration *event_list, SgBasicBlock *body)
 This function appends a for loop to the given basic block. The loop body will be empty. The function returns the for loop statement and the variable declaration of the iterator variable. More...
 
void fix_static_cast_issue ()
 This function fixes the missing static cast operator in the rose backend. More...
 
int risc_link (SgProject *project, risc::tools::ParseStatus *parseStatus, const std::string tool_name)
 Tailored SgProject::link for customized linker. The original ROSE codes are at ~src/frontend/SageIII/sage_support/sage_support.cpp. More...
 
void risc_buildCompilerCommandLineOptions (SgFile *file, std::vector< std::string > &argv, std::vector< std::string > &compilerCmdLine, risc::tools::ParseStatus *parseStatus, const std::string tool_name)
 Tailored SgFile::buildCompilerCommandLineOptions for customized compiler. The original ROSE codes are at ~src/frontend/SageIII/sage_support/cmdline.cpp. More...
 
int risc_compileOutputFile (SgFile *file, risc::tools::ParseStatus *parseStatus, const std::string tool_name)
 Tailored SgFile::compileOutput for customized compiler. The original ROSE codes are at ~src/ROSETTA/Grammer/Support.code and ~src/frontend/SageIII/sage_support/sage_support.cpp. More...
 
int risc_compileOutput (SgProject *project, risc::tools::ParseStatus *parseStatus, const std::string tool_name)
 Tailored SgProject::compileOutput for customized compiler. The original ROSE codes are at ~src/frontend/SageIII/sage_support/sage_support.cpp. More...
 
void risc_unparse (risc::Design &design, risc::tools::ParseStatus *parseStatus, const std::string tool_name, UnparseFormatHelp *unparseFormatHelp, UnparseDelegate *unparseDelegate)
 This function unparses AST trees to source code file(s) More...
 
int risc_compile (risc::Design &design, risc::tools::ParseStatus *parseStatus, const std::string tool_name)
 This function compiles and links the unparsed source code file(s) using the customized compiler. More...
 
int risc_backend (risc::Design &design, risc::tools::ParseStatus *parseStatus, const std::string tool_name, UnparseFormatHelp *unparseFormatHelp, UnparseDelegate *unparseDelegate)
 Tailored backend for SystemC source files. The original ROSE codes are at ~src/roseSupport/utility_functions.C. More...
 
void instrumentor (risc::Design &design, risc::sg::SegmentGraph &sg, risc::sg::DataConflictTable *data_conflict_table, risc::sg::EventConflictTable *event_conflict_table, risc::sg::TimeAdvanceTable *time_advance_table, risc::sg::CombinedDataConflictTable *combined_data_conflict_table, risc::sg::PredictionTimeAdvanceTable *prediction_time_advance_table, risc::sg::PredictionEventNotificationTable *prediction_event_notification_table, risc::sg::PredictionEventNotificationTable *prediction_event_notification_table_no_indirect, risc::tools::ParseStatus *parseStatus, std::string design_file_name, std::vector< std::vector< int > > &psg_seg_id_array, std::vector< std::string > &file_names, std::vector< std::vector< int > > &channel_seg_id_array, std::vector< std::string > &channel_seg_id_array_names)
 This function instruments the AST tree of SystemC designs, and compiles unparsed source file(s) using customized vendor compiler. More...
 
void dump_table_to_file (risc::Design &design, risc::sg::SegmentGraph &sg, risc::sg::DataConflictTable *data_conflict_table, risc::sg::EventConflictTable *event_conflict_table, risc::sg::TimeAdvanceTable *time_advance_table, risc::sg::CombinedDataConflictTable *combined_data_conflict_table, risc::sg::PredictionTimeAdvanceTable *prediction_time_advance_table, risc::sg::PredictionEventNotificationTable *prediction_event_notification_table, risc::sg::PredictionEventNotificationTable *prediction_event_notification_table_no_indirect, risc::tools::ParseStatus *parseStatus)
 This function dumps all the lookup tables to a file. More...
 
void instrument_port_calls (risc::sg::SegmentGraph &sg)
 instruments the upcoming segments ids to thread local data More...
 
void instrument_wait_in_channels (risc::sg::SegmentGraph &sg)
 changes the segment id passing from constants to variables in channels which are passed by thread local data More...
 
void instrument_offset_before_and_after_b_transports (risc::sg::SegmentGraph &sg)
 sets the segment offset value before and after b_transport More...
 
void instrument_wait_in_b_transports (risc::sg::SegmentGraph &sg)
 changes the segment id passing from constants to variables in b_transports which are passed by thread local data More...
 
std::string generate_unique_name (std::string var_name)
 generates a unique variable based on var_name More...
 
void instrument_functions_without_definitions (risc::sg::SegmentGraph &sg)
 for test purpose now More...
 

Variables

int counter = 0
 counter to get a unique variable name with number More...
 

Function Documentation

risc::inst::add_function_to_class ( SgScopeStatement *  class_def,
std::string  func_name 
)

This function adds a new function with the name func_name to the class class_def. The return type will be void and the only parameter is FILE *file This function is only for internal use.

void risc::inst::dump_table_to_file ( risc::Design &  design,
risc::sg::SegmentGraph &  sg,
risc::sg::DataConflictTable *  data_conflict_table,
risc::sg::EventConflictTable *  event_conflict_table,
risc::sg::TimeAdvanceTable *  time_advance_table,
risc::sg::CombinedDataConflictTable *  combined_data_conflict_table,
risc::sg::PredictionTimeAdvanceTable *  prediction_time_advance_table,
risc::sg::PredictionEventNotificationTable *  prediction_event_notification_table,
risc::sg::PredictionEventNotificationTable *  prediction_event_notification_table_no_indirect,
risc::tools::ParseStatus *  parseStatus 
)

This function dumps all the lookup tables to a file.

risc::inst::fix_static_cast_issue ( )

This function fixes the missing static cast operator in the rose backend.

std::string risc::inst::generate_unique_name ( std::string  var_name)

generates a unique variable based on var_name

risc::inst::insert_loop_iteration_over_vector_elements ( SgVariableDeclaration *  event_list,
SgBasicBlock *  body 
)

This function appends a for loop to the given basic block. The loop body will be empty. The function returns the for loop statement and the variable declaration of the iterator variable.

risc::inst::instrument_functions_without_definitions ( risc::sg::SegmentGraph &  sg)

for test purpose now

void risc::inst::instrument_offset_before_and_after_b_transports ( risc::sg::SegmentGraph &  sg)

sets the segment offset value before and after b_transport

void risc::inst::instrument_port_calls ( risc::sg::SegmentGraph &  sg)

instruments the upcoming segments ids to thread local data

risc::inst::instrument_reference_printing ( std::string  filename)

The function should be called for the instrumentation of the variable address printing of the design.

The filename will be used for the dir file.

void risc::inst::instrument_wait_in_b_transports ( risc::sg::SegmentGraph &  sg)

changes the segment id passing from constants to variables in b_transports which are passed by thread local data

void risc::inst::instrument_wait_in_channels ( risc::sg::SegmentGraph &  sg)

changes the segment id passing from constants to variables in channels which are passed by thread local data

void risc::inst::instrumentor ( risc::Design &  design,
risc::sg::SegmentGraph &  sg,
risc::sg::DataConflictTable *  data_conflict_table,
risc::sg::EventConflictTable *  event_conflict_table,
risc::sg::TimeAdvanceTable *  time_advance_table,
risc::sg::CombinedDataConflictTable *  combined_data_conflict_table,
risc::sg::PredictionTimeAdvanceTable *  prediction_time_advance_table,
risc::sg::PredictionEventNotificationTable *  prediction_event_notification_table,
risc::sg::PredictionEventNotificationTable *  prediction_event_notification_table_no_indirect,
risc::tools::ParseStatus *  parseStatus,
std::string  design_file_name,
std::vector< std::vector< int > > &  psg_seg_id_array,
std::vector< std::string > &  file_names,
std::vector< std::vector< int > > &  channel_seg_id_array,
std::vector< std::string > &  channel_seg_id_array_names 
)

This function instruments the AST tree of SystemC designs, and compiles unparsed source file(s) using customized vendor compiler.

risc::inst::print_channel ( SgFunctionDefinition *  func_def,
risc::Instance *  channel 
)

This function adds the printing of the channel channel to the function func_def This function is only for internal use.

risc::inst::print_event_list ( SgFunctionDefinition *  func_def,
SgVariableDeclaration *  systemc_event_list,
SgVariableDeclaration *  PLACEHOLDER,
bool  is_and_event_list 
)

This function adds the printing of event list and the individual elements to the function func_def.

Parameters
func_defThe function definition
systemc_event_list
PLACEHOLDER
is_and_event_list
risc::inst::print_init_socket ( SgFunctionDefinition *  func_def,
SgVariableDeclaration *  var_decl 
)

This function adds the printing of the variable var_decl to the function func_def This function is only for internal use.

risc::inst::print_port ( SgFunctionDefinition *  func_def,
SgVariableDeclaration *  var_decl 
)

This function adds the printing of the variable var_decl to the function func_def This function is only for internal use.

risc::inst::print_target_socket ( SgFunctionDefinition *  func_def,
SgVariableDeclaration *  var_decl 
)

This function adds the printing of the variable var_decl to the function func_def This function is only for internal use.

risc::inst::print_variable ( SgFunctionDefinition *  func_def,
SgVariableDeclaration *  var_decl,
std::string  printf_format_string,
std::string  printf_pre_format_string = "" 
)

This function adds the printing of the variable var_decl to the function func_def This function is only for internal use.

int risc::inst::risc_backend ( risc::Design &  design,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name,
UnparseFormatHelp *  unparseFormatHelp,
UnparseDelegate *  unparseDelegate 
)

Tailored backend for SystemC source files. The original ROSE codes are at ~src/roseSupport/utility_functions.C.

Returns
The status code from the vendor compiler
void risc::inst::risc_buildCompilerCommandLineOptions ( SgFile *  file,
std::vector< std::string > &  argv,
std::vector< std::string > &  compilerCmdLine,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name 
)

Tailored SgFile::buildCompilerCommandLineOptions for customized compiler. The original ROSE codes are at ~src/frontend/SageIII/sage_support/cmdline.cpp.

int risc::inst::risc_compile ( risc::Design &  design,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name 
)

This function compiles and links the unparsed source code file(s) using the customized compiler.

Returns
The status code from the vendor compiler
int risc::inst::risc_compileOutput ( SgProject *  project,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name 
)

Tailored SgProject::compileOutput for customized compiler. The original ROSE codes are at ~src/frontend/SageIII/sage_support/sage_support.cpp.

Returns
The status code from the vendor compiler
int risc::inst::risc_compileOutputFile ( SgFile *  file,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name 
)

Tailored SgFile::compileOutput for customized compiler. The original ROSE codes are at ~src/ROSETTA/Grammer/Support.code and ~src/frontend/SageIII/sage_support/sage_support.cpp.

Returns
The status code from the vendor compiler
int risc::inst::risc_link ( SgProject *  project,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name 
)

Tailored SgProject::link for customized linker. The original ROSE codes are at ~src/frontend/SageIII/sage_support/sage_support.cpp.

Returns
The status code from the vendor linker
void risc::inst::risc_unparse ( risc::Design &  design,
risc::tools::ParseStatus *  parseStatus,
const std::string  tool_name,
UnparseFormatHelp *  unparseFormatHelp,
UnparseDelegate *  unparseDelegate 
)

This function unparses AST trees to source code file(s)

Variable Documentation

int risc::inst::counter = 0

counter to get a unique variable name with number