libFirm
Loading...
Searching...
No Matches
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.
 
void free_vrp_data (ir_graph *irg)
 free vrp infos in an irg
 
ir_relation vrp_cmp (const ir_node *left, const ir_node *right)
 Test, if the two nodes can be compared with their vrp information.
 
vrp_attrvrp_get_info (const ir_node *n)
 Returns the vrp data for this node Note: only allowed for nodes with an integer mode!
 

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