X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Ftr%2Fentity_t.h;h=cdd8aff43cbef8a544699928722ed5dfb0cdbb5a;hb=15ad7ccd8dff64e1808e1d093d4a8d7cda5af33e;hp=3da80598978ce9146b1de3f5286e7bfea44ae183;hpb=abbf9492df1993d211412ba520feb81de0688c2a;p=libfirm diff --git a/ir/tr/entity_t.h b/ir/tr/entity_t.h index 3da805989..cdd8aff43 100644 --- a/ir/tr/entity_t.h +++ b/ir/tr/entity_t.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -31,7 +31,6 @@ #include "typerep.h" #include "type_t.h" #include "ident.h" -#include "pseudo_irg.h" #include "compound_path.h" typedef struct ir_initializer_base_t { @@ -43,7 +42,7 @@ typedef struct ir_initializer_base_t { */ typedef struct ir_initializer_compound_t { ir_initializer_base_t base; - unsigned n_initializers; + size_t n_initializers; ir_initializer_t *initializers[1]; } ir_initializer_compound_t; @@ -60,7 +59,7 @@ typedef struct ir_initializer_const_t { */ typedef struct ir_initializer_tarval_t { ir_initializer_base_t base; - tarval *value; + ir_tarval *value; } ir_initializer_tarval_t ; union ir_initializer_t { @@ -78,14 +77,11 @@ typedef struct compound_ent_attr { /**< paths corresponding to constant values. */ } compound_ent_attr; -/** A reserved value for "not yet set". */ -#define VTABLE_NUM_NOT_SET ((unsigned)(-1)) - /** The attributes for methods. */ typedef struct method_ent_attr { ir_graph *irg; /**< The corresponding irg if known. The ir_graph constructor automatically sets this field. */ - unsigned irg_add_properties; /**< Additional graph properties can be + mtp_additional_properties irg_add_properties; /**< Additional graph properties can be stored in a entity if no irg is available. */ unsigned vtable_number; /**< For a dynamically called method, the number assigned @@ -172,7 +168,9 @@ struct ir_entity { }; /** Initialize the entity module. */ -void firm_init_entity(void); +void ir_init_entity(void); +/** Cleanup entity module */ +void ir_finish_entity(void); /* ----------------------- inline functions ------------------------ */ static inline int _is_entity(const void *thing) @@ -239,13 +237,13 @@ static inline void _set_entity_type(ir_entity *ent, ir_type *type) static inline ir_linkage _get_entity_linkage(const ir_entity *ent) { assert(ent && ent->kind == k_entity); - return ent->linkage; + return (ir_linkage) ent->linkage; } static inline ir_volatility _get_entity_volatility(const ir_entity *ent) { assert(ent && ent->kind == k_entity); - return ent->volatility; + return (ir_volatility) ent->volatility; } static inline void _set_entity_volatility(ir_entity *ent, ir_volatility vol) @@ -269,7 +267,7 @@ static inline void _set_entity_alignment(ir_entity *ent, unsigned alignment) static inline ir_align _get_entity_aligned(const ir_entity *ent) { assert(ent && ent->kind == k_entity); - return ent->aligned; + return (ir_align) ent->aligned; } static inline void _set_entity_aligned(ir_entity *ent, ir_align a) @@ -293,7 +291,7 @@ static inline void _set_entity_compiler_generated(ir_entity *ent, int flag) static inline ir_entity_usage _get_entity_usage(const ir_entity *ent) { assert(ent && ent->kind == k_entity); - return ent->usage; + return (ir_entity_usage) ent->usage; } static inline void _set_entity_usage(ir_entity *ent, ir_entity_usage state) @@ -340,16 +338,12 @@ static inline void _set_entity_link(ir_entity *ent, void *l) static inline ir_graph *_get_entity_irg(const ir_entity *ent) { - ir_graph *irg; assert(ent && ent->kind == k_entity); if (!is_Method_type(ent->type) || ent == unknown_entity) { return NULL; } - irg = ent->attr.mtd_attr.irg; - if (irg != NULL && !get_visit_pseudo_irgs() && is_pseudo_ir_graph(irg)) - return NULL; - return irg; + return ent->attr.mtd_attr.irg; } static inline ir_visited_t _get_entity_visited(const ir_entity *ent) @@ -396,8 +390,6 @@ static inline void _set_entity_dbg_info(ir_entity *ent, dbg_info *db) ent->dbi = db; } -int is_entity_final(const ir_entity *entity); - #define is_entity(thing) _is_entity(thing) #define get_entity_name(ent) _get_entity_name(ent) #define get_entity_ident(ent) _get_entity_ident(ent)