-/* 0 - don't do this optimization
- 1 - lets see, if there is a better graph */
-int opt_cse = 0; /* Hash the nodes */
-int opt_constant_folding = 0; /* Evaluate operations */
-int opt_unreachable_code = 0; /* Bad node propagation */
-int opt_dead_node_elimination = 0; /* Reclaim memory */
-int optimized = 0;
-int opt_inline = 0;
+/* 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_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_NORMALIZE) |
+ ENABLE(OPT_TAIL_RECURSION) |
+ ENABLE(OPT_PRECISE_EXC_CONTEXT) |
+ 0;
+
+optimization_state_t libFIRM_verb =
+ DISABLE(OPT_OPTIMIZED) |
+ DISABLE(OPT_CSE) |
+ DISABLE(OPT_GLOBAL_CSE) |
+ 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_NORMALIZE) |
+ DISABLE(OPT_TAIL_RECURSION) |
+ DISABLE(OPT_PRECISE_EXC_CONTEXT) |
+ 0;
+
+int firm_verbosity_level;