-
-
-/* 0 - don't do this optimization
- 1 - lets see, if there is a better graph */
-int optimized = 1; /* Turn off all optimizations. */
-
-int opt_cse = 1; /* Hash the nodes. */
-int opt_global_cse = 0; /* Don't use block predecessor for comparison.
- Default must be zero as code placement must
- be run right after a local optimize walk with
- opt_global_cse on. */
-int opt_constant_folding = 1; /* Evaluate operations. */
-int opt_unreachable_code = 1; /* Bad node propagation. */
-int opt_control_flow_straightening = 1; /* */
-int opt_control_flow_weak_simplification = 1; /* */
-int opt_control_flow_strong_simplification = 1; /* */
-int opt_critical_edges = 1;
-int opt_dead_node_elimination = 1; /* Reclaim memory. */
-int opt_reassociation = 1; /* Reassociate nodes. */
-int opt_inline = 1; /* Do inlining transformation. */
-int opt_dyn_meth_dispatch = 1; /* Remove dynamic method dispatch. */
-
-int opt_normalize = 1; /* Transformations that normalize the firm representation
- as removing Ids and Tuples, useless Phis, SymConst(id) ->
- Const(entity) ... */
+#include "irflag_t.h"
+
+/* DISABLE - don't do this optimization
+ ENABLE - lets see, if there is a better graph */
+#define ENABLE(a) a
+#define DISABLE(a) 0
+
+optimization_state_t libFIRM_opt =
+ ENABLE(OPT_OPTIMIZED) |
+ ENABLE(OPT_CSE) |
+ DISABLE(OPT_GLOBAL_CSE) |
+ ENABLE(OPT_LOOP_UNROLLING) |
+ ENABLE(OPT_STRENGTH_RED) |
+ ENABLE(OPT_CONSTANT_FOLDING) |
+ ENABLE(OPT_REDUNDANT_LOADSTORE) |
+ ENABLE(OPT_UNREACHABLE_CODE) |
+ ENABLE(OPT_CONTROL_FLOW_STRAIGHTENING) |
+ ENABLE(OPT_CONTROL_FLOW_WEAK_SIMPLIFICATION) |
+ ENABLE(OPT_CONTROL_FLOW_STRONG_SIMPLIFICATION) |
+ ENABLE(OPT_CRITICAL_EDGES) |
+ ENABLE(OPT_DEAD_NODE_ELIMINATION) |
+ ENABLE(OPT_DEAD_METHOD_ELIMINATION) |
+ ENABLE(OPT_REASSOCIATION) |
+ ENABLE(OPT_INLINE) |
+ ENABLE(OPT_DYN_METH_DISPATCH) |
+ ENABLE(OPT_CLASS_CASTS) |
+ DISABLE(OPT_SUPPRESS_DOWNCAST_OPT) |
+ ENABLE(OPT_NORMALIZE) |
+ ENABLE(OPT_TAIL_RECURSION) |
+ ENABLE(OPT_PRECISE_EXC_CONTEXT) |
+ DISABLE(OPT_FRAGILE_OPS) |
+ ENABLE(OPT_IF_CONVERSION) |
+ ENABLE(OPT_REAL_FUNC_CALL) |
+ DISABLE(OPT_REMOVE_CONFIRM) |
+ ENABLE(OPT_SCALAR_REPLACEMENT) |
+ 0;
+
+optimization_state_t libFIRM_verb =
+ DISABLE(OPT_OPTIMIZED) |
+ DISABLE(OPT_CSE) |
+ DISABLE(OPT_GLOBAL_CSE) |
+ DISABLE(OPT_LOOP_UNROLLING) |
+ DISABLE(OPT_STRENGTH_RED) |
+ DISABLE(OPT_CONSTANT_FOLDING) |
+ DISABLE(OPT_REDUNDANT_LOADSTORE) |
+ DISABLE(OPT_UNREACHABLE_CODE) |
+ DISABLE(OPT_CONTROL_FLOW_STRAIGHTENING) |
+ DISABLE(OPT_CONTROL_FLOW_WEAK_SIMPLIFICATION) |
+ DISABLE(OPT_CONTROL_FLOW_STRONG_SIMPLIFICATION) |
+ DISABLE(OPT_CRITICAL_EDGES) |
+ DISABLE(OPT_DEAD_NODE_ELIMINATION) |
+ DISABLE(OPT_DEAD_METHOD_ELIMINATION) |
+ DISABLE(OPT_REASSOCIATION) |
+ DISABLE(OPT_INLINE) |
+ DISABLE(OPT_DYN_METH_DISPATCH) |
+ DISABLE(OPT_CLASS_CASTS) |
+ DISABLE(OPT_NORMALIZE) |
+ DISABLE(OPT_TAIL_RECURSION) |
+ DISABLE(OPT_PRECISE_EXC_CONTEXT) |
+ DISABLE(OPT_FRAGILE_OPS) |
+ DISABLE(OPT_IF_CONVERSION) |
+ DISABLE(OPT_REAL_FUNC_CALL) |
+ DISABLE(OPT_REMOVE_CONFIRM) |
+ DISABLE(OPT_SCALAR_REPLACEMENT) |
+ 0;
+
+/** The Firm verbosity level */
+int firm_verbosity_level;