X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firtypes.h;h=e10eced14dbc29ec4bd2d6f40a654ddb815fcec3;hb=7a293685ad0b3f5121327d6bee1a6b68230a4c2d;hp=73b44cb6e4aa951f089318619f63c7b35c07beaf;hpb=efa44a3c4bcff43a9d623a65ea2c96f656b5876a;p=libfirm diff --git a/ir/ir/irtypes.h b/ir/ir/irtypes.h index 73b44cb6e..e10eced14 100644 --- a/ir/ir/irtypes.h +++ b/ir/ir/irtypes.h @@ -37,7 +37,6 @@ #include "irmemory.h" #include "callgraph.h" #include "irprog.h" -#include "irphase.h" #include "bitset.h" #include "pset.h" @@ -46,16 +45,9 @@ #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 { @@ -115,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 */ @@ -451,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. */ @@ -491,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 @@ -521,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 */