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

#include <svalue.h>

Inheritance diagram for ana::region_svalue:
Collaboration diagram for ana::region_svalue:

Data Structures

struct  key_t
 

Public Types

typedef unsigned id_t
 

Public Member Functions

 region_svalue (symbol::id_t id, tree type, const region *reg)
 
enum svalue_kind get_kind () const final override
 
const region_svaluedyn_cast_region_svalue () const final override
 
void dump_to_pp (pretty_printer *pp, bool simple) const final override
 
void print_dump_widget_label (pretty_printer *pp) const final override
 
void add_dump_widget_children (text_art::tree_widget &w, const dump_widget_info &dwi) const final override
 
void accept (visitor *v) const final override
 
bool implicitly_live_p (const svalue_set *, const region_model *) const final override
 
const regionget_pointee () const
 
tree get_type () const
 
void print (const region_model &model, pretty_printer *pp) const
 
void dump () const
 
void dump (bool simple) const
 
label_text get_desc (bool simple=true) const
 
json::valueto_json () const
 
std::unique_ptr< text_art::widget > make_dump_widget (const dump_widget_info &dwi, const char *prefix=nullptr) const
 
virtual const constant_svaluedyn_cast_constant_svalue () const
 
virtual const poisoned_svaluedyn_cast_poisoned_svalue () const
 
virtual const setjmp_svaluedyn_cast_setjmp_svalue () const
 
virtual const initial_svaluedyn_cast_initial_svalue () const
 
virtual const unaryop_svaluedyn_cast_unaryop_svalue () const
 
virtual const binop_svaluedyn_cast_binop_svalue () const
 
virtual const sub_svaluedyn_cast_sub_svalue () const
 
virtual const repeated_svaluedyn_cast_repeated_svalue () const
 
virtual const bits_within_svaluedyn_cast_bits_within_svalue () const
 
virtual const unmergeable_svaluedyn_cast_unmergeable_svalue () const
 
virtual const widening_svaluedyn_cast_widening_svalue () const
 
virtual const compound_svaluedyn_cast_compound_svalue () const
 
virtual const conjured_svaluedyn_cast_conjured_svalue () const
 
virtual const asm_output_svaluedyn_cast_asm_output_svalue () const
 
virtual const const_fn_result_svaluedyn_cast_const_fn_result_svalue () const
 
tree maybe_get_constant () const
 
const regionmaybe_get_region () const
 
const svaluemaybe_undo_cast () const
 
const svalueunwrap_any_unmergeable () const
 
const svaluecan_merge_p (const svalue *other, region_model_manager *mgr, model_merger *merger) const
 
bool live_p (const svalue_set *live_svalues, const region_model *model) const
 
bool involves_p (const svalue *other) const
 
const svalueextract_bit_range (tree type, const bit_range &subrange, region_model_manager *mgr) const
 
virtual const svaluemaybe_fold_bits_within (tree type, const bit_range &subrange, region_model_manager *mgr) const
 
virtual bool all_zeroes_p () const
 
virtual bool can_have_associated_state_p () const
 
const regionmaybe_get_deref_base_region () const
 
bool maybe_print_for_user (pretty_printer *pp, const region_model &model, const svalue *outer_sval=nullptr) const
 
const complexityget_complexity () const
 
id_t get_id () const
 

Static Public Member Functions

static tristate eval_condition (const region_svalue *lhs_ptr, enum tree_code op, const region_svalue *rhs_ptr)
 
static int cmp_ptr (const svalue *, const svalue *)
 
static int cmp_ptr_ptr (const void *, const void *)
 
static int cmp_ids (const symbol *s1, const symbol *s2)
 

Protected Member Functions

void print_svalue_node_label (pretty_printer *pp) const
 

Private Attributes

const regionm_reg
 
tree m_type
 
complexity m_complexity
 
id_t m_id
 

Detailed Description

Concrete subclass of svalue representing a pointer value that points to
a known region   

Member Typedef Documentation

◆ id_t

typedef unsigned ana::symbol::id_t
inherited

Constructor & Destructor Documentation

