libFirm
Value Information

Information about SSA-values (ranges, known bits, ...) More...

Data Structures

struct  vrp_attr
 VRP information for a single node. More...
 

Enumerations

enum  range_types { VRP_UNDEFINED, VRP_RANGE, VRP_ANTIRANGE, VRP_VARYING }
 Type of a value range. More...
 

Functions

void set_vrp_data (ir_graph *irg)
 Sets vrp data on the graph irg. More...
 
void free_vrp_data (ir_graph *irg)
 free vrp infos in an irg More...
 
ir_relation vrp_cmp (const ir_node *left, const ir_node *right)
 Test, if the two nodes can be compared with their vrp information. More...
 
vrp_attrvrp_get_info (const ir_node *n)
 Returns the vrp data for this node Note: only allowed for nodes with an integer mode! More...
 

Detailed Description

Information about SSA-values (ranges, known bits, ...)


Data Structure Documentation

◆ vrp_attr

struct vrp_attr

VRP information for a single node.

Definition at line 35 of file vrp.h.

Data Fields
ir_tarval * bits_not_set The bits which by analysis are definitely not set: 1 for may be set, 0: definitely not set.
ir_tarval * bits_set The bits which, by analysis, are definitely set: 0: may be not set, 1: definitely set.
ir_tarval * range_bottom lower end of the value range
ir_tarval * range_top upper end of the value range
enum range_types range_type The range represented by range_top, range_bottom.

Enumeration Type Documentation

◆ range_types

Type of a value range.

Enumerator
VRP_UNDEFINED 

No information could be derived so far.

VRP_RANGE 

bottom and top form a range, including both values

VRP_ANTIRANGE 

range from bottom to top cannot be, but borders might be

VRP_VARYING 

information cannot be derived

Definition at line 26 of file vrp.h.

Function Documentation

◆ free_vrp_data()

void free_vrp_data ( ir_graph irg)

free vrp infos in an irg

◆ set_vrp_data()

void set_vrp_data ( ir_graph irg)

Sets vrp data on the graph irg.

Parameters
irggraph on which to set vrp data

◆ vrp_cmp()

ir_relation vrp_cmp ( const ir_node left,
const ir_node right 
)

Test, if the two nodes can be compared with their vrp information.

Parameters
leftthe left node
rightthe right node
Returns
all possible relations

◆ vrp_get_info()

vrp_attr* vrp_get_info ( const ir_node n)

Returns the vrp data for this node Note: only allowed for nodes with an integer mode!

Parameters
nthe node for which to return the vrp information
Returns
a pointer to the vrp data or NULL if there is none