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

Data Structures | |
| struct | binding_pair |
| class | const_iterator |
| class | iterator |
| struct | symbolic_binding |
Public Types | |
| using | concrete_bindings_t = std::map<bit_range, const svalue *> |
| using | symbolic_bindings_t = std::vector<symbolic_binding> |
| typedef class ana::binding_map::const_iterator | const_iterator_t |
| typedef class ana::binding_map::iterator | iterator_t |
Public Member Functions | |
| binding_map (store_manager &store_mgr) | |
| 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 |
| void | put (const binding_key *k, const svalue *v) |
| void | overwrite (iterator_t &pos, const svalue *v) |
| void | remove (const binding_key *k) |
| void | clear () |
| bool | empty_p () const |
| const_iterator_t | begin () const |
| const_iterator_t | end () const |
| iterator_t | begin () |
| iterator_t | end () |
| size_t | elements () const |
| void | dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const |
| void | dump (bool simple) const |
| std::unique_ptr< 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 | |
| store_manager & | m_store_mgr |
| concrete_bindings_t | m_concrete |
| symbolic_bindings_t | m_symbolic |
A mapping from binding_keys to svalues, for use by binding_cluster and compound_svalue. We store a map from concrete keys to svalues, which is ordered by the start offset. We also store a vector of (symbolic key, svalue) pairs, but for now this has maximum length of 1.
| using ana::binding_map::concrete_bindings_t = std::map<bit_range, const svalue *> |
| typedef class ana::binding_map::iterator ana::binding_map::iterator_t |
| using ana::binding_map::symbolic_bindings_t = std::vector<symbolic_binding> |
| ana::binding_map::binding_map | ( | store_manager & | store_mgr | ) |
Referenced by binding_map(), cmp(), ana::binding_map::const_iterator::const_iterator(), operator!=(), operator=(), and operator==().
| ana::binding_map::binding_map | ( | const binding_map & | other | ) |
References binding_map().
| 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 |
| iterator_t ana::binding_map::begin | ( | ) |
| const_iterator_t ana::binding_map::begin | ( | ) | const |
|
inline |
References m_concrete, and m_symbolic.
|
static |
References binding_map().
| void ana::binding_map::dump | ( | bool | simple | ) | const |
| void ana::binding_map::dump_to_pp | ( | pretty_printer * | pp, |
| bool | simple, | ||
| bool | multiline ) const |
| size_t ana::binding_map::elements | ( | ) | const |
|
inline |
References m_concrete, and m_symbolic.
| iterator_t ana::binding_map::end | ( | ) |
| const_iterator_t ana::binding_map::end | ( | ) | const |
| const svalue * ana::binding_map::get | ( | const binding_key * | key | ) | const |
|
private |
| hashval_t ana::binding_map::hash | ( | ) | const |
|
inline |
References binding_map().
| binding_map & ana::binding_map::operator= | ( | const binding_map & | other | ) |
References binding_map().
| bool ana::binding_map::operator== | ( | const binding_map & | other | ) | const |
References binding_map().
| void ana::binding_map::overwrite | ( | iterator_t & | pos, |
| const svalue * | v ) |
| void ana::binding_map::put | ( | const binding_key * | k, |
| const svalue * | v ) |
| void ana::binding_map::remove | ( | const binding_key * | k | ) |
| 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 ) |
| std::unique_ptr< json::object > ana::binding_map::to_json | ( | ) | const |
|
private |
|
private |
|
private |