GCC Middle and Back End API Reference
|
#include <store.h>
Public Types | |
typedef hash_map< const binding_key *, const svalue * > | map_t |
typedef map_t::iterator | iterator_t |
Public Member Functions | |
binding_map () | |
binding_map (const binding_map &other) | |
binding_map & | operator= (const binding_map &other) |
bool | operator== (const binding_map &other) const |
bool | operator!= (const binding_map &other) const |
hashval_t | hash () const |
const svalue * | get (const binding_key *key) const |
bool | put (const binding_key *k, const svalue *v) |
void | remove (const binding_key *k) |
void | empty () |
iterator_t | begin () const |
iterator_t | end () const |
size_t | elements () const |
void | dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const |
void | dump (bool simple) const |
json::object * | to_json () const |
void | add_to_tree_widget (text_art::tree_widget &parent_widget, const text_art::dump_widget_info &dwi) const |
bool | apply_ctor_to_region (const region *parent_reg, tree ctor, region_model_manager *mgr) |
void | remove_overlapping_bindings (store_manager *mgr, const binding_key *drop_key, uncertainty_t *uncertainty, svalue_set *maybe_live_values, bool always_overlap) |
Static Public Member Functions | |
static int | cmp (const binding_map &map1, const binding_map &map2) |
Private Member Functions | |
void | get_overlapping_bindings (const binding_key *key, auto_vec< const binding_key * > *out) |
bool | apply_ctor_val_to_range (const region *parent_reg, region_model_manager *mgr, tree min_index, tree max_index, tree val) |
bool | apply_ctor_pair_to_child_region (const region *parent_reg, region_model_manager *mgr, tree index, tree val) |
Private Attributes | |
map_t | m_map |
A mapping from binding_keys to svalues, for use by binding_cluster and compound_svalue.
map_t::iterator ana::binding_map::iterator_t |
hash_map<const binding_key *, const svalue *> ana::binding_map::map_t |
|
inline |
ana::binding_map::binding_map | ( | const binding_map & | other | ) |
void ana::binding_map::add_to_tree_widget | ( | text_art::tree_widget & | parent_widget, |
const text_art::dump_widget_info & | dwi ) const |
|
private |
bool ana::binding_map::apply_ctor_to_region | ( | const region * | parent_reg, |
tree | ctor, | ||
region_model_manager * | mgr ) |
|
private |
|
inline |
References hash_map< KeyId, Value, Traits >::begin(), and m_map.
Referenced by ana::binding_cluster::begin(), ana::binding_cluster::for_each_binding(), and ana::binding_cluster::for_each_value().
|
static |
void ana::binding_map::dump | ( | bool | simple | ) | const |
void ana::binding_map::dump_to_pp | ( | pretty_printer * | pp, |
bool | simple, | ||
bool | multiline ) const |
|
inline |
References hash_map< KeyId, Value, Traits >::elements(), and m_map.
Referenced by ana::binding_cluster::empty_p().
|
inline |
References hash_map< KeyId, Value, Traits >::empty(), and m_map.
|
inline |
References hash_map< KeyId, Value, Traits >::end(), and m_map.
Referenced by ana::binding_cluster::end(), ana::binding_cluster::for_each_binding(), and ana::binding_cluster::for_each_value().
|
inline |
|
private |
hashval_t ana::binding_map::hash | ( | ) | const |
|
inline |
binding_map & ana::binding_map::operator= | ( | const binding_map & | other | ) |
bool ana::binding_map::operator== | ( | const binding_map & | other | ) | const |
|
inline |
References gcc_assert, m_map, and hash_map< KeyId, Value, Traits >::put().
|
inline |
References m_map, and hash_map< KeyId, Value, Traits >::remove().
void ana::binding_map::remove_overlapping_bindings | ( | store_manager * | mgr, |
const binding_key * | drop_key, | ||
uncertainty_t * | uncertainty, | ||
svalue_set * | maybe_live_values, | ||
bool | always_overlap ) |
json::object * ana::binding_map::to_json | ( | ) | const |
|
private |