§ const_function_pointer_propagationt()
§ add() [1/2]
bool const_function_pointer_propagationt::add |
( |
const irep_idt & |
symb, |
|
|
const symbol_exprt & |
goto_function |
|
) |
| |
|
inlineprotected |
§ add() [2/2]
bool const_function_pointer_propagationt::add |
( |
const irep_idt & |
symb, |
|
|
const symbol_exprt & |
goto_function, |
|
|
unsigned |
scope |
|
) |
| |
|
inlineprotected |
§ dup_caller_and_inline_callee()
void const_function_pointer_propagationt::dup_caller_and_inline_callee |
( |
const symbol_exprt & |
const_function, |
|
|
unsigned |
stack_scope |
|
) |
| |
|
protected |
- parameters: 'it' pointing to the callsite to update, 'function' the
- function actually called, 'stack_scope' the place where the constant was defined in the call stack
Definition at line 150 of file propagate_const_function_pointers.cpp.
References symbol_tablet::add(), code_function_callt::arguments(), symbolt::base_name, goto_function_templatet< bodyT >::body, callsite_stack, goto_function_templatet< bodyT >::copy_from(), messaget::debug(), messaget::eom(), code_function_callt::function(), goto_functions_templatet< bodyT >::function_map, symbol_exprt::get_identifier(), goto_functions, irept::id(), id2string(), namespacet::lookup(), map_unique, message, symbolt::name, ns, address_of_exprt::object(), code_typet::parameters(), pointer_to_fun, symbolt::pretty_name, messaget::mstreamt::source_location, symbol_table, to_address_of_expr(), to_code_function_call(), to_symbol_expr(), goto_function_templatet< bodyT >::type, and goto_functions_templatet< bodyT >::update().
Referenced by propagate().
§ get()
§ has()
bool const_function_pointer_propagationt::has |
( |
const irep_idt & |
symb | ) |
const |
|
inlineprotected |
§ propagate() [1/2]
void const_function_pointer_propagationt::propagate |
( |
const irep_idt & |
function | ) |
|
|
protected |
Definition at line 425 of file propagate_const_function_pointers.cpp.
References add(), const_function_pointer_propagationt::arg_stackt::add_args(), symbolt::base_name, callsite_stack, messaget::debug(), dup_caller_and_inline_callee(), messaget::eom(), Forall_goto_program_instructions, code_function_callt::function(), goto_functions_templatet< bodyT >::function_map, functions_met, symbol_exprt::get_identifier(), goto_functions, irept::id(), code_assignt::lhs(), symbol_tablet::lookup(), message, address_of_exprt::object(), dereference_exprt::pointer(), propagate(), const_function_pointer_propagationt::arg_stackt::remove_args(), resolve(), code_assignt::rhs(), symbol_table, to_address_of_expr(), to_code_assign(), to_code_function_call(), to_dereference_expr(), to_symbol_expr(), and exprt::type().
Referenced by propagate_const_function_pointers().
§ propagate() [2/2]
void const_function_pointer_propagationt::propagate |
( |
| ) |
|
|
inline |
§ remove()
bool const_function_pointer_propagationt::remove |
( |
const irep_idt & |
symb | ) |
|
|
inlineprotected |
§ resolve()
bool const_function_pointer_propagationt::resolve |
( |
const irep_idt & |
symb, |
|
|
symbol_exprt & |
goto_function, |
|
|
unsigned & |
stack_scope |
|
) |
| |
|
inlineprotected |
§ callsite_stack
§ fun_id_to_invok
std::unordered_map<irep_idt, unsigned, irep_id_hash> const_function_pointer_propagationt::fun_id_to_invok |
|
protected |
§ functions_met
std::set<irep_idt> const_function_pointer_propagationt::functions_met |
|
protected |
§ goto_functions
§ map_unique
std::unordered_map<irep_idt, unsigned, irep_id_hash> const_function_pointer_propagationt::map_unique |
|
protected |
§ message
messaget& const_function_pointer_propagationt::message |
|
protected |
§ ns
const namespacet const_function_pointer_propagationt::ns |
|
protected |
§ pointer_to_fun
§ pointer_to_stack
std::unordered_map<irep_idt, unsigned, irep_id_hash> const_function_pointer_propagationt::pointer_to_stack |
|
protected |
§ symbol_table
The documentation for this class was generated from the following file: