- removed rest of already unsupported USE_EXPLICIT_PHI_IN_STACK
[libfirm] / ir / ir / irtypes.h
index 7340890..1dd5178 100644 (file)
@@ -349,14 +349,13 @@ typedef struct _ir_def_use_edge {
 struct ir_node {
        /* ------- Basics of the representation  ------- */
        firm_kind kind;          /**< Distinguishes this node from others. */
-    unsigned node_idx;       /**< The node index of this node in its graph. */
+       unsigned node_idx;       /**< The node index of this node in its graph. */
        ir_op *op;               /**< The Opcode of this node. */
        ir_mode *mode;           /**< The Mode of this node. */
        struct ir_node **in;     /**< The array of predecessors / operands. */
        ir_visited_t visited;    /**< The visited counter for walks of the graph. */
        void *link;              /**< To attach additional information to the node, e.g.
-                                     used while construction to link Phi0 nodes and
-                                     during optimization to link to nodes that
+                                     used during optimization to link to nodes that
                                      shall replace a node. */
        /* ------- Fields for optimizations / analysis information ------- */
        ir_def_use_edge *out;    /**< array of def-use edges. */
@@ -371,6 +370,7 @@ struct ir_node {
        /* ------- For analyses -------- */
        ir_loop *loop;           /**< the loop the node is in. Access routines in irloop.h */
        struct ir_node **deps;   /**< Additional dependencies induced by state. */
+       void            *backend_info;
        irn_edges_info_t edge_info;  /**< Everlasting out edges. */
        /* ------- Opcode depending fields -------- */
        attr attr;               /**< The set of attributes of this node. Depends on opcode.
@@ -383,10 +383,11 @@ struct ir_node {
  * Edge info to put into an irg.
  */
 typedef struct _irg_edge_info_t {
-       ir_edgeset_t    edges;
-       struct obstack  edges_obst;
-       unsigned        allocated : 1;
-       unsigned        activated : 1;  /**< set if edges are activated for the graph. */
+       ir_edgeset_t     edges;          /**< A set containing all edges of the current graph. */
+       struct list_head free_edges;     /**< list of all free edges. */
+       struct obstack   edges_obst;     /**< Obstack, where edges are allocated on. */
+       unsigned         allocated : 1;  /**< Set if edges are allocated on the obstack. */
+       unsigned         activated : 1;  /**< Set if edges are activated for the graph. */
 } irg_edge_info_t;
 
 typedef irg_edge_info_t irg_edges_info_t[EDGE_KIND_LAST];
@@ -459,9 +460,6 @@ struct ir_graph {
        unsigned fp_model;                       /**< floating point model of the graph. */
 
        /* -- Fields for construction -- */
-#if USE_EXPLICIT_PHI_IN_STACK
-       struct Phi_in_stack *Phi_in_stack; /**< Needed for automatic Phi construction. */
-#endif
        int n_loc;                         /**< Number of local variables in this
                                                procedure including procedure parameters. */
        void **loc_descriptions;           /**< Storage for local variable descriptions. */
@@ -479,11 +477,11 @@ struct ir_graph {
        unsigned *caller_isbe;             /**< For callgraph analysis: raw bitset if backedge info calculated. */
        cg_callee_entry **callees;         /**< For callgraph analysis: list of callee calls */
        unsigned *callee_isbe;             /**< For callgraph analysis: raw bitset if backedge info calculated. */
+       ir_loop   *l;                            /**< For callgraph analysis. */
        int        callgraph_loop_depth;         /**< For callgraph analysis */
        int        callgraph_recursion_depth;    /**< For callgraph analysis */
        double     method_execution_frequency;   /**< For callgraph analysis */
 
-       ir_loop   *l;                            /**< For callgraph analysis. */
 
        /* -- Fields for Walking the graph -- */
        ir_visited_t visited;             /**< this flag is an identifier for
@@ -508,7 +506,7 @@ struct ir_graph {
 #endif
 
 #ifndef NDEBUG
-       ir_resources_t  reserved_resources;
+       ir_resources_t reserved_resources; /**< Bitset for tracking used local resources. */
 #endif
 };
 
@@ -564,6 +562,9 @@ struct ir_prog {
 #ifdef DEBUG_libfirm
        long max_node_nr;                    /**< to generate unique numbers for nodes. */
 #endif
+#ifndef NDEBUG
+       ir_resources_t reserved_resources;   /**< Bitset for tracking used global resources. */
+#endif
 };
 
 #endif