X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firflag.h;h=c7f83d25f15e4fbaeb53cb0e7a29145f7c2f5383;hb=e824e6962c4532b2d1ef5ad9097df6754f8e560a;hp=557d42c4a2e2680cd178571787a3f4c752bf4dee;hpb=8a5f15326aeefb771a9999c87d963972f47b19b9;p=libfirm diff --git a/include/libfirm/irflag.h b/include/libfirm/irflag.h index 557d42c4a..c7f83d25f 100644 --- a/include/libfirm/irflag.h +++ b/include/libfirm/irflag.h @@ -21,28 +21,31 @@ * @file * @brief Flags to control optimizations. * @author Christian Schaefer, Goetz Lindenmaier, Michael Beck - * @brief + */ +#ifndef FIRM_IR_IRFLAG_H +#define FIRM_IR_IRFLAG_H + +#include "firm_types.h" +#include "begin.h" + +/** + * @ingroup iroptimize + * @defgroup Optimization Flags * Flags to customize the behavior of libfirm. * * There are the following groups of flags: - * 1. Optimization flags. - * a) There is a flag, 'optimize' to turn on/off all optimizations. - * b) There are flags for each individual optimization. Some flags turns + * -# Optimization flags. + * -# There is a flag, 'optimize' to turn on/off all optimizations. + * -# There are flags for each individual optimization. Some flags turns * transformations in several algorithms on/off. - * 2. Normalization flags. + * -# Normalization flags. * These flags steer transformations of the ir that improve it, as removing * dump Phi nodes (one predecessor, all predecessors are equal ...), Ids, Tuples ... - * 3. Verbosity flags. - * a) Flags to steer the level of the information. - * b) Flags to steer in which phase information should be dumped. - * 4. Verification flag - * This one controls the behavior of node and type verifications + * -# Verbosity flags. + * -# Flags to steer the level of the information. + * -# Flags to steer in which phase information should be dumped. + *@{ */ -#ifndef FIRM_IR_IRFLAG_H -#define FIRM_IR_IRFLAG_H - -#include "firm_types.h" -#include "begin.h" /** * A container type to load/restore all optimizations @@ -56,6 +59,8 @@ typedef unsigned optimization_state_t; * Default: optimize == 1. */ FIRM_API void set_optimize(int value); +/** Returns global optimizations flag. + * @see set_optimize() */ FIRM_API int get_optimize(void); /** Enables/Disables constant folding optimization. @@ -65,6 +70,8 @@ FIRM_API int get_optimize(void); * Default: opt_constant_folding == 1. */ FIRM_API void set_opt_constant_folding(int value); +/** returns 0 if constant_folding is disabled, !=0 otherwise */ +FIRM_API int get_opt_constant_folding(void); /** Enables/Disables algebraic simplifications. * @@ -103,6 +110,8 @@ FIRM_API void set_opt_global_cse(int value); * 0 == not suppressed. */ FIRM_API void set_opt_suppress_downcast_optimization(int value); +/** Returns suppred_downcast flag. + * @see set_opt_suppress_downcast_optimization() */ FIRM_API int get_opt_suppress_downcast_optimization(void); /** @@ -156,6 +165,14 @@ FIRM_API void restore_optimization_state(const optimization_state_t *state); */ FIRM_API void all_optimizations_off(void); +/** @} */ + +/** @ingroup irverify + * @defgroup irverify_flags Flags + * Enable/Disable automatic correctness tests + * @{ + */ + /** * Possible verification modes. */ @@ -175,6 +192,8 @@ typedef enum firm_verification_t { */ FIRM_API void do_node_verification(firm_verification_t mode); +/** @} */ + #include "end.h" #endif