◆ region_svalue()

ana::region_svalue::region_svalue ( symbol::id_t id,
tree type,
const region * reg )
inline

References gcc_assert, m_reg, and NULL.

Member Function Documentation

◆ accept()

void ana::region_svalue::accept ( visitor * v) const
finaloverridevirtual

Implements ana::svalue.

◆ add_dump_widget_children()

void ana::region_svalue::add_dump_widget_children ( text_art::tree_widget & w,
const dump_widget_info & dwi ) const
finaloverridevirtual

Implements ana::svalue.

◆ all_zeroes_p()

virtual bool ana::svalue::all_zeroes_p ( ) const
virtualinherited

◆ can_have_associated_state_p()

virtual bool ana::svalue::can_have_associated_state_p ( ) const
inlinevirtualinherited

◆ can_merge_p()

const svalue * ana::svalue::can_merge_p ( const svalue * other,
region_model_manager * mgr,
model_merger * merger ) const
inherited

◆ cmp_ids()

static int ana::symbol::cmp_ids ( const symbol * s1,
const symbol * s2 )
staticinherited

◆ cmp_ptr()

static int ana::svalue::cmp_ptr ( const svalue * ,
const svalue *  )
staticinherited

◆ cmp_ptr_ptr()

static int ana::svalue::cmp_ptr_ptr ( const void * ,
const void *  )
staticinherited

◆ dump() [1/2]

void ana::svalue::dump ( ) const
inherited

◆ dump() [2/2]

void ana::svalue::dump ( bool simple) const
inherited

◆ dump_to_pp()

void ana::region_svalue::dump_to_pp ( pretty_printer * pp,
bool simple ) const
finaloverridevirtual

Implements ana::svalue.

◆ dyn_cast_asm_output_svalue()

virtual const asm_output_svalue * ana::svalue::dyn_cast_asm_output_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::asm_output_svalue.

References NULL.

◆ dyn_cast_binop_svalue()

virtual const binop_svalue * ana::svalue::dyn_cast_binop_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::binop_svalue.

References NULL.

◆ dyn_cast_bits_within_svalue()

virtual const bits_within_svalue * ana::svalue::dyn_cast_bits_within_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::bits_within_svalue.

References NULL.

◆ dyn_cast_compound_svalue()

virtual const compound_svalue * ana::svalue::dyn_cast_compound_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::compound_svalue.

References NULL.

Referenced by contains_unknown_p().

◆ dyn_cast_conjured_svalue()

virtual const conjured_svalue * ana::svalue::dyn_cast_conjured_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::conjured_svalue.

References NULL.

◆ dyn_cast_const_fn_result_svalue()

virtual const const_fn_result_svalue * ana::svalue::dyn_cast_const_fn_result_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::const_fn_result_svalue.

References NULL.

◆ dyn_cast_constant_svalue()

virtual const constant_svalue * ana::svalue::dyn_cast_constant_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::constant_svalue.

References NULL.

◆ dyn_cast_initial_svalue()

virtual const initial_svalue * ana::svalue::dyn_cast_initial_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::initial_svalue.

References NULL.

◆ dyn_cast_poisoned_svalue()

virtual const poisoned_svalue * ana::svalue::dyn_cast_poisoned_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::poisoned_svalue.

References NULL.

◆ dyn_cast_region_svalue()

const region_svalue * ana::region_svalue::dyn_cast_region_svalue ( ) const
inlinefinaloverridevirtual

Reimplemented from ana::svalue.

◆ dyn_cast_repeated_svalue()

virtual const repeated_svalue * ana::svalue::dyn_cast_repeated_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::repeated_svalue.

References NULL.

◆ dyn_cast_setjmp_svalue()

virtual const setjmp_svalue * ana::svalue::dyn_cast_setjmp_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::setjmp_svalue.

References NULL.

◆ dyn_cast_sub_svalue()

virtual const sub_svalue * ana::svalue::dyn_cast_sub_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::sub_svalue.

References NULL.

◆ dyn_cast_unaryop_svalue()

