* @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)
/* verbose is always off on default */
optimization_state_t libFIRM_verb = 0;
+/* silence warnings */
+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(); \
}
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 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;
}