Namespaces | |
ga | |
Typedefs | |
typedef std::pair< Port *, SgBoolValExp * > | ResetSignal |
typedef std::pair< CThread *, std::set< SgVariableSymbol * > > | CThreadUninitializedVariables |
CThread -> var, var, var ... More... | |
typedef std::set < CThreadUninitializedVariables > | CThreadUninitializedVariablesSet |
typedef std::pair< ResetSignal *, CThreadVector > | ResetSignalSensitiveCThreads |
ResetSignal -> cthread, cthread, cthread ... More... | |
typedef std::set < ResetSignalSensitiveCThreads > | ResetSignalSensitiveCThreadsSet |
typedef std::pair< ResetSignal *, std::set< SgVariableSymbol * > > | ResetSignalUninitializedVariables |
ResetSignal -> var, var, var ... More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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<Port*, SgBoolValExp*> risc::sa::ResetSignal |
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.
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.
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.
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 | ) |
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.
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.