GCC Middle and Back End API Reference
ana::binding_map Class Reference

#include <store.h>

Collaboration diagram for ana::binding_map:

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_mapoperator= (const binding_map &other)
 
bool operator== (const binding_map &other) const
 
bool operator!= (const binding_map &other) const
 
hashval_t hash () const
 
const svalueget (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::objectto_json () 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
 

Detailed Description

A mapping from binding_keys to svalues, for use by binding_cluster
and compound_svalue.   

Member Typedef Documentation

◆ iterator_t

◆ map_t

Constructor & Destructor Documentation

◆ binding_map() [1/2]

ana::binding_map::binding_map ( )
inline

◆ binding_map() [2/2]

ana::binding_map::binding_map ( const binding_map & other)

Member Function Documentation

◆ apply_ctor_pair_to_child_region()

bool ana::binding_map::apply_ctor_pair_to_child_region ( const region * parent_reg,
region_model_manager * mgr,
tree index,
tree val )
private

◆ apply_ctor_to_region()

bool ana::binding_map::apply_ctor_to_region ( const region * parent_reg,
tree ctor,
region_model_manager * mgr )

◆ apply_ctor_val_to_range()

bool ana::binding_map::apply_ctor_val_to_range ( const region * parent_reg,
region_model_manager * mgr,
tree min_index,
tree max_index,
tree val )
private

◆ begin()

◆ cmp()

static int ana::binding_map::cmp ( const binding_map & map1,
const binding_map & map2 )
static

◆ dump()

void ana::binding_map::dump ( bool simple) const

◆ dump_to_pp()

void ana::binding_map::dump_to_pp ( pretty_printer * pp,
bool simple,
bool multiline ) const

◆ elements()

size_t ana::binding_map::elements ( ) const
inline

◆ empty()

void ana::binding_map::empty ( )
inline

◆ end()

◆ get()

const svalue * ana::binding_map::get ( const binding_key * key) const
inline

References get(), m_map, and NULL.

Referenced by get().

◆ get_overlapping_bindings()

void ana::binding_map::get_overlapping_bindings ( const binding_key * key,
auto_vec< const binding_key * > * out )
private

◆ hash()

hashval_t ana::binding_map::hash ( ) const

◆ operator!=()

bool ana::binding_map::operator!= ( const binding_map & other) const
inline

◆ operator=()

binding_map & ana::binding_map::operator= ( const binding_map & other)

◆ operator==()

bool ana::binding_map::operator== ( const binding_map & other) const

◆ put()

bool ana::binding_map::put ( const binding_key * k,
const svalue * v )
inline

◆ remove()

void ana::binding_map::remove ( const binding_key * k)
inline

◆ remove_overlapping_bindings()

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 )

◆ to_json()

json::object * ana::binding_map::to_json ( ) const

Field Documentation

◆ m_map

map_t ana::binding_map::m_map
private

Referenced by begin(), elements(), empty(), end(), get(), put(), and remove().


The documentation for this class was generated from the following file: