GCC Middle and Back End API Reference
value-range.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  vrange
 
class  irange_bitmask
 
class  irange
 
class  int_range< N, RESIZABLE >
 
class  prange
 
class  unsupported_range
 
class  nan_state
 
class  frange
 
class  vrange_visitor
 
class  Value_Range
 
union  Value_Range::buffer_type
 

Namespaces

namespace  inchash
 

Typedefs

typedef int_range< 3, trueint_range_max
 
typedef int_range< 2 > value_range
 

Enumerations

enum  value_range_kind {
  VR_UNDEFINED , VR_VARYING , VR_RANGE , VR_ANTI_RANGE ,
  VR_NAN , VR_LAST
}
 
enum  value_range_discriminator { VR_IRANGE , VR_PRANGE , VR_FRANGE , VR_UNKNOWN }
 

Functions

void inchash::add_vrange (const vrange &, hash &, unsigned flags=0)
 
template<typename T >
bool is_a (vrange &)
 
template<typename T >
bool is_a (const vrange &v)
 
template<typename T >
Tas_a (vrange &v)
 
template<typename T >
const Tas_a (const vrange &v)
 
template<>
bool is_a< irange > (vrange &v)
 
template<>
bool is_a< prange > (vrange &v)
 
template<>
bool is_a< frange > (vrange &v)
 
template<>
bool is_a< unsupported_range > (vrange &v)
 
value_range_kind get_legacy_range (const vrange &, tree &min, tree &max)
 
void dump_value_range (FILE *, const vrange *)
 
bool vrp_operand_equal_p (const_tree, const_tree)
 
REAL_VALUE_TYPE frange_val_min (const_tree type)
 
REAL_VALUE_TYPE frange_val_max (const_tree type)
 
bool range_includes_zero_p (const vrange &vr)
 
bool contains_zero_p (const irange &r)
 
wide_int irange_val_min (const_tree type)
 
wide_int irange_val_max (const_tree type)
 
REAL_VALUE_TYPE real_max_representable (const_tree type)
 
REAL_VALUE_TYPE real_min_representable (const_tree type)
 
bool frange_val_is_min (const REAL_VALUE_TYPE &r, const_tree type)
 
bool frange_val_is_max (const REAL_VALUE_TYPE &r, const_tree type)
 
void frange_nextafter (enum machine_mode, REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &)
 
void frange_arithmetic (enum tree_code, tree, REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &, const REAL_VALUE_TYPE &)
 
bool range_compatible_p (tree type1, tree type2)
 

Typedef Documentation

◆ int_range_max

◆ value_range

Enumeration Type Documentation

◆ value_range_discriminator

Enumerator
VR_IRANGE 
VR_PRANGE 
VR_FRANGE 
VR_UNKNOWN 

◆ value_range_kind

Enumerator
VR_UNDEFINED 
VR_VARYING 
VR_RANGE 
VR_ANTI_RANGE 
VR_NAN 
VR_LAST 

Function Documentation

◆ as_a() [1/2]

template<typename T >
const T & as_a ( const vrange & v)
inline

References gcc_checking_assert, and ggc_alloc().

◆ as_a() [2/2]

template<typename T >
T & as_a ( vrange & v)
inline

References gcc_checking_assert, and ggc_alloc().

◆ contains_zero_p()

bool contains_zero_p ( const irange & r)
inline

References r, TYPE_PRECISION, and wi::zero().

Referenced by irange::set_range_from_bitmask().

◆ dump_value_range()

void dump_value_range ( FILE * file,
const vrange * vr )
extern

References vrange::dump().

Referenced by debug(), debug(), and debug().

◆ frange_arithmetic()

◆ frange_nextafter()

◆ frange_val_is_max()

bool frange_val_is_max ( const REAL_VALUE_TYPE & r,
const_tree type )
inline

◆ frange_val_is_min()

bool frange_val_is_min ( const REAL_VALUE_TYPE & r,
const_tree type )
inline

◆ frange_val_max()

◆ frange_val_min()

◆ get_legacy_range()

value_range_kind get_legacy_range ( const vrange & v,
tree & min,
tree & max )
extern

◆ irange_val_max()

◆ irange_val_min()

◆ is_a() [1/2]

template<typename T >
bool is_a ( const vrange & v)
inline

References ggc_alloc().

◆ is_a() [2/2]

template<typename T >
bool is_a ( vrange & )
inline

◆ is_a< frange >()

◆ is_a< irange >()

◆ is_a< prange >()

◆ is_a< unsupported_range >()

template<>
bool is_a< unsupported_range > ( vrange & v)
inline

References vrange::m_discriminator, and VR_UNKNOWN.

Referenced by vrange::operator=().

◆ range_compatible_p()

◆ range_includes_zero_p()

◆ real_max_representable()

◆ real_min_representable()

◆ vrp_operand_equal_p()

bool vrp_operand_equal_p ( const_tree val1,
const_tree val2 )
extern
Return true, if VAL1 and VAL2 are equal values for VRP purposes.   

References ggc_alloc(), and operand_equal_p().

Referenced by ipa_predicate::add_clause(), add_condition(), adjust_pointer_diff_expr(), and expr_eval_ops_equal_p().