libFirm
Raise node

Raises an exception. More...

Enumerations

enum  n_Raise { n_Raise_mem, n_Raise_exo_ptr, n_Raise_max = n_Raise_exo_ptr }
 Input numbers for Raise node. More...
 
enum  pn_Raise { pn_Raise_M, pn_Raise_X, pn_Raise_max = pn_Raise_X }
 Projection numbers for result of Raise node (use for Proj nodes) More...
 

Functions

ir_nodenew_rd_Raise (dbg_info *dbgi, ir_node *block, ir_node *irn_mem, ir_node *irn_exo_ptr)
 Construct a Raise node. More...
 
ir_nodenew_r_Raise (ir_node *block, ir_node *irn_mem, ir_node *irn_exo_ptr)
 Construct a Raise node. More...
 
ir_nodenew_d_Raise (dbg_info *dbgi, ir_node *irn_mem, ir_node *irn_exo_ptr)
 Construct a Raise node. More...
 
ir_nodenew_Raise (ir_node *irn_mem, ir_node *irn_exo_ptr)
 Construct a Raise node. More...
 
int is_Raise (const ir_node *node)
 Test if node is a Raise. More...
 
ir_nodeget_Raise_mem (const ir_node *node)
 Returns mem input of a Raise node. More...
 
void set_Raise_mem (ir_node *node, ir_node *mem)
 Sets mem input of a Raise node. More...
 
ir_nodeget_Raise_exo_ptr (const ir_node *node)
 Returns exo_ptr input of a Raise node. More...
 
void set_Raise_exo_ptr (ir_node *node, ir_node *exo_ptr)
 Sets exo_ptr input of a Raise node. More...
 
ir_opget_op_Raise (void)
 Returns opcode for Raise nodes. More...
 

Variables

ir_opop_Raise
 Raise opcode. More...
 

Detailed Description

Raises an exception.

Unconditional change of control flow. Writes an explicit Except variable to memory to pass it to the exception handler. Must be lowered to a Call to a runtime check function.

Enumeration Type Documentation

enum n_Raise

Input numbers for Raise node.

Enumerator
n_Raise_mem 

memory dependency

n_Raise_exo_ptr 

pointer to exception object to be thrown

n_Raise_max 

Definition at line 3152 of file nodes.h.

enum pn_Raise

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

Enumerator
pn_Raise_M 

memory result

pn_Raise_X 

control flow to exception handler

pn_Raise_max 

Definition at line 3161 of file nodes.h.

Function Documentation

ir_op* get_op_Raise ( void  )

Returns opcode for Raise nodes.

Definition at line 2192 of file gen_irnode.c.

References op_Raise.

ir_node* get_Raise_exo_ptr ( const ir_node node)

Returns exo_ptr input of a Raise node.

Definition at line 2182 of file gen_irnode.c.

ir_node* get_Raise_mem ( const ir_node node)

Returns mem input of a Raise node.

Definition at line 2172 of file gen_irnode.c.

int is_Raise ( const ir_node node)

Test if node is a Raise.

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

Definition at line 3385 of file gen_irnode.c.

ir_node* new_d_Raise ( dbg_info dbgi,
ir_node irn_mem,
ir_node irn_exo_ptr 
)

Construct a Raise node.

Parameters
dbgiA pointer to debug information.
irn_memmem
irn_exo_ptrexo_ptr

Definition at line 2160 of file gen_irnode.c.

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

Referenced by new_Raise().

ir_node* new_r_Raise ( ir_node block,
ir_node irn_mem,
ir_node irn_exo_ptr 
)

Construct a Raise node.

Parameters
blockThe IR block the node belongs to.
irn_memmem
irn_exo_ptrexo_ptr

Definition at line 2155 of file gen_irnode.c.

References new_rd_Raise().

ir_node* new_Raise ( ir_node irn_mem,
ir_node irn_exo_ptr 
)

Construct a Raise node.

Parameters
irn_memmem
irn_exo_ptrexo_ptr

Definition at line 2167 of file gen_irnode.c.

References new_d_Raise().

ir_node* new_rd_Raise ( dbg_info dbgi,
ir_node block,
ir_node irn_mem,
ir_node irn_exo_ptr 
)

Construct a Raise node.

Parameters
dbgiA pointer to debug information.
blockThe IR block the node belongs to.
irn_memmem
irn_exo_ptrexo_ptr

Definition at line 2139 of file gen_irnode.c.

References get_irn_irg(), mode_T, new_ir_node(), op_Raise, optimize_node(), and verify_new_node().

Referenced by new_d_Raise(), and new_r_Raise().

void set_Raise_exo_ptr ( ir_node node,
ir_node exo_ptr 
)

Sets exo_ptr input of a Raise node.

Definition at line 2187 of file gen_irnode.c.

References op_Raise.

void set_Raise_mem ( ir_node node,
ir_node mem 
)

Sets mem input of a Raise node.

Definition at line 2177 of file gen_irnode.c.

Variable Documentation

ir_op* op_Raise

Raise opcode.

Definition at line 3218 of file nodes.h.

Referenced by get_op_Raise(), new_rd_Raise(), set_Raise_exo_ptr(), and set_typeconst_type().