virtual const unaryop_svalue * ana::svalue::dyn_cast_unaryop_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::unaryop_svalue.

References NULL.

◆ dyn_cast_unmergeable_svalue()

virtual const unmergeable_svalue * ana::svalue::dyn_cast_unmergeable_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::unmergeable_svalue.

References NULL.

◆ dyn_cast_widening_svalue()

virtual const widening_svalue * ana::svalue::dyn_cast_widening_svalue ( ) const
inlinevirtualinherited

Reimplemented in ana::widening_svalue.

References NULL.

◆ eval_condition()

static tristate ana::region_svalue::eval_condition ( const region_svalue * lhs_ptr,
enum tree_code op,
const region_svalue * rhs_ptr )
static

◆ extract_bit_range()

const svalue * ana::svalue::extract_bit_range ( tree type,
const bit_range & subrange,
region_model_manager * mgr ) const
inherited

◆ get_complexity()

const complexity & ana::symbol::get_complexity ( ) const
inlineinherited

◆ get_desc()

label_text ana::svalue::get_desc ( bool simple = true) const
inherited

◆ get_id()

id_t ana::symbol::get_id ( ) const
inlineinherited

References ana::symbol::m_id.

◆ get_kind()

enum svalue_kind ana::region_svalue::get_kind ( ) const
inlinefinaloverridevirtual

Implements ana::svalue.

References ana::SK_REGION.

◆ get_pointee()

const region * ana::region_svalue::get_pointee ( ) const
inline

References m_reg.

◆ get_type()

tree ana::svalue::get_type ( ) const
inlineinherited

References ana::svalue::m_type.

◆ implicitly_live_p()

bool ana::region_svalue::implicitly_live_p ( const svalue_set * ,
const region_model *  ) const
finaloverridevirtual

Reimplemented from ana::svalue.

◆ involves_p()

bool ana::svalue::involves_p ( const svalue * other) const
inherited

◆ live_p()

bool ana::svalue::live_p ( const svalue_set * live_svalues,
const region_model * model ) const
inherited

◆ make_dump_widget()

std::unique_ptr< text_art::widget > ana::svalue::make_dump_widget ( const dump_widget_info & dwi,
const char * prefix = nullptr ) const
inherited

◆ maybe_fold_bits_within()

virtual const svalue * ana::svalue::maybe_fold_bits_within ( tree type,
const bit_range & subrange,
region_model_manager * mgr ) const
virtualinherited

◆ maybe_get_constant()

tree ana::svalue::maybe_get_constant ( ) const
inherited

◆ maybe_get_deref_base_region()

const region * ana::svalue::maybe_get_deref_base_region ( ) const
inherited

◆ maybe_get_region()

const region * ana::svalue::maybe_get_region ( ) const
inherited

◆ maybe_print_for_user()

bool ana::svalue::maybe_print_for_user ( pretty_printer * pp,
const region_model & model,
const svalue * outer_sval = nullptr ) const
inherited

◆ maybe_undo_cast()

const svalue * ana::svalue::maybe_undo_cast ( ) const
inherited

◆ print()

void ana::svalue::print ( const region_model & model,
pretty_printer * pp ) const
inherited

◆ print_dump_widget_label()

void ana::region_svalue::print_dump_widget_label ( pretty_printer * pp) const
finaloverridevirtual

Implements ana::svalue.

◆ print_svalue_node_label()

void ana::svalue::print_svalue_node_label ( pretty_printer * pp) const
protectedinherited

◆ to_json()

json::value * ana::svalue::to_json ( ) const
inherited

◆ unwrap_any_unmergeable()

const svalue * ana::svalue::unwrap_any_unmergeable ( ) const
inherited

Field Documentation

◆ m_complexity

complexity ana::symbol::m_complexity
privateinherited

◆ m_id

id_t ana::symbol::m_id
privateinherited

Referenced by ana::symbol::get_id().

◆ m_reg

const region* ana::region_svalue::m_reg
private

Referenced by get_pointee(), and region_svalue().

◆ m_type

tree ana::svalue::m_type
privateinherited

Referenced by ana::svalue::get_type().


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