BugFix: equivalent_node_Bound() was too greedy, reduced to a safe minimum (now mostly...
[libfirm] / ir / ir / irtypes.h
index 22ccfa5..df8915b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
 #include "irmemory.h"
 #include "callgraph.h"
 #include "field_temperature.h"
+#include "irphases_t.h"
 
 #include "pset.h"
 #include "set.h"
 #include "list.h"
 
+struct ir_phase;
+
 /** The type of an ir_op. */
 struct ir_op {
        unsigned code;          /**< The unique opcode of the op. */
        ident *name;            /**< The name of the op. */
        size_t attr_size;       /**< Space needed in memory for private attributes. */
-       op_pin_state op_pin_state_pinned; /**< How to deal with the node in CSE, PRE. */
+       op_pin_state pin_state; /**< How to deal with the node in CSE, PRE. */
        op_arity opar;          /**< The arity of operator. */
        int op_index;           /**< The index of the first data operand, 0 for most cases, 1 for Div etc. */
        unsigned flags;         /**< Flags describing the behavior of the ir_op, a bitmasks of irop_flags. */
@@ -90,7 +93,7 @@ struct ir_mode {
                                           int, float, reference ...
                                           (see irmode.h) */
        mode_arithmetic   arithmetic;    /**< different arithmetic operations possible with a mode */
-       int               size;          /**< size of the mode in Bits. */
+       unsigned          size;          /**< size of the mode in Bits. */
        unsigned          sign:1;        /**< signedness of this mode */
        unsigned int      modulo_shift;  /**< number of bits a values of this mode will be shifted */
        unsigned          vector_elem;   /**< if this is not equal 1, this is a vector mode with
@@ -189,13 +192,13 @@ typedef struct {
 typedef struct {
        except_attr    exc;           /**< the exception attribute. MUST be the first one. */
        ir_type *type;                /**< Type of the allocated object.  */
-       where_alloc where;            /**< stack, heap or other managed part of memory */
+       ir_where_alloc where;         /**< stack, heap or other managed part of memory */
 } alloc_attr;
 
 /** Free attributes. */
 typedef struct {
        ir_type *type;                /**< Type of the allocated object.  */
-       where_alloc where;            /**< stack, heap or other managed part of memory */
+       ir_where_alloc where;         /**< stack, heap or other managed part of memory */
 } free_attr;
 
 /** InstOf attributes. */
@@ -479,6 +482,7 @@ struct ir_graph {
        ir_node **idx_irn_map;             /**< Array mapping node indexes to nodes. */
 
        int index;                         /**< a unique number for each graph */
+       ir_phase *phases[PHASE_LAST];      /**< Phase information. */
 #ifdef DEBUG_libfirm
        int   n_outs;                      /**< Size wasted for outs */
        long graph_nr;                     /**< a unique graph number for each
@@ -548,5 +552,4 @@ struct ir_prog {
 #endif
 };
 
-
 #endif