|
GCC Middle and Back End API Reference
|
#include <store.h>

Public Types | |
| typedef binding_map::const_iterator | const_iterator_t |
| typedef binding_map::iterator | iterator_t |
Public Member Functions | |
| binding_cluster (store_manager &store_mgr, const region *base_region) | |
| binding_cluster (const binding_cluster &other) | |
| binding_cluster & | operator= (const binding_cluster &other) |
| bool | operator== (const binding_cluster &other) const |
| bool | operator!= (const binding_cluster &other) const |
| hashval_t | hash () const |
| bool | symbolic_p () const |
| const region * | get_base_region () const |
| void | dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const |
| void | dump (bool simple) const |
| void | validate () 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, store_manager *mgr) const |
| void | bind (store_manager *mgr, const region *, const svalue *) |
| void | clobber_region (store_manager *mgr, const region *reg) |
| void | purge_region (store_manager *mgr, const region *reg) |
| void | fill_region (store_manager *mgr, const region *reg, const svalue *sval) |
| void | zero_fill_region (store_manager *mgr, const region *reg) |
| void | mark_region_as_unknown (store_manager *mgr, const region *reg_to_bind, const region *reg_for_overlap, uncertainty_t *uncertainty, svalue_set *maybe_live_values) |
| void | purge_state_involving (const svalue *sval, region_model_manager *sval_mgr) |
| const svalue * | get_binding (store_manager *mgr, const region *reg) const |
| const svalue * | get_binding_recursive (store_manager *mgr, const region *reg) const |
| const svalue * | get_any_binding (store_manager *mgr, const region *reg) const |
| const svalue * | maybe_get_compound_binding (store_manager *mgr, const region *reg) const |
| void | remove_overlapping_bindings (store_manager *mgr, const region *reg, uncertainty_t *uncertainty, svalue_set *maybe_live_values) |
| template<typename T> | |
| void | for_each_value (void(*cb)(const svalue *sval, T user_data), T user_data) const |
| void | make_unknown_relative_to (const binding_cluster *other_cluster, store *out_store, store_manager *mgr) |
| void | mark_as_escaped () |
| void | on_unknown_fncall (const gcall &call, store_manager *mgr, const conjured_purge &p) |
| void | on_asm (const gasm *stmt, store_manager *mgr, const conjured_purge &p) |
| bool | escaped_p () const |
| bool | touched_p () const |
| bool | redundant_p () const |
| bool | empty_p () const |
| void | get_representative_path_vars (const region_model *model, svalue_set *visited, const region *base_reg, const svalue *sval, logger *logger, auto_vec< path_var > *out_pvs) const |
| const svalue * | maybe_get_simple_value (store_manager *mgr) const |
| const_iterator_t | begin () const |
| const_iterator_t | end () const |
| iterator_t | begin () |
| iterator_t | end () |
| const binding_map & | get_map () const |
| binding_map & | get_map () |
Static Public Member Functions | |
| static bool | can_merge_p (const binding_cluster *cluster_a, const binding_cluster *cluster_b, binding_cluster *out_cluster, store *out_store, store_manager *mgr, model_merger *merger) |
Private Member Functions | |
| const svalue * | get_any_value (const binding_key *key) const |
| void | bind_compound_sval (store_manager *mgr, const region *reg, const compound_svalue *compound_sval) |
| void | bind_key (const binding_key *key, const svalue *sval) |
Private Attributes | |
| const region * | m_base_region |
| binding_map | m_map |
| bool | m_escaped |
| bool | m_touched |
Friends | |
| class | store |
All of the bindings within a store for regions that share the same base region.
| ana::binding_cluster::binding_cluster | ( | store_manager & | store_mgr, |
| const region * | base_region ) |
Referenced by binding_cluster(), can_merge_p(), make_unknown_relative_to(), operator!=(), operator=(), and operator==().
| ana::binding_cluster::binding_cluster | ( | const binding_cluster & | other | ) |
References binding_cluster().
|
inline |
References m_map.
|
inline |
References m_map.
| void ana::binding_cluster::bind | ( | store_manager * | mgr, |
| const region * | , | ||
| const svalue * | ) |
|
private |
|
private |
|
static |
References binding_cluster(), and store.
| void ana::binding_cluster::clobber_region | ( | store_manager * | mgr, |
| const region * | reg ) |
| void ana::binding_cluster::dump | ( | bool | simple | ) | const |
| void ana::binding_cluster::dump_to_pp | ( | pretty_printer * | pp, |
| bool | simple, | ||
| bool | multiline ) const |
|
inline |
References m_map.
|
inline |
References m_map.
| bool ana::binding_cluster::escaped_p | ( | ) | const |
| void ana::binding_cluster::fill_region | ( | store_manager * | mgr, |
| const region * | reg, | ||
| const svalue * | sval ) |
| const svalue * ana::binding_cluster::get_any_binding | ( | store_manager * | mgr, |
| const region * | reg ) const |
|
private |
|
inline |
References m_base_region.
| const svalue * ana::binding_cluster::get_binding | ( | store_manager * | mgr, |
| const region * | reg ) const |
| const svalue * ana::binding_cluster::get_binding_recursive | ( | store_manager * | mgr, |
| const region * | reg ) const |
|
inline |
References m_map.
|
inline |
References m_map.
| void ana::binding_cluster::get_representative_path_vars | ( | const region_model * | model, |
| svalue_set * | visited, | ||
| const region * | base_reg, | ||
| const svalue * | sval, | ||
| logger * | logger, | ||
| auto_vec< path_var > * | out_pvs ) const |
References visited.
| hashval_t ana::binding_cluster::hash | ( | ) | const |
| std::unique_ptr< text_art::tree_widget > ana::binding_cluster::make_dump_widget | ( | const text_art::dump_widget_info & | dwi, |
| store_manager * | mgr ) const |
| void ana::binding_cluster::make_unknown_relative_to | ( | const binding_cluster * | other_cluster, |
| store * | out_store, | ||
| store_manager * | mgr ) |
References binding_cluster(), and store.
| void ana::binding_cluster::mark_as_escaped | ( | ) |
| void ana::binding_cluster::mark_region_as_unknown | ( | store_manager * | mgr, |
| const region * | reg_to_bind, | ||
| const region * | reg_for_overlap, | ||
| uncertainty_t * | uncertainty, | ||
| svalue_set * | maybe_live_values ) |
| const svalue * ana::binding_cluster::maybe_get_compound_binding | ( | store_manager * | mgr, |
| const region * | reg ) const |
| const svalue * ana::binding_cluster::maybe_get_simple_value | ( | store_manager * | mgr | ) | const |
| void ana::binding_cluster::on_asm | ( | const gasm * | stmt, |
| store_manager * | mgr, | ||
| const conjured_purge & | p ) |
| void ana::binding_cluster::on_unknown_fncall | ( | const gcall & | call, |
| store_manager * | mgr, | ||
| const conjured_purge & | p ) |
|
inline |
References binding_cluster().
| binding_cluster & ana::binding_cluster::operator= | ( | const binding_cluster & | other | ) |
References binding_cluster().
| bool ana::binding_cluster::operator== | ( | const binding_cluster & | other | ) | const |
References binding_cluster().
| void ana::binding_cluster::purge_region | ( | store_manager * | mgr, |
| const region * | reg ) |
| void ana::binding_cluster::purge_state_involving | ( | const svalue * | sval, |
| region_model_manager * | sval_mgr ) |
| bool ana::binding_cluster::redundant_p | ( | ) | const |
| void ana::binding_cluster::remove_overlapping_bindings | ( | store_manager * | mgr, |
| const region * | reg, | ||
| uncertainty_t * | uncertainty, | ||
| svalue_set * | maybe_live_values ) |
| bool ana::binding_cluster::symbolic_p | ( | ) | const |
| std::unique_ptr< json::object > ana::binding_cluster::to_json | ( | ) | const |
| void ana::binding_cluster::validate | ( | ) | const |
| void ana::binding_cluster::zero_fill_region | ( | store_manager * | mgr, |
| const region * | reg ) |
|
friend |
References store.
Referenced by can_merge_p(), make_unknown_relative_to(), and store.
|
private |
Referenced by get_base_region().
|
private |
|
private |
|
private |
Referenced by touched_p().