Fixed 'inline' lossage --flo
[libfirm] / ir / ir / irprog.h
index 21f8e5e..6a9a9b0 100644 (file)
@@ -1,6 +1,14 @@
-/* Copyright (C) 2000 by Universitaet Karlsruhe
-* All rights reserved.
-*/
+/*
+ * Project:     libFIRM
+ * File name:   ir/ir/irprog.h
+ * Purpose:     Entry point to the representation of a whole program.
+ * Author:      Goetz Lindenmaier
+ * Modified by:
+ * Created:     2000
+ * CVS-ID:      $Id$
+ * Copyright:   (c) 2000-2003 Universität Karlsruhe
+ * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ */
 
 /**
 * @file irprog.h
@@ -19,8 +27,6 @@
 *   - (An obstack containing global things, e.g., the above mentioned lists.)
 */
 
-/* $Id$ */
-
 # ifndef _IRPROG_H_
 # define _IRPROG_H_
 
@@ -70,6 +76,10 @@ void init_irprog(void);
    Automatically called by init_firm() through init_irprog.  */
 ir_prog *new_ir_prog (void);
 
+/** frees all memory used by irp.  Types in type list and irgs in irg
+    list must be freed by hand before. */
+void     free_ir_prog(void);
+
 /** Gets the main routine of the compiled program. */
 ir_graph *get_irp_main_irg(void);
 
@@ -80,7 +90,7 @@ void      set_irp_main_irg(ir_graph *main_irg);
 void      add_irp_irg(ir_graph *irg);
 
 /** Removes irg from the list of irgs, deallocates it and
-   shrinks the list by one. */
+    shrinks the list by one. */
 void      remove_irp_irg(ir_graph *irg);
 
 /** Returns the number of ir graphs in the irp. */
@@ -111,6 +121,10 @@ void  set_irp_type(int pos, type *typ);
 /** Returns the "global" type of the irp. */
 type *get_glob_type(void);
 
+/** File name / executable name or the like. Initially NULL! **/
+void   set_irp_prog_name (ident *name);
+ident *get_irp_prog_ident(void);
+const char  *get_irp_prog_name (void);
 
 /**
  *   Returns an irgraph that only contains constant
@@ -123,4 +137,7 @@ type *get_glob_type(void);
  */
 ir_graph *get_const_code_irg(void);
 
+void      set_irp_ip_outedges(ir_node ** ip_outedges);
+ir_node** get_irp_ip_outedges(void);
+
 #endif /* ifndef _IRPROG_H_ */