Namespaces | |
namespace | ga |
Typedefs | |
typedef std::pair< CThread *, std::set< SgVariableSymbol * > > | CThreadUninitializedVariables |
CThread -> var, var, var ... | |
typedef std::set < CThreadUninitializedVariables > | CThreadUninitializedVariablesSet |
typedef std::pair< ResetSignal *, CThreadVector > | ResetSignalSensitiveCThreads |
ResetSignal -> cthread, cthread, cthread ... | |
typedef std::set < ResetSignalSensitiveCThreads > | ResetSignalSensitiveCThreadsSet |
typedef std::pair< ResetSignal *, std::set< SgVariableSymbol * > > | ResetSignalUninitializedVariables |
ResetSignal -> var, var, var ... | |
typedef std::set < ResetSignalUninitializedVariables > | ResetSignalUninitializedVariablesSet |
typedef std::pair< CThread *, ResetSignal * > | CThreadResetSignalPair |
typedef std::pair < CThreadResetSignalPair, std::vector< SgExpression * > > | CThreadResetSignalExpressions |
typedef std::vector < CThreadResetSignalExpressions > | CThreadResetSignalExpressionsVector |
Functions | |
SgFunctionCallExp * | find_first_wait_stmt (SgFunctionDefinition *func_def) |
This function analyzes a given function and returns the first occurrence of a wait call. | |
std::set< SgFunctionCallExp * > | traverse_for_non_nested_func_calls (SgFunctionDefinition *func_def) |
This function searchs for all function calls which are done before the first wait call statement. The search doesnt respect function calls in loops, if statements, or other nested constructs. | |
void | collect_non_nested_expressions (SgFunctionDefinition *func_def, std::vector< SgExpression * > &before_wait, std::vector< SgExpression * > &after_wait) |
This function collects all non nested expressions before and after the first wait stmt call. | |
CThreadUninitializedVariablesSet | most_pessimistic_analysis (risc::Module &module) |
CThreadUninitializedVariablesSet | inter_thread_analysis (Module &module, CThreadVector *subset_of_cthreads=NULL) |
ResetSignalUninitializedVariablesSet | inter_reset_cthread_analysis (Module &module) |
ResetSignalUninitializedVariablesSet | inter_async_reset_cthread_analysis (Module &module) |
CThreadResetSignalExpressionsVector | get_cthread_reset_signal_expressions (Module &module) |
CThreadResetSignalExpressionsVector | get_cthread_async_reset_signal_expressions (Module &module) |
void | member_variable_filter (risc::Module &module, std::vector< SgNode * > variable) |
void | get_recursivly_nested_expressions_in_function (SgFunctionDefinition *root_function, std::vector< SgExpression * > &expressions) |
std::set< SgFunctionDefinition * > | get_called_functions_and_expressions (SgFunctionDefinition *root_function, std::vector< SgExpression * > &expressions) |
void | collect_write_variables (SgExpression *expr, std::vector< SgNode * > &write_var) |
This function collects all written variables in the given expression and adds them to the given vector. | |
void | collect_read_variables (SgExpression *expr, std::vector< SgNode * > &read_var) |
This function collects all read variables in the given expression and adds them to the given vector. | |
void | read_write_analysis (std::vector< SgExpression * > expressions, std::set< SgVariableSymbol * > &read_only_var, std::set< SgVariableSymbol * > &write_only_var, std::vector< SgNode * > &read_write) |
This function collects all read only, write only, and read/write variables in the given expression vector and adds them to the corresponging set/vector. | |
bool | is_member_variable_symbol (SgNode *given_variable, risc::VariableVector &member_variables) |
std::vector< SgNode * >::iterator | delete_if_is_not_member_variable (std::vector< SgNode * > &given_variables, VariableVector &member_variables) |
std::set< SgVariableSymbol * > ::iterator | delete_if_is_not_member_symbol (std::set< SgVariableSymbol * > &given_variables, VariableVector &member_variables) |
typedef std::pair<CThreadResetSignalPair, std::vector<SgExpression*> > risc::sa::CThreadResetSignalExpressions |
typedef std::vector<CThreadResetSignalExpressions> risc::sa::CThreadResetSignalExpressionsVector |
typedef std::pair<CThread*, ResetSignal*> risc::sa::CThreadResetSignalPair |
typedef std::pair<CThread*, std::set<SgVariableSymbol*> > risc::sa::CThreadUninitializedVariables |
CThread -> var, var, var ...
typedef std::set<CThreadUninitializedVariables> risc::sa::CThreadUninitializedVariablesSet |
typedef std::pair<ResetSignal*, CThreadVector> risc::sa::ResetSignalSensitiveCThreads |
ResetSignal -> cthread, cthread, cthread ...
typedef std::set<ResetSignalSensitiveCThreads> risc::sa::ResetSignalSensitiveCThreadsSet |
typedef std::pair<ResetSignal*, std::set<SgVariableSymbol*> > risc::sa::ResetSignalUninitializedVariables |
ResetSignal -> var, var, var ...
void risc::sa::collect_non_nested_expressions | ( | SgFunctionDefinition * | func_def, | |
std::vector< SgExpression * > & | before_wait, | |||
std::vector< SgExpression * > & | after_wait | |||
) |
This function collects all non nested expressions before and after the first wait stmt call.
void risc::sa::collect_read_variables | ( | SgExpression * | expr, | |
std::vector< SgNode * > & | read_var | |||
) |
This function collects all read variables in the given expression and adds them to the given vector.
collect_read_variables
void risc::sa::collect_write_variables | ( | SgExpression * | expr, | |
std::vector< SgNode * > & | write_var | |||
) |
This function collects all written variables in the given expression and adds them to the given vector.
collect_write_variables
std::set< SgVariableSymbol * >::iterator risc::sa::delete_if_is_not_member_symbol | ( | std::set< SgVariableSymbol * > & | given_variables, | |
VariableVector & | member_variables | |||
) |
std::vector< SgNode * >::iterator risc::sa::delete_if_is_not_member_variable | ( | std::vector< SgNode * > & | given_variables, | |
VariableVector & | member_variables | |||
) |
SgFunctionCallExp * risc::sa::find_first_wait_stmt | ( | SgFunctionDefinition * | func_def | ) |
This function analyzes a given function and returns the first occurrence of a wait call.
std::set< SgFunctionDefinition * > risc::sa::get_called_functions_and_expressions | ( | SgFunctionDefinition * | root_function, | |
std::vector< SgExpression * > & | expressions | |||
) |
risc::sa::CThreadResetSignalExpressionsVector risc::sa::get_cthread_async_reset_signal_expressions | ( | Module & | module | ) |
risc::sa::CThreadResetSignalExpressionsVector risc::sa::get_cthread_reset_signal_expressions | ( | Module & | module | ) |
void risc::sa::get_recursivly_nested_expressions_in_function | ( | SgFunctionDefinition * | root_function, | |
std::vector< SgExpression * > & | expressions | |||
) |
risc::sa::ResetSignalUninitializedVariablesSet risc::sa::inter_async_reset_cthread_analysis | ( | Module & | module | ) |
risc::sa::ResetSignalUninitializedVariablesSet risc::sa::inter_reset_cthread_analysis | ( | Module & | module | ) |
risc::sa::CThreadUninitializedVariablesSet risc::sa::inter_thread_analysis | ( | Module & | module, | |
CThreadVector * | subset_of_cthreads = NULL | |||
) |
bool risc::sa::is_member_variable_symbol | ( | SgNode * | given_variable, | |
risc::VariableVector & | member_variables | |||
) |
void risc::sa::member_variable_filter | ( | risc::Module & | module, | |
std::vector< SgNode * > | variable | |||
) |
risc::sa::CThreadUninitializedVariablesSet risc::sa::most_pessimistic_analysis | ( | risc::Module & | module | ) |
void risc::sa::read_write_analysis | ( | std::vector< SgExpression * > | expressions, | |
std::set< SgVariableSymbol * > & | read_only_var, | |||
std::set< SgVariableSymbol * > & | write_only_var, | |||
std::vector< SgNode * > & | read_write | |||
) |
This function collects all read only, write only, and read/write variables in the given expression vector and adds them to the corresponging set/vector.
read_write_analysis
std::set< SgFunctionCallExp * > risc::sa::traverse_for_non_nested_func_calls | ( | SgFunctionDefinition * | func_def | ) |
This function searchs for all function calls which are done before the first wait call statement. The search doesnt respect function calls in loops, if statements, or other nested constructs.