irmode: remove support for vector mode
[libfirm] / ir / ir / irtypes.h
index 1f289c7..e10eced 100644 (file)
 #include "iredgekinds.h"
 #include "irtypeinfo.h"
 #include "irextbb.h"
-#include "execution_frequency.h"
 #include "irmemory.h"
 #include "callgraph.h"
 #include "irprog.h"
-#include "field_temperature.h"
-#include "irphase.h"
 #include "bitset.h"
 
 #include "pset.h"
 #include "obst.h"
 #include "vrp.h"
 
-/**
- * List of phases. (We will add a register/unregister interface if managing
- * this gets too tedious)
- */
-typedef enum ir_phase_id {
-       PHASE_FIRST,
-       PHASE_VRP = PHASE_FIRST,
-       PHASE_LAST = PHASE_VRP
-} ir_phase_id;
-ENUM_COUNTABLE(ir_phase_id)
+struct ir_nodemap {
+       void **data;  /**< maps node indices to void* */
+};
 
 /** The type of an ir_op. */
 struct ir_op {
@@ -117,9 +107,6 @@ struct ir_mode {
        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
-                                          vector_elem number of elements, size contains the size
-                                          of all bits and must be dividable by vector_elem */
 
        /* ----------------------------------------------------------------------- */
        ir_tarval         *min;         /**< the minimum value that can be expressed */
@@ -171,7 +158,6 @@ typedef struct block_attr {
        bitset_t *backedge;         /**< Bitfield n set to true if pred n is backedge.*/
        bitset_t *cg_backedge;      /**< Bitfield n set to true if pred n is interprocedural backedge. */
        ir_extblk *extblk;          /**< The extended basic block this block belongs to. */
-       ir_region *region;          /**< The immediate structural region this block belongs to. */
        ir_entity *entity;          /**< entitiy representing this block */
        ir_node  *phis;             /**< The list of Phi nodes in this block. */
 
@@ -454,6 +440,11 @@ typedef struct cg_callee_entry {
        size_t     max_depth;  /**< Maximum depth of all Call nodes to irg. */
 } cg_callee_entry;
 
+typedef struct ir_vrp_info {
+       struct ir_nodemap infos;
+       struct obstack    obst;
+} ir_vrp_info;
+
 /**
  * An ir_graph holds all information for a procedure.
  */
@@ -482,7 +473,6 @@ struct ir_graph {
        ir_typeinfo_state     typeinfo_state;    /**< Validity of type information. */
        irg_callee_info_state callee_info_state; /**< Validity of callee information. */
        ir_class_cast_state   class_cast_state;  /**< Kind of cast operations in code. */
-       exec_freq_state       execfreq_state;    /**< Execution frequency state. */
        unsigned mem_disambig_opt;               /**< Options for the memory disambiguator. */
        unsigned fp_model;                       /**< floating point model of the graph. */
 
@@ -495,6 +485,7 @@ struct ir_graph {
        pset *value_table;                 /**< Hash table for global value numbering (cse)
                                                for optimizing use in iropt.c */
        ir_def_use_edge *outs;             /**< Space for the Def-Use arrays. */
+       ir_vrp_info      vrp;              /**< vrp info */
 
        ir_loop *loop;                     /**< The outermost loop for this graph. */
        void *link;                        /**< A void* field to link any information to
@@ -525,7 +516,7 @@ struct ir_graph {
        ir_node **idx_irn_map;             /**< Array mapping node indexes to nodes. */
 
        size_t index;                      /**< a unique number for each graph */
-       ir_phase *phases[PHASE_LAST+1];    /**< Phase information. */
+       /** extra info which should survive accross multiple passes */
        void     *be_data;                 /**< backend can put in private data here */
 
        unsigned  dump_nr;                 /**< number of graph dumps */
@@ -574,10 +565,8 @@ struct ir_prog {
        /* -- states of and access to generated information -- */
        irg_phase_state phase_state;    /**< The state of construction. */
 
-       irg_outs_state outs_state;    /**< The state of out edges of type information. */
        ir_node **ip_outedges;          /**< A huge Array that contains all out edges
                                             in interprocedural view. */
-       irg_outs_state trouts_state;    /**< The state of out edges of type information. */
 
        irg_callee_info_state callee_info_state; /**< Validity of callee information.
                                                      Contains the lowest value or all irgs.  */
@@ -591,8 +580,6 @@ struct ir_prog {
        size_t max_callgraph_loop_depth;        /**< needed in callgraph. */
        size_t max_callgraph_recursion_depth;   /**< needed in callgraph. */
        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 */
        loop_nesting_depth_state lnd_state;  /**< The state of loop nesting depth information. */
        ir_class_cast_state class_cast_state;    /**< The state of cast operations in code. */
        ir_entity_usage_computed_state globals_entity_usage_state;