1 /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
2 ** All rights reserved.
4 ** Authors: Martin Trapp, Christian Schaefer
6 ** irgraph.h: ir graph construction
10 # define _IRGRAPH_T_H_
15 /* ir_graph holds all information for a procedure */
17 struct entity *ent; /* The entity of this procedure, i.e.,
18 the type of the procedure and the
19 class it belongs to. */
20 struct ir_node *start_block; /* block the start node will belong to */
21 struct ir_node *start; /* start node of this ir_graph */
22 struct ir_node *end_block; /* block the end node will belong to */
23 struct ir_node *end; /* end node of this ir_graph */
24 struct ir_node *cstore; /* constant store -- no more needed!! */
25 struct ir_node *frame; /* method's frame */
26 struct ir_node *globals; /* pointer to the data segment containing all
27 globals as well as global procedures. */
28 struct ir_node *args; /* methods arguments */
29 struct ir_node *bad; /* bad node of this ir_graph, the one and
31 struct obstack *obst; /* obstack where all of the ir_nodes live */
32 #if USE_EXPICIT_PHI_IN_STACK
33 struct Phi_in_stack *Phi_in_stack; /* needed for automatic Phi construction */
35 struct ir_node *current_block; /* block for newly gen_*()-erated
37 int params; /* number of local variable in this
38 procedure; should be n_loc or so,
39 params is ambiguous. */
40 pset *value_table; /* value table for global value numbering
41 for optimizing use in iropt.c */
42 unsigned long visited; /* this flag is an identifier for
43 ir walk. it will be incremented,
44 every time, someone walk through
46 unsigned long block_visited; /* same as visited, for a
49 # endif /* _IRGRAPH_T_H_ */