3 * File name: ir/st/exc.h
4 * Purpose: Helper functions for jack exceptions.
5 * Author: Florian Liekweg
9 * Copyright: (c) 2002-2003 Universität Karlsruhe
10 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
18 Helper functions for exceptions
39 exc_invalid = 0, /* not yet computed */
40 exc_normal, /* normal CF */
42 /* must push a new exc context at entry of block: */
43 exc_region, /* region entry */
45 /* must pop current exc context at EXIT of block */
46 exc_exit, /* region exit */
48 /* must pop current exc context at entry of block */
49 exc_handler, /* handler entry */
51 exc_max /* maximum value of enum for 'bounds checking' */
56 const char *exc_to_string (exc_t);
58 bool is_handler_entry (ir_graph*, ir_node*);
59 bool is_region_entry (ir_graph*, ir_node*);
60 bool is_handler_block (ir_graph*, ir_node*);
61 bool is_cont_entry (ir_graph*, ir_node*);
63 void set_Block_exc (ir_node*, exc_t);
64 exc_t get_Block_exc (ir_node*);
66 void set_Node_exc (ir_node*, exc_t);
67 exc_t get_Node_exc (ir_node*);
69 /* handler handling @@@ ajacs specific -- not supported */
70 void set_Block_handler (ir_node*, ir_node*);
71 ir_node* get_Block_handler (ir_node*);
73 void set_Node_handler (ir_node*, ir_node*);
74 ir_node* get_Node_handler (ir_node*);
80 # endif /* def _EXC_H_ */