|
| 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.