/*
- * 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.
*
* @brief Memory disambiguator
* @author Michael Beck
* @date 27.12.2006
- * @version $Id$
*/
#ifndef FIRM_ANA_IRMEMORY_H
#define FIRM_ANA_IRMEMORY_H
#include "firm_types.h"
#include "begin.h"
+/** @ingroup irana
+ * @defgroup ir_memory Memory Disambiguator
+ *
+ * A memory disambiguator checks wether 2 given SSA values representing
+ * addresses alias.
+ *
+ * @{
+ */
+
/** The alias relation of two memory addresses. */
typedef enum ir_alias_relation {
ir_no_alias, /**< No alias. */
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;
-}
+FIRM_API ir_storage_class_class_t get_base_sc(ir_storage_class_class_t x);
/**
* A source language specific memory disambiguator function.
/**
* 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.
*/
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.
*/
*/
FIRM_API ir_prog_pass_t *mark_private_methods_pass(const char *name);
+/** @} */
+
#include "end.h"
#endif