libFirm
Loading...
Searching...
No Matches

Enumerations

enum  n_Call { n_Call_mem , n_Call_ptr , n_Call_max = n_Call_ptr }
 Input numbers for Call node. More...
 
enum  pn_Call {
  pn_Call_M , pn_Call_T_result , pn_Call_X_regular , pn_Call_X_except ,
  pn_Call_max = pn_Call_X_except
}
 Projection numbers for result of Call node (use for Proj nodes) More...
 

Functions

ir_entityget_Call_callee (const ir_node *call)
 Convenience function: Return method that will be called by a call.
 
ir_nodenew_rd_Call (dbg_info *dbgi, ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, int arity, ir_node *const *in, ir_type *type)
 Construct a Call node.
 
ir_nodenew_r_Call (ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, int arity, ir_node *const *in, ir_type *type)
 Construct a Call node.
 
ir_nodenew_d_Call (dbg_info *dbgi, ir_node *irn_mem, ir_node *irn_ptr, int arity, ir_node *const *in, ir_type *type)
 Construct a Call node.
 
ir_nodenew_Call (ir_node *irn_mem, ir_node *irn_ptr, int arity, ir_node *const *in, ir_type *type)
 Construct a Call node.
 
int is_Call (const ir_node *node)
 Test if node is a Call.
 
ir_nodeget_Call_mem (const ir_node *node)
 Returns mem input of a Call node.
 
void set_Call_mem (ir_node *node, ir_node *mem)
 Sets mem input of a Call node.
 
ir_nodeget_Call_ptr (const ir_node *node)
 Returns ptr input of a Call node.
 
void set_Call_ptr (ir_node *node, ir_node *ptr)
 Sets ptr input of a Call node.
 
int get_Call_n_params (ir_node const *node)
 Get the number of Call params.
 
ir_nodeget_Call_param (ir_node const *node, int pos)
 Get the Call param with index pos.
 
void set_Call_param (ir_node *node, int pos, ir_node *param)
 Set the Call param with index pos.
 
ir_node ** get_Call_param_arr (ir_node *node)
 Get an array of all Call params.
 
ir_typeget_Call_type (const ir_node *node)
 Returns type attribute of a Call node.
 
void set_Call_type (ir_node *node, ir_type *type)
 Sets type attribute of a Call node.
 
ir_opget_op_Call (void)
 Returns opcode for Call nodes.
 

Variables

ir_opop_Call
 Call opcode.
 

Detailed Description

Calls other code. Control flow is transferred to ptr, additional operands are passed to the called code. Called code usually performs a return operation. The operands of this return operation are the result of the Call node.

Enumeration Type Documentation

◆ n_Call

enum n_Call

Input numbers for Call node.

Enumerator
n_Call_mem 

memory dependency

n_Call_ptr 

pointer to called code

n_Call_max 

Definition at line 1003 of file nodes.h.

◆ pn_Call

enum pn_Call

Projection numbers for result of Call node (use for Proj nodes)

Enumerator
pn_Call_M 

memory result

pn_Call_T_result 

tuple containing all results

pn_Call_X_regular 

control flow when no exception occurs

pn_Call_X_except 

control flow when exception occurred

pn_Call_max 

Definition at line 1012 of file nodes.h.

Function Documentation

◆ get_Call_callee()

ir_entity * get_Call_callee ( const ir_node * call)

Convenience function: Return method that will be called by a call.

This matches for an address at the Call ptr input, return the referenced entity if it has a method type.

◆ get_Call_mem()

ir_node * get_Call_mem ( const ir_node * node)

Returns mem input of a Call node.

◆ get_Call_n_params()

int get_Call_n_params ( ir_node const * node)

Get the number of Call params.

◆ get_Call_param()

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

Get the Call param with index pos.

◆ get_Call_param_arr()

ir_node ** get_Call_param_arr ( ir_node * node)

Get an array of all Call params.

◆ get_Call_ptr()

ir_node * get_Call_ptr ( const ir_node * node)

Returns ptr input of a Call node.

◆ get_Call_type()

ir_type * get_Call_type ( const ir_node * node)

Returns type attribute of a Call node.

◆ get_op_Call()

ir_op * get_op_Call ( void )

Returns opcode for Call nodes.

◆ is_Call()

int is_Call ( const ir_node * node)

Test if node is a Call.

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

◆ new_Call()

ir_node * new_Call ( ir_node * irn_mem,
ir_node * irn_ptr,
int arity,
ir_node *const * in,
ir_type * type )

Construct a Call node.

Parameters
irn_memmem
irn_ptrptr
aritysize of additional inputs array
inadditional inputs
typetype of the call (usually type of the called procedure)

◆ new_d_Call()

ir_node * new_d_Call ( dbg_info * dbgi,
ir_node * irn_mem,
ir_node * irn_ptr,
int arity,
ir_node *const * in,
ir_type * type )

Construct a Call node.

Parameters
dbgiA pointer to debug information.
irn_memmem
irn_ptrptr
aritysize of additional inputs array
inadditional inputs
typetype of the call (usually type of the called procedure)

◆ new_r_Call()

ir_node * new_r_Call ( ir_node * block,
ir_node * irn_mem,
ir_node * irn_ptr,
int arity,
ir_node *const * in,
ir_type * type )

Construct a Call node.

Parameters
blockThe IR block the node belongs to.
irn_memmem
irn_ptrptr
aritysize of additional inputs array
inadditional inputs
typetype of the call (usually type of the called procedure)

◆ new_rd_Call()

ir_node * new_rd_Call ( dbg_info * dbgi,
ir_node * block,
ir_node * irn_mem,
ir_node * irn_ptr,
int arity,
ir_node *const * in,
ir_type * type )

Construct a Call node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
irn_memmem
irn_ptrptr
aritysize of additional inputs array
inadditional inputs
typetype of the call (usually type of the called procedure)

◆ set_Call_mem()

void set_Call_mem ( ir_node * node,
ir_node * mem )

Sets mem input of a Call node.

◆ set_Call_param()

void set_Call_param ( ir_node * node,
int pos,
ir_node * param )

Set the Call param with index pos.

◆ set_Call_ptr()

void set_Call_ptr ( ir_node * node,
ir_node * ptr )

Sets ptr input of a Call node.

◆ set_Call_type()

void set_Call_type ( ir_node * node,
ir_type * type )

Sets type attribute of a Call node.

Variable Documentation

◆ op_Call

ir_op* op_Call

Call opcode.

Definition at line 1096 of file nodes.h.