libFirm

The Sync operation unifies several partial memory blocks. More...

Functions

void add_Sync_pred (ir_node *node, ir_node *pred)
 Adds pred to predecessor list of Sync node node. More...
 
void remove_Sync_n (ir_node *n, int i)
 Removes predecessor i from Sync n. More...
 
ir_nodenew_rd_Sync (dbg_info *dbgi, ir_node *block, int arity, ir_node *const *in)
 Construct a Sync node. More...
 
ir_nodenew_r_Sync (ir_node *block, int arity, ir_node *const *in)
 Construct a Sync node. More...
 
ir_nodenew_d_Sync (dbg_info *dbgi, int arity, ir_node *const *in)
 Construct a Sync node. More...
 
ir_nodenew_Sync (int arity, ir_node *const *in)
 Construct a Sync node. More...
 
int is_Sync (const ir_node *node)
 Test if node is a Sync. More...
 
int get_Sync_n_preds (ir_node const *node)
 Get the number of Sync preds. More...
 
ir_nodeget_Sync_pred (ir_node const *node, int pos)
 Get the Sync pred with index pos. More...
 
void set_Sync_pred (ir_node *node, int pos, ir_node *pred)
 Set the Sync pred with index pos. More...
 
ir_node ** get_Sync_pred_arr (ir_node *node)
 Get an array of all Sync preds. More...
 
ir_opget_op_Sync (void)
 Returns opcode for Sync nodes. More...
 

Variables

ir_opop_Sync
 Sync opcode. More...
 

Detailed Description

The Sync operation unifies several partial memory blocks.

These blocks have to be pairwise disjunct or the values in common locations have to be identical. This operation allows to specify all operations that eventually need several partial memory blocks as input with a single entrance by unifying the memories with a preceding Sync operation.

Function Documentation

void add_Sync_pred ( ir_node node,
ir_node pred 
)

Adds pred to predecessor list of Sync node node.

ir_op* get_op_Sync ( void  )

Returns opcode for Sync nodes.

Definition at line 2803 of file gen_irnode.c.

References op_Sync.

int get_Sync_n_preds ( ir_node const *  node)

Get the number of Sync preds.

Definition at line 2783 of file gen_irnode.c.

ir_node* get_Sync_pred ( ir_node const *  node,
int  pos 
)

Get the Sync pred with index pos.

Definition at line 2788 of file gen_irnode.c.

ir_node** get_Sync_pred_arr ( ir_node node)

Get an array of all Sync preds.

Definition at line 2798 of file gen_irnode.c.

References op_Sync.

int is_Sync ( const ir_node node)

Test if node is a Sync.

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

Definition at line 3510 of file gen_irnode.c.

ir_node* new_d_Sync ( dbg_info dbgi,
int  arity,
ir_node *const *  in 
)

Construct a Sync node.

Parameters
dbgiA pointer to debug information.
aritysize of additional inputs array
inadditional inputs

Definition at line 2771 of file gen_irnode.c.

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

Referenced by new_Sync().

ir_node* new_r_Sync ( ir_node block,
int  arity,
ir_node *const *  in 
)

Construct a Sync node.

Parameters
blockThe IR block the node belongs to.
aritysize of additional inputs array
inadditional inputs

Definition at line 2766 of file gen_irnode.c.

References new_rd_Sync().

ir_node* new_rd_Sync ( dbg_info dbgi,
ir_node block,
int  arity,
ir_node *const *  in 
)

Construct a Sync node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
aritysize of additional inputs array
inadditional inputs

Definition at line 2752 of file gen_irnode.c.

References get_irn_irg(), mode_M, new_ir_node(), op_Sync, optimize_node(), and verify_new_node().

Referenced by new_d_Sync(), and new_r_Sync().

ir_node* new_Sync ( int  arity,
ir_node *const *  in 
)

Construct a Sync node.

Parameters
aritysize of additional inputs array
inadditional inputs

Definition at line 2778 of file gen_irnode.c.

References new_d_Sync().

void remove_Sync_n ( ir_node n,
int  i 
)

Removes predecessor i from Sync n.

void set_Sync_pred ( ir_node node,
int  pos,
ir_node pred 
)

Set the Sync pred with index pos.

Definition at line 2793 of file gen_irnode.c.

Variable Documentation

ir_op* op_Sync

Sync opcode.

Definition at line 4095 of file nodes.h.

Referenced by get_op_Sync(), get_Sync_pred_arr(), new_rd_Sync(), and set_typeconst_type().