libFirm

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 2079 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 occurred

pn_Load_max 

Definition at line 2088 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 1433 of file gen_irnode.c.

ir_mode* get_Load_mode ( const ir_node node)

Returns mode attribute of a Load node.

Definition at line 3230 of file gen_irnode.c.

ir_node* get_Load_ptr ( const ir_node node)

Returns ptr input of a Load node.

Definition at line 1443 of file gen_irnode.c.

ir_type* get_Load_type ( const ir_node node)

Returns type attribute of a Load node.

Definition at line 3240 of file gen_irnode.c.

ir_align get_Load_unaligned ( const ir_node node)

Returns unaligned attribute of a Load node.

Definition at line 3260 of file gen_irnode.c.

ir_volatility get_Load_volatility ( const ir_node node)

Returns volatility attribute of a Load node.

Definition at line 3250 of file gen_irnode.c.

ir_op* get_op_Load ( void  )

Returns opcode for Load nodes.

Definition at line 1453 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 3225 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 1421 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 1428 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 1416 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 1394 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 1438 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 3235 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 1448 of file gen_irnode.c.

References op_Load.

void set_Load_type ( ir_node node,
ir_type type 
)

Sets type attribute of a Load node.

Definition at line 3245 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 3265 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 3255 of file gen_irnode.c.

Variable Documentation

ir_op* op_Load

Load opcode.

Definition at line 2179 of file nodes.h.

Referenced by get_op_Load(), new_rd_Load(), set_Load_ptr(), and set_typeconst_type().