/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
- *
* This file is part of libFirm.
- *
- * This file may be distributed and/or modified under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation and appearing in the file LICENSE.GPL included in the
- * packaging of this file.
- *
- * Licensees holding valid libFirm Professional Edition licenses may use
- * this file in accordance with the libFirm Commercial License.
- * Agreement provided with the Software.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE.
+ * Copyright (C) 2012 University of Karlsruhe.
*/
/**
* @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
* 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.
* 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.
*
*/
FIRM_API void set_opt_global_cse(int value);
-/** Restricts the behavior of cast optimization.
- *
- * If set, downcast are not optimized if they might be
- * illegal as in (Super)(Sub) (new Super()). Default:
- * 0 == not suppressed.
- */
-FIRM_API void set_opt_suppress_downcast_optimization(int value);
-FIRM_API int get_opt_suppress_downcast_optimization(void);
-
/**
* Enable/Disable Global Null Pointer Test Elimination.
*
*/
FIRM_API void all_optimizations_off(void);
+/** @} */
+
+/** @ingroup irverify
+ * @defgroup irverify_flags Flags
+ * Enable/Disable automatic correctness tests
+ * @{
+ */
+
/**
* Possible verification modes.
*/
*/
FIRM_API void do_node_verification(firm_verification_t mode);
+/** @} */
+
#include "end.h"
#endif