normalized various syntactic constructs for firm jni.
[libfirm] / ir / ir / irprog_t.h
1
2 /* $Id$ */
3
4 # ifndef _IRPROG_T_H_
5 # define _IRPROG_T_H_
6
7 #include "irprog.h"
8 #include "firm_common_t.h"
9
10 struct ir_prog {
11   firm_kind kind;
12   ir_graph  *main_irg;            /* entry point to the compiled program */
13                   /* or a list, in case we compile a library or the like? */
14   ir_graph **graphs;              /* all graphs in the ir */
15   type      *glob_type;           /* global type.  Must be a class as it can
16                                      have fields and procedures.  */
17   type     **types;               /* all types in the ir */
18   ir_graph  *const_code_irg;      /* This ir graph gives the proper environment
19                                      to allocate nodes the represent values
20                                      of constant entities. It is not meant as
21                                      a procedure.  */
22   /*struct obstack *obst;          * @@@ Should we place all types and
23                                      entities on an obstack, too? */
24
25 #ifdef DEBUG_libfirm
26   long max_node_nr;                /* to generate unique numbers for nodes. */
27 #endif
28 };
29
30 INLINE void remove_irp_type_from_list (type *typ);
31
32 #ifdef DEBUG_libfirm
33 /* Returns a new, unique number to number nodes or the like. */
34 int get_irp_new_node_nr();
35 #endif
36
37 #endif /* ifndef _IRPROG_T_H_ */