* constant subexpression elimination for floating nodes. Intra
* procedure cse gets the graph into state "floating". It is necessary
* to run pre/code motion to get the graph back into state "pinned".
- * Default: opt_global_cse == 1.
+ * right after a call to local_optimize with global cse turned on.
+ * Default: opt_global_cse == 0.
*/
void set_opt_global_cse (int value);
/** Returns global constant subexpression elimination setting. */
*
* Performs Straightening, if simplifications and loop simplifications.
* Sets all separate control flow flags (control_flow_straightening,
- * weak_simplification and strong_simplification).
+ * weak_simplification, strong_simplification and critical_edges).
*/
void set_opt_control_flow(int value);
/** Returns strong if and loop simplification setting */
int get_opt_control_flow_strong_simplification(void);
+/** Enables/Disables removal of critical control flow edges. */
+void set_opt_critical_edges(int value);
+/** Returns whether critical edges are removed */
+int get_opt_critical_edges(void);
+
/** Enables/Disables reassociation.
*
* If opt_reassociation == 1 reassociation is performed.
/** Returns inlining setting. */
int get_opt_inline (void);
+/** Enable/Disable optimization of dynamic method dispatch
+ *
+ * This flag enables/disables the optimization of dynamic method dispatch.
+ * If the flag is turned on Sel nodes can be replaced by Const nodes representing
+ * the address of a function.
+ */
+void set_opt_dyn_meth_dispatch (int value);
+int get_opt_dyn_meth_dispatch (void);
+
+/** Enable/Disable normalizations of the firm representation.
+ *
+ * This flag guards transformations that normalize the firm representation
+ * as removing Ids and Tuples, useless Phis, replacing SymConst(id) by
+ * Const(entity) and others.
+ * The transformations guarded by this flag are not guarded by flag
+ * "optimize".
+ * Many algorithms operating on firm can not deal with constructs in
+ * the non-normalized representation.
+ * default: 1
+ * @@@ ATTENTION: not all such transformations are guarded by a flag.
+ */
+void set_opt_normalize (int value);
+int get_opt_normalize (void);
+
+
#endif