Fixed 'inline' lossage --flo
[libfirm] / ir / ir / irprog.c
index b0c2b63..e790627 100644 (file)
@@ -76,7 +76,19 @@ ir_prog *new_ir_prog (void) {
   return res;
 }
 
-/** Functions to access the fields of 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() {
+  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->types);
+
+  irp->kind = k_BAD;
+  irp->const_code_irg = NULL;
+}
+
+/*- Functions to access the fields of ir_prog -*/
 
 
 /* Access the main routine of the compiled program. */
@@ -176,7 +188,7 @@ int get_irp_new_node_nr() {
 }
 #endif
 
-/** File name / executable name or the like **/
+/*- File name / executable name or the like -*/
 void   set_irp_prog_name(ident *name) {
   irp->name = name;
 }
@@ -192,3 +204,13 @@ ir_graph *get_const_code_irg(void)
 {
   return irp->const_code_irg;
 }
+
+void      set_irp_ip_outedges(ir_node ** ip_outedges)
+{
+  irp -> ip_outedges = ip_outedges;
+}
+
+ir_node** get_irp_ip_outedges(void)
+{
+  return(irp -> ip_outedges);
+}