used new verify_node operation
[libfirm] / ir / ir / irgraph_t.h
index f6ddaf8..326eef6 100644 (file)
 
 #include "obst.h"
 #include "pset.h"
+#include "set.h"
 #include "type_t.h"
 
 #define FRAME_TP_SUFFIX "frame_tp"
 
+/**
+ * Edge info to put into an irg.
+ */
+typedef struct _irg_edge_info_t {
+       set *edges;
+       unsigned activated : 1;
+} irg_edge_info_t;
+
+
 /** ir_graph holds all information for a procedure */
 struct ir_graph {
   firm_kind         kind;            /**<  always set to k_ir_graph*/
@@ -58,7 +68,7 @@ struct ir_graph {
                     globals as well as global procedures. */
   struct ir_node *initial_mem;   /**< initial memory of this graph */
   struct ir_node *args;          /**< methods arguments */
-  struct ir_node **proj_args;          /**< projs off the methods arguments */
+  struct ir_node **proj_args;    /**< projs of the methods arguments */
   struct ir_node *bad;           /**< bad node of this ir_graph, the one and
                     only in this graph */
   struct ir_node *no_mem;        /**< NoMem node of this ir_graph, the one and
@@ -74,7 +84,7 @@ struct ir_graph {
   op_pin_state op_pin_state_pinned;  /**< Flag for status of nodes */
   irg_outs_state outs_state;         /**< Out edges. */
   irg_dom_state dom_state;           /**< Dominator information */
-  irg_typeinfo_state typeinfo_state;       /**< Validity of type information */
+  ir_typeinfo_state typeinfo_state;        /**< Validity of type information */
   irg_callee_info_state callee_info_state; /**< Validity of callee information */
   irg_inline_property inline_property;     /**< How to handle inlineing. */
   irg_loopinfo_state loopinfo_state;       /**< state of loop information */
@@ -84,7 +94,8 @@ struct ir_graph {
   struct Phi_in_stack *Phi_in_stack; /**< needed for automatic Phi construction */
 #endif
   int n_loc;                         /**< number of local variable in this
-                    procedure including procedure parameters. */
+                                          procedure including procedure parameters. */
+  void **loc_descriptions;           /**< storage for local variable desriptions */
 
   /* -- Fields for optimizations / analysis information -- */
   pset *value_table;                 /**< hash table for global value numbering (cse)
@@ -118,6 +129,10 @@ struct ir_graph {
   int graph_nr;             /**< a unique graph number for each graph to make output
                    readable. */
 #endif
+
+#if FIRM_EDGES_INPLACE
+  irg_edge_info_t edge_info;  /**< edge info for automatic outs */
+#endif
 };
 
 /**