libFirm
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Load node

Loads a value from memory (heap or stack). More...

Enumerations

enum  n_Load { n_Load_mem, n_Load_ptr, n_Load_max = n_Load_ptr }
 Input numbers for Load node. More...
 
enum  pn_Load {
  pn_Load_M, pn_Load_res, pn_Load_X_regular, pn_Load_X_except,
  pn_Load_max = pn_Load_X_except
}
 Projection numbers for result of Load node (use for Proj nodes) More...
 

Functions

ir_nodenew_rd_Load (dbg_info *dbgi, ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, ir_mode *mode, ir_type *type, ir_cons_flags flags)
 Construct a Load node. More...
 
ir_nodenew_r_Load (ir_node *block, ir_node *irn_mem, ir_node *irn_ptr, ir_mode *mode, ir_type *type, ir_cons_flags flags)
 Construct a Load node. More...
 
ir_nodenew_d_Load (dbg_info *dbgi, ir_node *irn_mem, ir_node *irn_ptr, ir_mode *mode, ir_type *type, ir_cons_flags flags)
 Construct a Load node. More...
 
ir_nodenew_Load (ir_node *irn_mem, ir_node *irn_ptr, ir_mode *mode, ir_type *type, ir_cons_flags flags)
 Construct a Load node. More...
 
int is_Load (const ir_node *node)
 Test if node is a Load. More...
 
ir_nodeget_Load_mem (const ir_node *node)
 Returns mem input of a Load node. More...
 
void set_Load_mem (ir_node *node, ir_node *mem)
 Sets mem input of a Load node. More...
 
ir_nodeget_Load_ptr (const ir_node *node)
 Returns ptr input of a Load node. More...
 
void set_Load_ptr (ir_node *node, ir_node *ptr)
 Sets ptr input of a Load node. More...
 
ir_modeget_Load_mode (const ir_node *node)
 Returns mode attribute of a Load node. More...
 
void set_Load_mode (ir_node *node, ir_mode *mode)
 Sets mode attribute of a Load node. More...
 
ir_typeget_Load_type (const ir_node *node)
 Returns type attribute of a Load node. More...
 
void set_Load_type (ir_node *node, ir_type *type)
 Sets type attribute of a Load node. More...
 
ir_volatility get_Load_volatility (const ir_node *node)
 Returns volatility attribute of a Load node. More...
 
void set_Load_volatility (ir_node *node, ir_volatility volatility)
 Sets volatility attribute of a Load node. More...
 
ir_align get_Load_unaligned (const ir_node *node)
 Returns unaligned attribute of a Load node. More...
 
void set_Load_unaligned (ir_node *node, ir_align unaligned)
 Sets unaligned attribute of a Load node. More...
 
ir_opget_op_Load (void)
 Returns opcode for Load nodes. More...
 

Variables

ir_opop_Load
 Load opcode. More...
 

Detailed Description

Loads a value from memory (heap or stack).

Enumeration Type Documentation

enum n_Load

Input numbers for Load node.

Enumerator
n_Load_mem 

memory dependency

n_Load_ptr 

address to load from

n_Load_max 

Definition at line 2094 of file nodes.h.

enum pn_Load

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

Enumerator
pn_Load_M 

memory result

pn_Load_res 

result of load operation

pn_Load_X_regular 

control flow when no exception occurs

pn_Load_X_except 

control flow when exception occured

pn_Load_max 

Definition at line 2103 of file nodes.h.

Function Documentation

ir_node* get_Load_mem ( const ir_node node)

Returns mem input of a Load node.

Definition at line 1432 of file gen_irnode.c.

ir_mode* get_Load_mode ( const ir_node node)

Returns mode attribute of a Load node.

Definition at line 3229 of file gen_irnode.c.

ir_node* get_Load_ptr ( const ir_node node)

Returns ptr input of a Load node.

Definition at line 1442 of file gen_irnode.c.

ir_type* get_Load_type ( const ir_node node)

Returns type attribute of a Load node.

Definition at line 3239 of file gen_irnode.c.

