* 4. Verification flag
* This one controls the behavior of node and type verifications
*/
-#ifndef _IRFLAG_H_
-#define _IRFLAG_H_
+#ifndef _FIRM_IR_IRFLAG_H_
+#define _FIRM_IR_IRFLAG_H_
#include "firm_types.h"
/** Enables/Disables strong if and loop simplification (in optimize_cf). */
void set_opt_control_flow_strong_simplification(int value);
-/** Enables/Disables removal of critical control flow edges. */
-void set_opt_critical_edges(int value);
-
/** Enables/Disables reassociation.
*
* If opt_reassociation == 1 reassociation is performed.
void set_opt_if_conversion(int value);
/**
- * Enable/Disable real function call optimization.
+ * Enable/Disable function call optimization.
*
- * Real function call optimization detects "real functions" and
- * allows the floating of Call nodes. A "real function" is one that
+ * Function call optimization detects const and pure functions and
+ * allows the CSE of Call nodes. A const function is one that
* do only evaluate it's parameters and did not read or write memory
- * to compute its results.
+ * to compute its results. Pure functions are allowed to read global memory.
*/
-void set_opt_real_function_call(int value);
+void set_opt_function_call(int value);
/**
* Enable/Disable Confirm node removal during local optimization.
*/
void set_opt_sel_based_null_check_elim(int value);
+/**
+ * Enable/Disable Automatic construction of Sync nodes during
+ * Firm construction.
+ *
+ * If this flags is set, sequential non-volatile Loads are automatically
+ * rearranged so that they can be executed in parallel by creating Sync nodes.
+ *
+ * This flags should be set for Java style languages.
+ */
+void set_opt_auto_create_sync(int value);
+
/** Enable/Disable normalizations of the firm representation.
*
* This flag guards transformations that normalize the Firm representation
*/
void do_node_verification(firm_verification_t mode);
-#endif /* _IRFLAG_H_ */
+#endif /* _FIRM_IR_IRFLAG_H_ */