libFirm
Anchor node

Utility node used to "hold" nodes in a graph that might possibly not be reachable by other means or which should be reachable immediately without searching through the graph. More...

Enumerations

enum  n_Anchor {
  n_Anchor_end_block, n_Anchor_start_block, n_Anchor_end, n_Anchor_start,
  n_Anchor_frame, n_Anchor_initial_mem, n_Anchor_args, n_Anchor_no_mem,
  n_Anchor_max = n_Anchor_no_mem
}
 Input numbers for Anchor node. More...
 

Functions

int is_Anchor (const ir_node *node)
 Test if node is a Anchor. More...
 
ir_nodeget_Anchor_end_block (const ir_node *node)
 Returns end_block input of an Anchor node. More...
 
void set_Anchor_end_block (ir_node *node, ir_node *end_block)
 Sets end_block input of an Anchor node. More...
 
ir_nodeget_Anchor_start_block (const ir_node *node)
 Returns start_block input of an Anchor node. More...
 
void set_Anchor_start_block (ir_node *node, ir_node *start_block)
 Sets start_block input of an Anchor node. More...
 
ir_nodeget_Anchor_end (const ir_node *node)
 Returns end input of an Anchor node. More...
 
void set_Anchor_end (ir_node *node, ir_node *end)
 Sets end input of an Anchor node. More...
 
ir_nodeget_Anchor_start (const ir_node *node)
 Returns start input of an Anchor node. More...
 
void set_Anchor_start (ir_node *node, ir_node *start)
 Sets start input of an Anchor node. More...
 
ir_nodeget_Anchor_frame (const ir_node *node)
 Returns frame input of an Anchor node. More...
 
void set_Anchor_frame (ir_node *node, ir_node *frame)
 Sets frame input of an Anchor node. More...
 
ir_nodeget_Anchor_initial_mem (const ir_node *node)
 Returns initial_mem input of an Anchor node. More...
 
void set_Anchor_initial_mem (ir_node *node, ir_node *initial_mem)
 Sets initial_mem input of an Anchor node. More...
 
ir_nodeget_Anchor_args (const ir_node *node)
 Returns args input of an Anchor node. More...
 
void set_Anchor_args (ir_node *node, ir_node *args)
 Sets args input of an Anchor node. More...
 
ir_nodeget_Anchor_no_mem (const ir_node *node)
 Returns no_mem input of an Anchor node. More...
 
void set_Anchor_no_mem (ir_node *node, ir_node *no_mem)
 Sets no_mem input of an Anchor node. More...
 
ir_opget_op_Anchor (void)
 Returns opcode for Anchor nodes. More...
 

Variables

ir_opop_Anchor
 Anchor opcode. More...
 

Detailed Description

Utility node used to "hold" nodes in a graph that might possibly not be reachable by other means or which should be reachable immediately without searching through the graph.

Each firm-graph contains exactly one anchor node whose address is always known. All other well-known graph-nodes like Start, End, NoMem, ... are found by looking at the respective Anchor operand.

Enumeration Type Documentation

enum n_Anchor

Input numbers for Anchor node.

Enumerator
n_Anchor_end_block 

block the end node belongs to

n_Anchor_start_block 

block the start node belongs to

n_Anchor_end 

end node of this ir_graph

n_Anchor_start 

start node of this ir_graph

n_Anchor_frame 

frame of this ir_graph

n_Anchor_initial_mem 

initial memory of this ir_graph

n_Anchor_args 

argument proj of the start node

n_Anchor_no_mem 

the only NoMem node of this ir_graph

n_Anchor_max 

Definition at line 467 of file nodes.h.

Function Documentation

ir_node* get_Anchor_args ( const ir_node node)

Returns args input of an Anchor node.

Definition at line 302 of file gen_irnode.c.

ir_node* get_Anchor_end ( const ir_node node)

Returns end input of an Anchor node.

Definition at line 262 of file gen_irnode.c.

ir_node* get_Anchor_end_block ( const ir_node node)

Returns end_block input of an Anchor node.

Definition at line 242 of file gen_irnode.c.

ir_node* get_Anchor_frame ( const ir_node node)

Returns frame input of an Anchor node.

Definition at line 282 of file gen_irnode.c.

ir_node* get_Anchor_initial_mem ( const ir_node node)

Returns initial_mem input of an Anchor node.

Definition at line 292 of file gen_irnode.c.

ir_node* get_Anchor_no_mem ( const ir_node node)

Returns no_mem input of an Anchor node.

Definition at line 312 of file gen_irnode.c.

ir_node* get_Anchor_start ( const ir_node node)

Returns start input of an Anchor node.

Definition at line 272 of file gen_irnode.c.

ir_node* get_Anchor_start_block ( const ir_node node)

Returns start_block input of an Anchor node.

Definition at line 252 of file gen_irnode.c.

ir_op* get_op_Anchor ( void  )

Returns opcode for Anchor nodes.

Definition at line 322 of file gen_irnode.c.

References op_Anchor.

int is_Anchor ( const ir_node node)

Test if node is a Anchor.

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

Definition at line 2995 of file gen_irnode.c.

void set_Anchor_args ( ir_node node,
ir_node args 
)

Sets args input of an Anchor node.

Definition at line 307 of file gen_irnode.c.

void set_Anchor_end ( ir_node node,
ir_node end 
)

Sets end input of an Anchor node.

Definition at line 267 of file gen_irnode.c.

void set_Anchor_end_block ( ir_node node,
ir_node end_block 
)

Sets end_block input of an Anchor node.

Definition at line 247 of file gen_irnode.c.

void set_Anchor_frame ( ir_node node,
ir_node frame 
)

Sets frame input of an Anchor node.

Definition at line 287 of file gen_irnode.c.

void set_Anchor_initial_mem ( ir_node node,
ir_node initial_mem 
)

Sets initial_mem input of an Anchor node.

Definition at line 297 of file gen_irnode.c.

void set_Anchor_no_mem ( ir_node node,
ir_node no_mem 
)

Sets no_mem input of an Anchor node.

Definition at line 317 of file gen_irnode.c.

References op_Anchor.

void set_Anchor_start ( ir_node node,
ir_node start 
)

Sets start input of an Anchor node.

Definition at line 277 of file gen_irnode.c.

void set_Anchor_start_block ( ir_node node,
ir_node start_block 
)

Sets start_block input of an Anchor node.

Definition at line 257 of file gen_irnode.c.

Variable Documentation

ir_op* op_Anchor

Anchor opcode.

Definition at line 519 of file nodes.h.

Referenced by get_op_Anchor(), set_Anchor_no_mem(), and set_typeconst_type().