X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Ftype_t.h;h=65eb07a713eea52df4d62995960d5525cfc4b3b7;hb=292b89d3367cdeae0cb2a1fca37b6b84e781eab8;hp=bb0acd176ec8accae785ec6a3e6693054e1b4aec;hpb=10d435353850d6f7c858e5b9e71fb06443855d95;p=libfirm diff --git a/ir/tr/type_t.h b/ir/tr/type_t.h index bb0acd176..65eb07a71 100644 --- a/ir/tr/type_t.h +++ b/ir/tr/type_t.h @@ -21,7 +21,6 @@ * @file * @brief Representation of types -- private header. * @author Goetz Lindenmaier, Michael Beck - * @version $Id$ * @see type.h tpop_t.h tpop.h */ #ifndef FIRM_TR_TYPE_T_H @@ -135,10 +134,12 @@ enum type_flags { tf_layout_fixed = 1U << 1, /**< Set if the layout of a type is fixed */ tf_frame_type = 1U << 2, /**< Set if this is a frame type. */ - tf_global_type = 1U << 3, /**< Set only for the global type */ - tf_tls_type = 1U << 4, /**< Set only for the tls type */ - tf_constructors = 1U << 5, /**< Set only for the constructors segment type */ - tf_destructors = 1U << 6, /**< Set only for the destructors segment type */ + tf_segment = 1U << 3, /**< type represents a linker segment */ + tf_global_type = 1U << 4, /**< Set only for the global type */ + tf_tls_type = 1U << 5, /**< Set only for the tls type */ + tf_constructors = 1U << 6, /**< Set only for the constructors segment type */ + tf_destructors = 1U << 7, /**< Set only for the destructors segment type */ + tf_variable_size = 1U << 8, /**< compound or array type may have variable size last element */ }; ENUM_BITSET(type_flags) @@ -185,18 +186,7 @@ struct ir_type { last entry in this struct! Varying size! */ }; -/** - * Creates a new type representation: - * - * @param type_op the kind of this type. May not be type_id. - * @param mode the mode to be used for this type, may be NULL - * @param db debug info - * - * @return A new type of the given type. The remaining private attributes are not - * initialized. The type is in state layout_undefined. - */ -ir_type *new_type(const tp_op *type_op, ir_mode *mode, type_dbg_info *db); -void free_type_attrs(ir_type *tp); +void free_type_entities(ir_type *tp); void free_class_entities (ir_type *clss); void free_struct_entities (ir_type *strct); @@ -236,10 +226,10 @@ int get_class_dfn(const ir_type *clss); void add_compound_member(ir_type *compound, ir_entity *entity); /** Initialize the type module. */ -void ir_init_type(void); +void ir_init_type(ir_prog *irp); /** free internal datastructures of type module */ -void ir_finish_type(void); +void ir_finish_type(ir_prog *irp); /** Clone an existing method type. *