cprover
|
Expression providing an SSA-renamed symbol of expressions. More...
#include <ssa_expr.h>
Public Member Functions | |
ssa_exprt () | |
ssa_exprt (const exprt &expr) | |
Constructor. More... | |
void | update_type () |
const exprt & | get_original_expr () const |
irep_idt | get_object_name () const |
const ssa_exprt | get_l1_object () const |
const irep_idt | get_l1_object_identifier () const |
const irep_idt | get_original_name () const |
void | set_level_0 (unsigned i) |
void | set_level_1 (unsigned i) |
void | set_level_2 (unsigned i) |
void | remove_level_2 () |
const irep_idt | get_level_0 () const |
const irep_idt | get_level_1 () const |
const irep_idt | get_level_2 () const |
void | update_identifier () |
![]() | |
symbol_exprt () | |
symbol_exprt (const irep_idt &identifier) | |
Constructor. More... | |
symbol_exprt (const typet &type) | |
Constructor. More... | |
symbol_exprt (const irep_idt &identifier, const typet &type) | |
Constructor. More... | |
void | set_identifier (const irep_idt &identifier) |
const irep_idt & | get_identifier () const |
![]() | |
exprt () | |
exprt (const irep_idt &_id) | |
exprt (const irep_idt &_id, const typet &_type) | |
typet & | type () |
const typet & | type () const |
bool | has_operands () const |
operandst & | operands () |
const operandst & | operands () const |
exprt & | op0 () |
exprt & | op1 () |
exprt & | op2 () |
exprt & | op3 () |
const exprt & | op0 () const |
const exprt & | op1 () const |
const exprt & | op2 () const |
const exprt & | op3 () const |
void | reserve_operands (operandst::size_type n) |
void | move_to_operands (exprt &expr) |
void | move_to_operands (exprt &e1, exprt &e2) |
void | move_to_operands (exprt &e1, exprt &e2, exprt &e3) |
void | copy_to_operands (const exprt &expr) |
void | copy_to_operands (const exprt &e1, const exprt &e2) |
void | copy_to_operands (const exprt &e1, const exprt &e2, const exprt &e3) |
void | make_typecast (const typet &_type) |
void | make_not () |
void | make_true () |
void | make_false () |
void | make_bool (bool value) |
void | negate () |
bool | sum (const exprt &expr) |
bool | mul (const exprt &expr) |
bool | subtract (const exprt &expr) |
bool | is_constant () const |
bool | is_true () const |
bool | is_false () const |
bool | is_zero () const |
bool | is_one () const |
bool | is_boolean () const |
const source_locationt & | find_source_location () const |
const source_locationt & | source_location () const |
source_locationt & | add_source_location () |
exprt & | add_expr (const irep_idt &name) |
const exprt & | find_expr (const irep_idt &name) const |
void | visit (class expr_visitort &visitor) |
void | visit (class const_expr_visitort &visitor) const |
![]() | |
bool | is_nil () const |
bool | is_not_nil () const |
irept (const irep_idt &_id) | |
irept () | |
irept (const irept &irep) | |
irept (irept &&irep) | |
irept & | operator= (const irept &irep) |
irept & | operator= (irept &&irep) |
~irept () | |
const irep_idt & | id () const |
const std::string & | id_string () const |
void | id (const irep_idt &_data) |
const irept & | find (const irep_namet &name) const |
irept & | add (const irep_namet &name) |
irept & | add (const irep_namet &name, const irept &irep) |
const std::string & | get_string (const irep_namet &name) const |
const irep_idt & | get (const irep_namet &name) const |
bool | get_bool (const irep_namet &name) const |
signed int | get_int (const irep_namet &name) const |
unsigned int | get_unsigned_int (const irep_namet &name) const |
std::size_t | get_size_t (const irep_namet &name) const |
long long | get_long_long (const irep_namet &name) const |
void | set (const irep_namet &name, const irep_idt &value) |
void | set (const irep_namet &name, const irept &irep) |
void | set (const irep_namet &name, const long long value) |
void | remove (const irep_namet &name) |
void | move_to_sub (irept &irep) |
void | move_to_named_sub (const irep_namet &name, irept &irep) |
bool | operator== (const irept &other) const |
bool | operator!= (const irept &other) const |
void | swap (irept &irep) |
bool | operator< (const irept &other) const |
defines ordering on the internal representation More... | |
bool | ordering (const irept &other) const |
defines ordering on the internal representation More... | |
int | compare (const irept &i) const |
defines ordering on the internal representation More... | |
void | clear () |
void | make_nil () |
subt & | get_sub () |
const subt & | get_sub () const |
named_subt & | get_named_sub () |
const named_subt & | get_named_sub () const |
named_subt & | get_comments () |
const named_subt & | get_comments () const |
std::size_t | hash () const |
std::size_t | full_hash () const |
bool | full_eq (const irept &other) const |
std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
const dt & | read () const |
dt & | write () |
Static Public Member Functions | |
static std::pair< irep_idt, irep_idt > | build_identifier (const exprt &src, const irep_idt &l0, const irep_idt &l1, const irep_idt &l2) |
Additional Inherited Members | |
![]() | |
typedef std::vector< exprt > | operandst |
![]() | |
typedef std::vector< irept > | subt |
typedef std::map< irep_namet, irept > | named_subt |
![]() | |
void | detach () |
![]() | |
static bool | is_comment (const irep_namet &name) |
static void | remove_ref (dt *old_data) |
static void | nonrecursive_destructor (dt *old_data) |
Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
![]() | |
dt * | data |
![]() | |
static dt | empty_d |
Expression providing an SSA-renamed symbol of expressions.
Definition at line 17 of file ssa_expr.h.
|
inline |
Definition at line 20 of file ssa_expr.h.
|
inlineexplicit |
Constructor.
expr | Expression to be converted to SSA symbol |
Definition at line 28 of file ssa_expr.h.
References irept::add(), and update_identifier().
|
static |
Definition at line 74 of file ssa_expr.cpp.
References build_ssa_identifier_rec().
Referenced by update_identifier().
|
inline |
Definition at line 53 of file ssa_expr.h.
References get_original_expr(), object_descriptor_exprt::object(), object_descriptor_exprt::root_object(), and irept::set().
Referenced by goto_symext::address_arithmetic(), and get_l1_object_identifier().
|
inline |
Definition at line 66 of file ssa_expr.h.
References symbol_exprt::get_identifier(), and get_l1_object().
Referenced by goto_symex_statet::level1t::operator()().
|
inline |
Definition at line 107 of file ssa_expr.h.
Referenced by goto_symex_statet::level0t::operator()(), and update_identifier().
|
inline |
Definition at line 112 of file ssa_expr.h.
Referenced by goto_symex_statet::level1t::operator()(), goto_symex_statet::set_ssa_indices(), goto_symext::symex_assign_symbol(), and update_identifier().
|
inline |
Definition at line 117 of file ssa_expr.h.
Referenced by goto_symex_statet::rename(), goto_symex_statet::set_ssa_indices(), and update_identifier().
|
inline |
Definition at line 46 of file ssa_expr.h.
References symbol_exprt::get_identifier(), get_original_expr(), object_descriptor_exprt::object(), object_descriptor_exprt::root_object(), and to_symbol_expr().
Referenced by string_constraint_generatort::add_axioms_for_function_application(), preconditiont::compute_rec(), get_symbol(), postconditiont::is_used(), goto_symex_statet::l2_thread_read_encoding(), goto_symex_statet::l2_thread_write_encoding(), goto_symex_statet::level0t::operator()(), postconditiont::strengthen(), goto_symext::symex_assign_symbol(), goto_symext::symex_decl(), trace_value(), goto_symext::trigger_auto_object(), value_set_dereferencet::valid_check(), and postconditiont::weaken().
|
inline |
Definition at line 41 of file ssa_expr.h.
References irept::find().
Referenced by build_goto_trace(), compute_pointer_offset(), preconditiont::compute_rec(), symex_target_equationt::decl(), get_l1_object(), get_object_name(), get_original_name(), goto_symex_statet::get_original_name(), symex_dereference_statet::has_failed_symbol(), goto_symex_statet::l2_thread_read_encoding(), goto_symext::phi_function(), goto_symext::process_array_expr(), goto_symext::process_array_expr_rec(), graphml_witnesst::remove_l0_l1(), goto_symext::symex_assign_symbol(), and update_identifier().
|
inline |
Definition at line 77 of file ssa_expr.h.
References symbol_exprt::get_identifier(), and get_original_expr().
|
inline |
Definition at line 101 of file ssa_expr.h.
References update_identifier().
Referenced by partial_order_concurrencyt::add_init_writes(), partial_order_concurrencyt::address(), goto_symex_statet::get_l1_name(), goto_symex_statet::l2_thread_read_encoding(), and goto_symex_statet::l2_thread_write_encoding().
|
inline |
Definition at line 83 of file ssa_expr.h.
References update_identifier().
Referenced by goto_symex_statet::level0t::operator()(), and goto_symext::symex_start_thread().
|
inline |
Definition at line 89 of file ssa_expr.h.
References update_identifier().
Referenced by goto_symex_statet::level1t::operator()().
|
inline |
Definition at line 95 of file ssa_expr.h.
References update_identifier().
Referenced by symex_slice_by_tracet::assign_merges(), symex_slice_by_tracet::compute_ts_back(), goto_symext::phi_function(), goto_symex_statet::set_ssa_indices(), and goto_symext::symex_atomic_end().
|
inline |
Definition at line 122 of file ssa_expr.h.
References build_identifier(), get_level_0(), get_level_1(), get_level_2(), get_original_expr(), and symbol_exprt::set_identifier().
Referenced by remove_level_2(), set_level_0(), set_level_1(), set_level_2(), and ssa_exprt().
|
inline |
Definition at line 36 of file ssa_expr.h.
References irept::add(), and exprt::type().
Referenced by goto_symex_statet::assignment(), goto_symex_statet::rename(), goto_symex_statet::rename_address(), and goto_symext::symex_decl().