3 * File name: ir/ir/irprog_t.h
4 * Purpose: Entry point to the representation of a whole program 0-- private header.
5 * Author: Goetz Lindenmaier
9 * Copyright: (c) 2000-2003 Universität Karlsruhe
10 * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE.
27 #include "firm_common_t.h"
33 ir_graph *main_irg; /**< entry point to the compiled program
34 @@@ or a list, in case we compile a library or the like? */
35 ir_graph **graphs; /**< all graphs in the ir */
36 type *glob_type; /**< global type. Must be a class as it can
37 have fields and procedures. */
38 type **types; /**< all types in the ir */
39 ir_graph *const_code_irg; /**< This ir graph gives the proper environment
40 to allocate nodes the represent values
41 of constant entities. It is not meant as
44 irg_outs_state outs_state; /**< Out edges. */
45 ir_node **ip_outedges; /**< Huge Array that contains all out edges
46 in interprocedural view. */
47 ip_view_state ip_view; /**< State of interprocedural view. */
49 /*struct obstack *obst; * @@@ Should we place all types and
50 entities on an obstack, too? */
53 long max_node_nr; /**< to generate unique numbers for nodes. */
57 INLINE void remove_irp_type_from_list (type *typ);
60 /** Returns a new, unique number to number nodes or the like. */
61 int get_irp_new_node_nr(void);
64 #endif /* ifndef _IRPROG_T_H_ */