** irflag --- optimization flags
*/
+/* $Id$ */
+
#ifndef _IRFLAG_H_
#define _IRFLAG_H_
void set_opt_constant_folding (int value);
int get_opt_constant_folding (void);
-/* If opt_cse == 1 perfor constant subexpression elimination
- (and, if implemented, global code motion. @@@ Right now
- cse only within blocks.
+/* If opt_cse == 1 perform constant subexpression elimination.
Default: opt_cse == 1. */
void set_opt_cse (int value);
int get_opt_cse (void);
+/* If opt_global_cse == 1 and opt_cse == 1 perform intra procedure
+ 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. */
+void set_opt_global_cse (int value);
+int get_opt_global_cse (void);
+
/* If opt_unreachable_code == 1 replace nodes (except Block,
Phi and Tuple) with a Bad predecessor by the Bad node.
Default: opt_unreachable_code == 1. */
-inline void set_opt_unreachable_code(int value);
-inline int get_opt_unreachable_code(void);
+void set_opt_unreachable_code(int value);
+int get_opt_unreachable_code(void);
+
+/* Performs Straightening, if simplifications and loop simplifications. */
+void set_opt_control_flow(int value);
+int get_opt_control_flow(void);
+
+/* If opt_reassociation == 1 reassociation is performed.
+ Default: opt_reassociation == 1. */
+void set_opt_reassociation(int value);
+int get_opt_reassociation(void);
/* If opt_dead_node_elimination == 1 deallocate all dead nodes
by copying the firm graph.