libFirm
Confirm node

Specifies constraints for a value. More...

Enumerations

enum  n_Confirm { n_Confirm_value, n_Confirm_bound, n_Confirm_max = n_Confirm_bound }
 Input numbers for Confirm node. More...
 

Functions

ir_nodenew_rd_Confirm (dbg_info *dbgi, ir_node *block, ir_node *irn_value, ir_node *irn_bound, ir_relation relation)
 Construct a Confirm node. More...
 
ir_nodenew_r_Confirm (ir_node *block, ir_node *irn_value, ir_node *irn_bound, ir_relation relation)
 Construct a Confirm node. More...
 
ir_nodenew_d_Confirm (dbg_info *dbgi, ir_node *irn_value, ir_node *irn_bound, ir_relation relation)
 Construct a Confirm node. More...
 
ir_nodenew_Confirm (ir_node *irn_value, ir_node *irn_bound, ir_relation relation)
 Construct a Confirm node. More...
 
int is_Confirm (const ir_node *node)
 Test if node is a Confirm. More...
 
ir_nodeget_Confirm_value (const ir_node *node)
 Returns value input of a Confirm node. More...
 
void set_Confirm_value (ir_node *node, ir_node *value)
 Sets value input of a Confirm node. More...
 
ir_nodeget_Confirm_bound (const ir_node *node)
 Returns bound input of a Confirm node. More...
 
void set_Confirm_bound (ir_node *node, ir_node *bound)
 Sets bound input of a Confirm node. More...
 
ir_relation get_Confirm_relation (const ir_node *node)
 Returns relation attribute of a Confirm node. More...
 
void set_Confirm_relation (ir_node *node, ir_relation relation)
 Sets relation attribute of a Confirm node. More...
 
ir_opget_op_Confirm (void)
 Returns opcode for Confirm nodes. More...
 

Variables

ir_opop_Confirm
 Confirm opcode. More...
 

Detailed Description

Specifies constraints for a value.

This allows explicit representation of path-sensitive properties. (Example: This value is always >= 0 on 1 if-branch then all users within that branch are rerouted to a confirm-node specifying this property).

A constraint is specified for the relation between value and bound. value is always returned. Note that this node does NOT check or assert the constraint, it merely specifies it.

Enumeration Type Documentation

enum n_Confirm

Input numbers for Confirm node.

Enumerator
n_Confirm_value 

value to express a constraint for

n_Confirm_bound 

value to compare against

n_Confirm_max 

Definition at line 1213 of file nodes.h.

Function Documentation

ir_node* get_Confirm_bound ( const ir_node node)

Returns bound input of a Confirm node.

Definition at line 843 of file gen_irnode.c.

ir_relation get_Confirm_relation ( const ir_node node)

Returns relation attribute of a Confirm node.

Definition at line 3105 of file gen_irnode.c.

ir_node* get_Confirm_value ( const ir_node node)

Returns value input of a Confirm node.

Definition at line 833 of file gen_irnode.c.

ir_op* get_op_Confirm ( void  )

Returns opcode for Confirm nodes.

Definition at line 853 of file gen_irnode.c.

References op_Confirm.

int is_Confirm ( const ir_node node)

Test if node is a Confirm.

Returns
1 if the node is a Confirm node, 0 otherwise

Definition at line 3100 of file gen_irnode.c.

ir_node* new_Confirm ( ir_node irn_value,
ir_node irn_bound,
ir_relation  relation 
)

Construct a Confirm node.

Parameters
irn_valuevalue
irn_boundbound
relationrelation of value to bound

Definition at line 828 of file gen_irnode.c.

References new_d_Confirm().

ir_node* new_d_Confirm ( dbg_info dbgi,
ir_node irn_value,
ir_node irn_bound,
ir_relation  relation 
)

Construct a Confirm node.

Parameters
dbgiA pointer to debug information.
irn_valuevalue
irn_boundbound
relationrelation of value to bound

Definition at line 821 of file gen_irnode.c.

References current_ir_graph, get_cur_block(), IR_GRAPH_CONSTRAINT_CONSTRUCTION, irg_is_constrained(), and new_rd_Confirm().

Referenced by new_Confirm().

ir_node* new_r_Confirm ( ir_node block,
ir_node irn_value,
ir_node irn_bound,
ir_relation  relation 
)

Construct a Confirm node.

Parameters
blockThe IR block the node belongs to.
irn_valuevalue
irn_boundbound
relationrelation of value to bound

Definition at line 816 of file gen_irnode.c.

References new_rd_Confirm().

ir_node* new_rd_Confirm ( dbg_info dbgi,
ir_node block,
ir_node irn_value,
ir_node irn_bound,
ir_relation  relation 
)

Construct a Confirm node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
irn_valuevalue
irn_boundbound
relationrelation of value to bound

Definition at line 799 of file gen_irnode.c.

References get_irn_irg(), get_irn_mode(), new_ir_node(), op_Confirm, optimize_node(), and verify_new_node().

Referenced by new_d_Confirm(), and new_r_Confirm().

void set_Confirm_bound ( ir_node node,
ir_node bound 
)

Sets bound input of a Confirm node.

Definition at line 848 of file gen_irnode.c.

References op_Confirm.

void set_Confirm_relation ( ir_node node,
ir_relation  relation 
)

Sets relation attribute of a Confirm node.

Definition at line 3110 of file gen_irnode.c.

void set_Confirm_value ( ir_node node,
ir_node value 
)

Sets value input of a Confirm node.

Definition at line 838 of file gen_irnode.c.

Variable Documentation

ir_op* op_Confirm

Confirm opcode.

Definition at line 1279 of file nodes.h.

Referenced by get_op_Confirm(), new_rd_Confirm(), set_Confirm_bound(), and set_typeconst_type().