X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Ftyperep.h;h=760f53f1f570884b424ca8d1d0c27a9a6f7c7f8f;hb=26041b001df09a1ac38df16c6257a7996c6752b5;hp=fdc888006521cbe6ea2b1b662ce30b2187c1257f;hpb=d745be6dd7d63b7a2759f4c92b6f449e010bb467;p=libfirm diff --git a/include/libfirm/typerep.h b/include/libfirm/typerep.h index fdc888006..760f53f1f 100644 --- a/include/libfirm/typerep.h +++ b/include/libfirm/typerep.h @@ -46,7 +46,9 @@ * * - owner: A compound type this entity is a part of. * - type: The type of this entity. - * - name: The string that represents this entity in the source program. * - allocation: A flag saying whether the entity is dynamically or statically * allocated (values: dynamic_allocated, static_allocated, + * - name: The string that represents this entity in the source program. + * - allocation: A flag saying whether the entity is dynamically or statically + * allocated (values: dynamic_allocated, static_allocated, * automatic_allocated). * - visibility: A flag indicating the visibility of this entity (values: local, * external_visible, external_allocated) @@ -120,41 +122,6 @@ typedef enum { This serves better as opposition to description _and_ inherited.*/ } ir_peculiarity; -/** - * Additional method type properties: - * Tell about special properties of a method type. Some - * of these may be discovered by analyses. - */ -typedef enum { - mtp_no_property = 0x00000000, /**< no additional properties, default */ - mtp_property_const = 0x00000001, /**< This method did not access memory and calculates - its return values solely from its parameters. - GCC: __attribute__((const)). */ - mtp_property_pure = 0x00000002, /**< This method did NOT write to memory and calculates - its return values solely from its parameters and - the memory they points to (or global vars). - GCC: __attribute__((pure)). */ - mtp_property_noreturn = 0x00000004, /**< This method did not return due to an aborting system - call. - GCC: __attribute__((noreturn)). */ - mtp_property_nothrow = 0x00000008, /**< This method cannot throw an exception. - GCC: __attribute__((nothrow)). */ - mtp_property_naked = 0x00000010, /**< This method is naked. - GCC: __attribute__((naked)). */ - mtp_property_malloc = 0x00000020, /**< This method returns newly allocate memory. - GCC: __attribute__((malloc)). */ - mtp_property_weak = 0x00000040, /**< This method is weak. It is expected that - GCC: __attribute__((weak)). */ - mtp_property_intrinsic = 0x00000080, /**< This method is intrinsic. It is expected that - a lowering phase will remove all calls to it. */ - mtp_property_runtime = 0x00000100, /**< This method represents a runtime routine. */ - mtp_property_private = 0x00000200, /**< All method invocations are known, the backend is free to - optimize the call in any possible way. */ - mtp_property_has_loop = 0x00000400, /**< Set, if this method contains one possible endless loop. */ - mtp_property_inherited = (1<<31) /**< Internal. Used only in irg's, means property is - inherited from type. */ -} mtp_additional_property; - /** * Creates a new entity. * @@ -1708,14 +1675,6 @@ void remove_class_supertype(ir_type *clss, ir_type *supertype); #define set_class_base_type(clss, basetype, pos) set_class_supertype(clss, basetype, pos) #define remove_class_base_type(clss, basetype) remove_class_supertype(clss, basetype) -/** Convenience macro */ -#define add_class_base_type(clss, basetype) add_class_supertype(clss, basetype) -#define get_class_n_base_types(clss) get_class_n_supertypes(clss) -#define get_class_base_type_index(clss, base_clss) get_class_supertype_index(clss, base_clss) -#define get_class_base_type(clss, pos) get_class_supertype(clss, pos) -#define set_class_base_type(clss, basetype, pos) set_class_supertype(clss, basetype, pos) -#define remove_class_base_type(clss, basetype) remove_class_supertype(clss, basetype) - /** Returns a human readable string for a peculiarity. */ const char *get_peculiarity_name(ir_peculiarity p); @@ -2551,12 +2510,12 @@ ir_type *mature_type_free_entities(ir_type *tp); /** * The interface type for the type identify module; */ -typedef struct _type_identify_if_t { +struct type_identify_if_t { compare_types_func_t *cmp; /**< The function that should be used to compare two types. If NULL, compare_strict() will be used. */ hash_types_func_t *hash; /**< The function that should be used to calculate a hash value of a type. If NULL, hash_name() will be used. */ -} type_identify_if_t; +}; /** * Initialise the type identifier module.