X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firprog.h;h=ea3fc01389efcb99edf01e34bb4297f06ed11796;hb=5f8ddee6b08c8040c0a304a347d65045c1141d52;hp=72fb75b460f6b2aa5088cc436fb4fe7d9fd8b2f5;hpb=ccf3c09d602450ce55490af2edb4587764783527;p=libfirm diff --git a/ir/ir/irprog.h b/ir/ir/irprog.h index 72fb75b46..ea3fc0138 100644 --- a/ir/ir/irprog.h +++ b/ir/ir/irprog.h @@ -20,24 +20,12 @@ # include "irnode.h" # include "type.h" -/*# include "obst.h"*/ -typedef struct ir_prog { - firm_kind kind; - ir_graph **graphs; /* all graphs in the ir */ - type **types; /* all types in the ir */ - type_class *glob_type; /* global type. Class as it can have - fields and procedures. Does this work? - Better name??? @@@ */ - /*struct obstack *obst; * @@@ Should we place all types and entities themselves - on an obstack, too? */ -#ifdef DEBUG_libfirm - long max_node_nr; -#endif -} ir_prog; + +typedef struct ir_prog ir_prog; /* A variable from where everything in the ir can be accessed. */ -ir_prog *irp; +extern ir_prog *irp; /* initializes ir_prog. Calles the constructor for an ir_prog. */ void init_irprog(void); @@ -46,14 +34,21 @@ void init_irprog(void); Automatically called by init_firm through init_irprog. */ ir_prog *new_ir_prog (void); +/* Access the main routine of the compiled program. */ +ir_graph *get_irp_main_irg(); +void set_irp_main_irg(ir_graph *main_irg); + /* Adds irg to the list of ir graphs in irp. */ void add_irp_irg(ir_graph *irg); -/* get_irp_n_irgs() * GL Chris: immer globale irp benutzen! * - get_irp_irg(int pos) - set_irp_irg() und das gleiche fuer type */ +int get_irp_n_irgs(); +ir_graph *get_irp_irg(int pos); +void set_irp_irg(int pos, ir_graph *irg); /* Adds type to the list of types in irp. */ -void add_irp_type(type *typ); +void add_irp_type(type *typ); +int get_irp_n_types(); +type *get_irp_type(int pos); +void set_irp_type(int pos, type *typ); /** Functions to access the fields of ir_prog **/ type_class *get_glob_type(void);