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 |