used new verify_node operation
[libfirm] / ir / ir / irgraph_t.h
index 6500ac7..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 */
@@ -119,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
 };
 
 /**