Set the outs to inconsistent at the end of transform_irg().
[libfirm] / ir / ir / irtypes.h
index 361800a..cfb741d 100644 (file)
@@ -53,6 +53,7 @@ struct ir_op {
        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. */
        void *tag;              /**< Some custom pointer the op's creator can attach stuff to. */
+       void *attr;             /**< custom pointer where op's creator can attach attribute stuff to. */
 
        ir_op_ops ops;          /**< The operations of the this op. */
 };
@@ -102,6 +103,7 @@ struct ir_mode {
        tarval            *null;        /**< the value 0 */
        tarval            *one;         /**< the value 1 */
        tarval            *minus_one;   /**< the value -1 */
+       tarval            *all_one;     /**< the value ~0 */
        ir_mode           *eq_signed;   /**< For pointer modes, the equivalent signed integer one. */
        ir_mode           *eq_unsigned; /**< For pointer modes, the equivalent unsigned integer one. */
        void              *link;        /**< To store some intermediate information */
@@ -226,13 +228,15 @@ typedef struct {
 typedef struct {
        except_attr   exc;            /**< The exception attribute. MUST be the first one. */
        ir_mode       *load_mode;     /**< The mode of this Load operation. */
-       ir_volatility volatility;     /**< The volatility of a Load/Store operation. */
+       unsigned      volatility:1;   /**< The volatility of this Load operation. */
+       unsigned      aligned:1;      /**< The align attribute of this Load operation. */
 } load_attr;
 
 /** Store attributes. */
 typedef struct {
        except_attr   exc;            /**< the exception attribute. MUST be the first one. */
-       ir_volatility volatility;     /**< the volatility of a Store operation */
+       unsigned      volatility:1;   /**< The volatility of this Store operation. */
+       unsigned      aligned:1;      /**< The align attribute of this Store operation. */
 } store_attr;
 
 typedef struct {
@@ -342,7 +346,8 @@ struct ir_node {
        struct dbg_info *dbi;    /**< A pointer to information for debug support. */
        /* ------- For debugging ------- */
 #ifdef DEBUG_libfirm
-       int out_valid;
+       unsigned out_valid : 1;
+       unsigned flags     : 31;
        long node_nr;            /**< A unique node number for each node to make output
                                      readable. */
 #endif
@@ -535,7 +540,9 @@ struct ir_prog {
        double max_method_execution_frequency;  /**< needed in callgraph. */
        irp_temperature_state temperature_state; /**< accumulated temperatures computed? */
        exec_freq_state execfreq_state;      /**< The state of execution frequency information */
+#ifdef INTERPROCEDURAL_VIEW
        loop_nesting_depth_state lnd_state;  /**< The state of loop nesting depth information. */
+#endif
        ir_class_cast_state class_cast_state;    /**< The state of cast operations in code. */
        ir_address_taken_computed_state globals_adr_taken_state;  /**< Address taken state of the globals. */