ir_align get_Load_unaligned ( const ir_node node)

Returns unaligned attribute of a Load node.

Definition at line 3259 of file gen_irnode.c.

ir_volatility get_Load_volatility ( const ir_node node)

Returns volatility attribute of a Load node.

Definition at line 3249 of file gen_irnode.c.

ir_op* get_op_Load ( void  )

Returns opcode for Load nodes.

Definition at line 1452 of file gen_irnode.c.

References op_Load.

int is_Load ( const ir_node node)

Test if node is a Load.

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

Definition at line 3224 of file gen_irnode.c.

ir_node* new_d_Load ( dbg_info dbgi,
ir_node irn_mem,
ir_node irn_ptr,
ir_mode mode,
ir_type type,
ir_cons_flags  flags 
)

Construct a Load node.

Parameters
dbgiA pointer to debug information.
irn_memmem
irn_ptrptr
modemode of the value to be loaded
typeThe type of the object which is stored at ptr (need not match with mode)
flagsspecifies alignment, volatility and pin state

Definition at line 1420 of file gen_irnode.c.

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

Referenced by new_Load().

ir_node* new_Load ( ir_node irn_mem,
ir_node irn_ptr,
ir_mode mode,
ir_type type,
ir_cons_flags  flags 
)

Construct a Load node.

Parameters
irn_memmem
irn_ptrptr
modemode of the value to be loaded
typeThe type of the object which is stored at ptr (need not match with mode)
flagsspecifies alignment, volatility and pin state

Definition at line 1427 of file gen_irnode.c.

References new_d_Load().

ir_node* new_r_Load ( ir_node block,
ir_node irn_mem,
ir_node irn_ptr,
ir_mode mode,
ir_type type,
ir_cons_flags  flags 
)

Construct a Load node.

Parameters
blockThe IR block the node belongs to.
irn_memmem
irn_ptrptr
modemode of the value to be loaded
typeThe type of the object which is stored at ptr (need not match with mode)
flagsspecifies alignment, volatility and pin state

Definition at line 1415 of file gen_irnode.c.

References new_rd_Load().

ir_node* new_rd_Load ( dbg_info dbgi,
ir_node block,
ir_node irn_mem,
ir_node irn_ptr,
ir_mode mode,
ir_type type,
ir_cons_flags  flags 
)

Construct a Load node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
irn_memmem
irn_ptrptr
modemode of the value to be loaded
typeThe type of the object which is stored at ptr (need not match with mode)
flagsspecifies alignment, volatility and pin state

Definition at line 1393 of file gen_irnode.c.

References cons_floats, cons_throws_exception, cons_unaligned, cons_volatile, get_irn_irg(), mode_T, new_ir_node(), op_Load, op_pin_state_floats, op_pin_state_pinned, optimize_node(), and verify_new_node().

Referenced by new_d_Load(), and new_r_Load().

void set_Load_mem ( ir_node node,
ir_node mem 
)

Sets mem input of a Load node.

Definition at line 1437 of file gen_irnode.c.

void set_Load_mode ( ir_node node,
ir_mode mode 
)

Sets mode attribute of a Load node.

Definition at line 3234 of file gen_irnode.c.

void set_Load_ptr ( ir_node node,
ir_node ptr 
)

Sets ptr input of a Load node.

Definition at line 1447 of file gen_irnode.c.

void set_Load_type ( ir_node node,
ir_type type 
)

Sets type attribute of a Load node.

Definition at line 3244 of file gen_irnode.c.

void set_Load_unaligned ( ir_node node,
ir_align  unaligned 
)

Sets unaligned attribute of a Load node.

Definition at line 3264 of file gen_irnode.c.

void set_Load_volatility ( ir_node node,
ir_volatility  volatility 
)

Sets volatility attribute of a Load node.

Definition at line 3254 of file gen_irnode.c.

Variable Documentation

ir_op* op_Load

Load opcode.

Definition at line 2194 of file nodes.h.

Referenced by get_op_Load(), and new_rd_Load().