+/* Completes ir_prog. */
+void init_irprog_2(void) {
+ complete_ir_prog(irp);
+}
+
+/* Create a new ir prog. Automatically called by init_firm through
+ init_irprog. */
+ir_prog *new_ir_prog (void) {
+ return complete_ir_prog(new_incomplete_ir_prog());
+}
+
+/* frees all memory used by irp. Types in type list, irgs in irg
+ list and entities in global type must be freed by hand before. */
+void free_ir_prog(void) {
+ if (irp->glob_type)
+ free_type(irp->glob_type);
+
+ /* @@@ * free_ir_graph(irp->const_code_irg); * ?? End has no in?? */
+ DEL_ARR_F(irp->graphs);
+ DEL_ARR_F(irp->pseudo_graphs);
+ DEL_ARR_F(irp->types);
+ DEL_ARR_F(irp->modes);
+
+ irp->name = NULL;
+ irp->const_code_irg = NULL;
+ irp->kind = k_BAD;
+}
+
+/*- Functions to access the fields of ir_prog -*/