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

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 Documentation

typedef std::pair<CThreadResetSignalPair, std::vector<SgExpression*> > risc::sa::CThreadResetSignalExpressions
typedef std::pair<CThread*, std::set<SgVariableSymbol*> > risc::sa::CThreadUninitializedVariables

CThread -> var, var, var ...

typedef std::pair<Port*, SgBoolValExp*> risc::sa::ResetSignal

ResetSignal -> cthread, cthread, cthread ...

typedef std::pair<ResetSignal*, std::set<SgVariableSymbol*> > risc::sa::ResetSignalUninitializedVariables

ResetSignal -> var, var, var ...

Function Documentation

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.

Returns
A set of function calls