#include <constraint-manager.h>
Static Public Member Functions | |
static void | merge (const constraint_manager &cm_a, const constraint_manager &cm_b, constraint_manager *out) |
Data Fields | |
auto_delete_vec< equiv_class > | m_equiv_classes |
auto_vec< constraint > | m_constraints |
auto_vec< bounded_ranges_constraint > | m_bounded_ranges_constraints |
Private Member Functions | |
void | add_constraint_internal (equiv_class_id lhs_id, enum constraint_op c_op, equiv_class_id rhs_id) |
bool | impossible_derived_conditions_p (const svalue *lhs, const svalue *rhs) const |
Private Attributes | |
region_model_manager * | m_mgr |
A collection of equivalence classes and constraints on them. Given N svalues, this can be thought of as representing a subset of N-dimensional space. When we call add_constraint, we are effectively taking an intersection with that constraint.
|
inline |
References m_mgr.
Referenced by constraint_manager(), merge(), operator!=(), operator=(), operator==(), and replay_call_summary().
ana::constraint_manager::constraint_manager | ( | const constraint_manager & | other | ) |
References constraint_manager().
|
inlinevirtual |
bool ana::constraint_manager::add_bounded_ranges | ( | const svalue * | sval, |
const bounded_ranges * | ranges ) |
bool ana::constraint_manager::add_constraint | ( | const svalue * | lhs, |
enum tree_code | op, | ||
const svalue * | rhs ) |
bool ana::constraint_manager::add_constraint | ( | equiv_class_id | lhs_ec_id, |
enum tree_code | op, | ||
equiv_class_id | rhs_ec_id ) |
|
private |
void ana::constraint_manager::add_unknown_constraint | ( | equiv_class_id | lhs_ec_id, |
enum tree_code | op, | ||
equiv_class_id | rhs_ec_id ) |
void ana::constraint_manager::canonicalize | ( | ) |
void ana::constraint_manager::dump | ( | ) | const |
void ana::constraint_manager::dump | ( | FILE * | fp | ) | const |
void ana::constraint_manager::dump_to_pp | ( | pretty_printer * | pp, |
bool | multiline ) const |
tristate ana::constraint_manager::eval_condition | ( | const svalue * | lhs, |
enum tree_code | op, | ||
const svalue * | rhs ) const |
tristate ana::constraint_manager::eval_condition | ( | equiv_class_id | lhs, |
enum tree_code | op, | ||
equiv_class_id | rhs ) const |
tristate ana::constraint_manager::eval_condition | ( | equiv_class_id | lhs_ec, |
enum tree_code | op, | ||
tree | rhs_const ) const |
void ana::constraint_manager::for_each_fact | ( | fact_visitor * | ) | const |
range ana::constraint_manager::get_ec_bounds | ( | equiv_class_id | ec_id | ) | const |
|
inline |
References ana::equiv_class_id::get_obj(), and get_or_add_equiv_class().
|
inline |
References m_equiv_classes.
|
inline |
References m_equiv_classes.
bool ana::constraint_manager::get_equiv_class_by_svalue | ( | const svalue * | sval, |
equiv_class_id * | out ) const |
equiv_class_id ana::constraint_manager::get_or_add_equiv_class | ( | const svalue * | sval | ) |
Referenced by get_equiv_class().
bounded_ranges_manager * ana::constraint_manager::get_range_manager | ( | ) | const |
hashval_t ana::constraint_manager::hash | ( | ) | const |
|
private |
std::unique_ptr< text_art::tree_widget > ana::constraint_manager::make_dump_widget | ( | const text_art::dump_widget_info & | dwi | ) | const |
|
static |
References constraint_manager().
void ana::constraint_manager::on_liveness_change | ( | const svalue_set & | live_svalues, |
const region_model * | model ) |
|
inline |
References constraint_manager().
constraint_manager & ana::constraint_manager::operator= | ( | const constraint_manager & | other | ) |
References constraint_manager().
bool ana::constraint_manager::operator== | ( | const constraint_manager & | other | ) | const |
References constraint_manager().
void ana::constraint_manager::print | ( | pretty_printer * | pp | ) | const |
void ana::constraint_manager::purge | ( | const PurgeCriteria & | p, |
purge_stats * | stats ) |
void ana::constraint_manager::purge_state_involving | ( | const svalue * | sval | ) |
bool ana::constraint_manager::replay_call_summary | ( | call_summary_replay & | r, |
const constraint_manager & | summary ) |
References constraint_manager(), and r.
std::unique_ptr< json::object > ana::constraint_manager::to_json | ( | ) | const |
void ana::constraint_manager::validate | ( | ) | const |
auto_vec<bounded_ranges_constraint> ana::constraint_manager::m_bounded_ranges_constraints |
auto_vec<constraint> ana::constraint_manager::m_constraints |
auto_delete_vec<equiv_class> ana::constraint_manager::m_equiv_classes |
Referenced by get_equiv_class_by_index(), and get_equiv_class_by_index().
|
private |
Referenced by constraint_manager().