|
| constraint_manager (region_model_manager *mgr) |
| constraint_manager (const constraint_manager &other) |
virtual | ~constraint_manager () |
constraint_manager & | operator= (const constraint_manager &other) |
hashval_t | hash () const |
bool | operator== (const constraint_manager &other) const |
bool | operator!= (const constraint_manager &other) const |
void | print (pretty_printer *pp) const |
void | dump_to_pp (pretty_printer *pp, bool multiline) const |
void | dump (FILE *fp) const |
void | dump () const |
std::unique_ptr< json::object > | to_json () const |
std::unique_ptr< text_art::tree_widget > | make_dump_widget (const text_art::dump_widget_info &dwi) const |
const equiv_class & | get_equiv_class_by_index (unsigned idx) const |
equiv_class & | get_equiv_class_by_index (unsigned idx) |
equiv_class & | get_equiv_class (const svalue *sval) |
bool | add_constraint (const svalue *lhs, enum tree_code op, const svalue *rhs) |
bool | add_constraint (equiv_class_id lhs_ec_id, enum tree_code op, equiv_class_id rhs_ec_id) |
void | add_unknown_constraint (equiv_class_id lhs_ec_id, enum tree_code op, equiv_class_id rhs_ec_id) |
bool | add_bounded_ranges (const svalue *sval, const bounded_ranges *ranges) |
bool | get_equiv_class_by_svalue (const svalue *sval, equiv_class_id *out) const |
bool | sval_constrained_p (const svalue *sval) const |
equiv_class_id | get_or_add_equiv_class (const svalue *sval) |
tristate | eval_condition (equiv_class_id lhs, enum tree_code op, equiv_class_id rhs) const |
tristate | eval_condition (equiv_class_id lhs_ec, enum tree_code op, tree rhs_const) const |
tristate | eval_condition (const svalue *lhs, enum tree_code op, const svalue *rhs) const |
range | get_ec_bounds (equiv_class_id ec_id) const |
template<typename PurgeCriteria> |
void | purge (const PurgeCriteria &p, purge_stats *stats) |
void | on_liveness_change (const svalue_set &live_svalues, const region_model *model) |
void | purge_state_involving (const svalue *sval) |
void | canonicalize () |
void | for_each_fact (fact_visitor *) const |
void | validate () const |
bounded_ranges_manager * | get_range_manager () const |
bool | replay_call_summary (call_summary_replay &r, const constraint_manager &summary) |
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.