X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firtypes.h;h=df8915b44cc81e221a2b3b71bbc35e33c627adb6;hb=8f355cb9b3d20c10f71d1b1e17cbf59a51ced83b;hp=3b1d6b3d6734188b582c2f25902a207ca51f3b1d;hpb=1535324d82eaddebb17a0ece9d5980d5da73e7bb;p=libfirm diff --git a/ir/ir/irtypes.h b/ir/ir/irtypes.h index 3b1d6b3d6..df8915b44 100644 --- a/ir/ir/irtypes.h +++ b/ir/ir/irtypes.h @@ -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. * @@ -38,17 +38,20 @@ #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. */ @@ -457,9 +460,9 @@ struct ir_graph { the node. */ ir_graph **callers; /**< For callgraph analysis: list of caller graphs. */ - unsigned char *caller_isbe; /**< For callgraph analysis: set if backedge. */ + unsigned *caller_isbe; /**< For callgraph analysis: raw bitset if backedge info calculated. */ cg_callee_entry **callees; /**< For callgraph analysis: list of callee calls */ - unsigned char *callee_isbe; /**< For callgraph analysis: set if backedge. */ + unsigned *callee_isbe; /**< For callgraph analysis: raw bitset if backedge info calculated. */ int callgraph_loop_depth; /**< For callgraph analysis */ int callgraph_recursion_depth; /**< For callgraph analysis */ double method_execution_frequency; /**< For callgraph analysis */ @@ -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 @@ -536,9 +540,7 @@ 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. */ @@ -550,5 +552,4 @@ struct ir_prog { #endif }; - #endif