* @file
* @brief Flags to control optimizations.
* @author Michael Beck, Sebastian Hack
- * @version $Id$
*/
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include "config.h"
#include <stdio.h>
/* DISABLE - don't do this optimization
ENABLE - lets see, if there is a better graph */
-#define ON (-1)
-#define OFF (0)
+#define ON -1
+#define OFF 0
#define FLAG(name, value, def) (irf_##name & def) |
#define E_FLAG(name, value, def) FLAG(name, value, def)
#undef I_FLAG
#undef R_FLAG
-/** The bitset of currently running phases. */
optimization_state_t libFIRM_running = 0;
-/* verbose is always off on default */
optimization_state_t libFIRM_verb = 0;
+void set_opt_optimize(int value);
+
/* an external flag can be set and get from outside */
#define E_FLAG(name, value, def) \
void set_opt_##name(int flag) { \
if (flag) libFIRM_opt |= irf_##name; \
else libFIRM_opt &= ~irf_##name; \
} \
-void set_opt_##name##_verbose(int flag) { \
- if (flag) libFIRM_verb |= irf_##name; \
- else libFIRM_verb &= ~irf_##name; \
-} \
int (get_opt_##name)(void) { \
- return _get_opt_##name(); \
+ return get_opt_##name##_(); \
}
/* an internal flag can only be set from outside */
if (flag) libFIRM_opt |= irf_##name; \
else libFIRM_opt &= ~irf_##name; \
} \
-void set_opt_##name##_verbose(int flag) { \
- if (flag) libFIRM_verb |= irf_##name; \
- else libFIRM_verb &= ~irf_##name; \
-}
#define R_FLAG(name, value)
#undef E_FLAG
#undef R_FLAG
-/* for compatibility reasons */
-void set_optimize(int value) {
- if (value) libFIRM_opt |= irf_optimize;
- else libFIRM_opt &= ~irf_optimize;
+void set_optimize(int value)
+{
+ set_opt_optimize(value);
}
-int (get_optimize)(void) {
+int (get_optimize)(void)
+{
return get_opt_optimize();
}
-void set_opt_control_flow(int value) {
- set_opt_control_flow_straightening(value);
- set_opt_control_flow_weak_simplification(value);
- set_opt_control_flow_strong_simplification(value);
-}
-
-/* Save the current optimization state. */
-void save_optimization_state(optimization_state_t *state) {
+void save_optimization_state(optimization_state_t *state)
+{
*state = libFIRM_opt;
}
-/* Restore the current optimization state. */
-void restore_optimization_state(const optimization_state_t *state) {
+void restore_optimization_state(const optimization_state_t *state)
+{
libFIRM_opt = *state;
}
-/* Switches ALL optimizations off */
-void all_optimizations_off(void) {
+void all_optimizations_off(void)
+{
libFIRM_opt = 0;
}
#ifdef _DEBUG
-/* only for debugging */
-void firm_show_flags(FILE *f) {
+void firm_show_flags(FILE *f)
+{
if (! f)
f = stdout;
printf("Firm optimization state:\n");
LC_OPT_LAST
};
-void firm_init_flags(void) {
+void firm_init_flags(void)
+{
lc_opt_entry_t *grp = lc_opt_get_grp(firm_opt_get_root(), "opt");
lc_opt_add_table(grp, firm_flags);
}
firm_verification_t opt_do_node_verification = FIRM_VERIFICATION_ON;
-void do_node_verification(firm_verification_t mode) {
+void do_node_verification(firm_verification_t mode)
+{
opt_do_node_verification = mode;
}