X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firtypes.h;h=ac57335dd4b99b156949abd92d708636c7140cb2;hb=b4647d67ab7885d5da32c2a30242fbc4ed93d81b;hp=484236277ef03b107b2f4d87d83fc7e55cf3c754;hpb=8cb8730614f09dc3a9966839b0d936f15e9a3412;p=libfirm diff --git a/ir/ir/irtypes.h b/ir/ir/irtypes.h index 484236277..ac57335dd 100644 --- a/ir/ir/irtypes.h +++ b/ir/ir/irtypes.h @@ -40,6 +40,7 @@ #include "irprog.h" #include "field_temperature.h" #include "irphase.h" +#include "bitset.h" #include "pset.h" #include "set.h" @@ -111,12 +112,12 @@ struct ir_mode { of all bits and must be dividable by vector_elem */ /* ----------------------------------------------------------------------- */ - tarval *min; /**< the minimum value that can be expressed */ - tarval *max; /**< the maximum value that can be expressed */ - tarval *null; /**< the value 0 */ - tarval *one; /**< the value 1 */ - tarval *minus_one; /**< the value -1 */ - tarval *all_one; /**< the value ~0 */ + ir_tarval *min; /**< the minimum value that can be expressed */ + ir_tarval *max; /**< the maximum value that can be expressed */ + ir_tarval *null; /**< the value 0 */ + ir_tarval *one; /**< the value 1 */ + ir_tarval *minus_one; /**< the value -1 */ + ir_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 */ @@ -142,7 +143,6 @@ typedef struct { /* Attributes private to construction: */ unsigned is_matured:1; /**< If set, all in-nodes of the block are fixed. */ unsigned is_dead:1; /**< If set, the block is dead (and could be replace by a Bad. */ - unsigned is_mb_head:1; /**< Set if this block is a macroblock head. */ unsigned marked:1; /**< Can be set/unset to temporary mark a block. */ ir_node **graph_arr; /**< An array to store all parameters. */ /* Attributes holding analyses information */ @@ -155,11 +155,10 @@ typedef struct { ir_node ** in_cg; /**< array with predecessors in * interprocedural_view, if they differ * from intraprocedural predecessors */ - unsigned *backedge; /**< Raw Bitfield n set to true if pred n is backedge.*/ - unsigned *cg_backedge; /**< Raw Bitfield n set to true if pred n is interprocedural backedge. */ + 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. */ - unsigned mb_depth; /**< The macroblock depth: A distance from the macroblock header */ ir_entity *entity; /**< entitiy representing this block */ ir_node *phis; /**< The list of Phi nodes in this block. */ @@ -173,16 +172,14 @@ typedef struct { } cond_attr; /** Const attributes. */ -typedef struct { - tarval *tarval; /**< the target value */ - ir_type *tp; /**< the source type, for analyses. default: type_unknown. */ +typedef struct const_attr { + ir_tarval *tarval; /**< the target value */ } const_attr; /** SymConst attributes. */ typedef struct { symconst_symbol sym; // old tori symconst_kind kind; - ir_type *tp; /**< the source type, for analyses. default: type_unknown. */ } symconst_attr; /** Sel attributes. */ @@ -254,7 +251,7 @@ typedef struct { typedef struct { ir_node *next; /**< Points to the next Phi in the Phi list of a block. */ union { - unsigned *backedge; /**< Raw Bitfield: bit n is set to true if pred n is backedge. */ + bitset_t *backedge; /**< Raw Bitfield: bit n is set to true if pred n is backedge. */ int pos; /**< For Phi0. Used to remember the value defined by this Phi node. Needed when the Phi is completed to call get_r_internal_value() to find the