X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firmemory.h;h=43858e60020d4f89d2dca0de9d5d6d3dc43484ba;hb=8c9aa24a1f17891325986165a58434cf75f96f6d;hp=32521443ffd0175f8e700487929dfb4b5979c84a;hpb=ce6161a7e42a48f7422b7babcc64d8ace18e2687;p=libfirm diff --git a/include/libfirm/irmemory.h b/include/libfirm/irmemory.h index 32521443f..43858e600 100644 --- a/include/libfirm/irmemory.h +++ b/include/libfirm/irmemory.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2010 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -22,7 +22,6 @@ * @brief Memory disambiguator * @author Michael Beck * @date 27.12.2006 - * @version $Id$ */ #ifndef FIRM_ANA_IRMEMORY_H #define FIRM_ANA_IRMEMORY_H @@ -30,6 +29,15 @@ #include "firm_types.h" #include "begin.h" +/** @ingroup irana + * @defgroup ir_memory Memory Disambiguator + * + * A memory disambiguator checks whether 2 given SSA values representing + * addresses alias. + * + * @{ + */ + /** The alias relation of two memory addresses. */ typedef enum ir_alias_relation { ir_no_alias, /**< No alias. */ @@ -75,11 +83,8 @@ typedef enum ir_storage_class_class_t { } ir_storage_class_class_t; ENUM_BITSET(ir_storage_class_class_t) -/** Get the base storage class (ignore modifier) */ -static inline ir_storage_class_class_t get_base_sc(ir_storage_class_class_t x) -{ - return x & ~ir_sc_modifiers; -} +/** Returns the base storage class (ignore modifier) */ +FIRM_API ir_storage_class_class_t get_base_sc(ir_storage_class_class_t x); /** * A source language specific memory disambiguator function. @@ -106,7 +111,6 @@ FIRM_API const char *get_ir_alias_relation_name(ir_alias_relation rel); /** * Determine the alias relation between two addresses. * - * @param irg The current graph. * @param adr1 The first address. * @param mode1 The mode of the first memory access. * @param adr2 The second address. @@ -142,7 +146,7 @@ FIRM_API ir_alias_relation get_alias_relation( const ir_node *adr2, const ir_mode *mode2); /** - * Set a source language specific memory disambiguator function. + * Sets a source language specific memory disambiguator function. * * @param func The callback. */ @@ -153,11 +157,10 @@ FIRM_API void set_language_memory_disambiguator(DISAMBIGUATOR_FUNC func); */ FIRM_API void mem_disambig_init(void); -/* +/** * Determine the alias relation between two addresses and * cache the result. * - * @param irg The current graph. * @param adr1 The first address. * @param mode1 The mode of the first memory access. * @param adr2 The second address. @@ -174,19 +177,11 @@ FIRM_API ir_alias_relation get_alias_relation_ex( */ FIRM_API void mem_disambig_term(void); -FIRM_API ir_entity_usage_computed_state get_irg_entity_usage_state(const ir_graph *irg); - -FIRM_API void set_irg_entity_usage_state(ir_graph *irg, - ir_entity_usage_computed_state state); - /** * Assure that the entity usage flags have been computed for the given graph. * * This analysis computes the entity usage state for all local variables. * - * Note that this is a conservative estimation that by no Firm transformation - * can be invalidated, so it's only recomputed if manually triggered by calling - * set_irg_entity_usage_state(irg, ir_entity_usage_not_computed). * Even then the information is not cleaned from the variables, call * assure_irg_entity_usage_computed() again for recomputation. */ @@ -219,14 +214,14 @@ FIRM_API void set_irp_globals_entity_usage_state(ir_entity_usage_computed_state FIRM_API void assure_irp_globals_entity_usage_computed(void); /** - * Get the memory disambiguator options for a graph. + * Returns the memory disambiguator options for a graph. * * @param irg the graph */ FIRM_API unsigned get_irg_memory_disambiguator_options(const ir_graph *irg); /** - * Set the memory disambiguator options for a graph. + * Sets the memory disambiguator options for a graph. * * @param irg the graph * @param options a set of options @@ -235,7 +230,8 @@ FIRM_API void set_irg_memory_disambiguator_options(ir_graph *irg, unsigned options); /** - * Set the global disambiguator options for all graphs not having local options. + * Sets the global disambiguator options for all graphs not having local + * options. * * @param options a set of options */ @@ -257,6 +253,8 @@ FIRM_API void mark_private_methods(void); */ FIRM_API ir_prog_pass_t *mark_private_methods_pass(const char *name); +/** @} */ + #include "end.h" #endif