added flags for ip outs state
authorGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Wed, 19 May 2004 08:36:28 +0000 (08:36 +0000)
committerGötz Lindenmaier <goetz@ipd.info.uni-karlsruhe.de>
Wed, 19 May 2004 08:36:28 +0000 (08:36 +0000)
[r2920]

ir/ir/irprog.c
ir/ir/irprog.h
ir/ir/irprog_t.h

index e790627..797fd22 100644 (file)
@@ -72,6 +72,8 @@ ir_prog *new_ir_prog (void) {
 
   res->const_code_irg = new_const_code_irg();
 
 
   res->const_code_irg = new_const_code_irg();
 
+  res->outs_state = no_outs;
+  res->ip_outedges = NULL;
 
   return res;
 }
 
   return res;
 }
@@ -205,6 +207,12 @@ ir_graph *get_const_code_irg(void)
   return irp->const_code_irg;
 }
 
   return irp->const_code_irg;
 }
 
+irg_outs_state get_irp_ip_outs_state() {
+  return irp->outs_state;
+}
+void set_irp_ip_outs_inconsistent() {
+  irp->outs_state = outs_inconsistent;
+}
 void      set_irp_ip_outedges(ir_node ** ip_outedges)
 {
   irp -> ip_outedges = ip_outedges;
 void      set_irp_ip_outedges(ir_node ** ip_outedges)
 {
   irp -> ip_outedges = ip_outedges;
index 6a9a9b0..7692d84 100644 (file)
@@ -137,6 +137,8 @@ const char  *get_irp_prog_name (void);
  */
 ir_graph *get_const_code_irg(void);
 
  */
 ir_graph *get_const_code_irg(void);
 
+irg_outs_state get_irp_ip_outs_state(void);
+void set_irp_ip_outs_inconsistent(void);
 void      set_irp_ip_outedges(ir_node ** ip_outedges);
 ir_node** get_irp_ip_outedges(void);
 
 void      set_irp_ip_outedges(ir_node ** ip_outedges);
 ir_node** get_irp_ip_outedges(void);
 
index 2a34ba0..49c7b34 100644 (file)
@@ -22,6 +22,7 @@
 #endif
 
 #include "irprog.h"
 #endif
 
 #include "irprog.h"
+#include "irgraph.h"
 #include "firm_common_t.h"
 
 
 #include "firm_common_t.h"
 
 
@@ -29,7 +30,7 @@
 struct ir_prog {
   firm_kind kind;
   ir_graph  *main_irg;            /**< entry point to the compiled program
 struct ir_prog {
   firm_kind kind;
   ir_graph  *main_irg;            /**< entry point to the compiled program
-                     or a list, in case we compile a library or the like? */
+                                    @@@ or a list, in case we compile a library or the like? */
   ir_graph **graphs;              /**< all graphs in the ir */
   type      *glob_type;           /**< global type.  Must be a class as it can
                                     have fields and procedures.  */
   ir_graph **graphs;              /**< all graphs in the ir */
   type      *glob_type;           /**< global type.  Must be a class as it can
                                     have fields and procedures.  */
@@ -39,6 +40,7 @@ struct ir_prog {
                                     of constant entities. It is not meant as
                                     a procedure.  */
 
                                     of constant entities. It is not meant as
                                     a procedure.  */
 
+  irg_outs_state outs_state;     /**< Out edges. */
   ir_node **ip_outedges;         /**< Huge Array that contains all out edges
                                    in interprocedural view. */
   ident     *name;
   ir_node **ip_outedges;         /**< Huge Array that contains all out edges
                                    in interprocedural view. */
   ident     *name;