X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag.h;h=f94341ec637d0e66c5637088b28483952b594350;hb=637542932dc27dcdfc7def09b58d9d5d4c34fb77;hp=4c52c64bc6eb2fc1559657bc185f3d11c0f508c3;hpb=814def24d66ee2a525987001946d6c9a6717505c;p=libfirm diff --git a/ir/ir/irflag.h b/ir/ir/irflag.h index 4c52c64bc..f94341ec6 100644 --- a/ir/ir/irflag.h +++ b/ir/ir/irflag.h @@ -70,6 +70,19 @@ int get_firm_verbosity (void); */ void set_opt_constant_folding (int value); +/** Enables/Disables loop unrolling. + * + * If opt_loop_unrolling == 1 perform loop_unrolling. + * See loop_unrolling.h. + * + * Default: opt_loop_unrolling = 1; + */ +void set_opt_loop_unrolling (int value); + +/** Enables/Disables output of information about loop unrolling. + */ +void set_opt_loop_unrolling_verbose (int value); + /** Enables/Disables removal of redundant Loads and Stores. * * - Remove Store that overwrites a just stored value (WAW). @@ -173,13 +186,32 @@ void set_opt_dead_method_elimination_verbose (int value); */ void set_opt_inline (int value); -/** Enable/Disable optimization of dynamic method dispatch +/** 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 type optimization of cast nodes. + * + * Controls the optimizations in tropt.h. Default: on. + */ +void set_opt_optimize_class_casts (int value); +int get_opt_optimize_class_casts (void); +void set_opt_optimize_class_casts_verbose (int value); +int get_opt_optimize_class_casts_verbose (void); + +/** Restricts the behaviour of cast optimization. + * + * If set, downcast are not optimized if they might be + * illegal as in (Super)(Sub) (new Super()). Default: + * 0 == not suppressed. + */ +void set_opt_suppress_downcast_optimization(int value); +int get_opt_suppress_downcast_optimization(void); /** Enable/Disable optimization of tail-recursion calls. * @@ -189,8 +221,30 @@ void set_opt_dyn_meth_dispatch (int value); void set_opt_tail_recursion(int value); void set_opt_tail_recursion_verbose(int value); +/** Enable/Disable floating of fragile ops. + * + * This flags enables/disables the floating of fragile operations. + * If this flag is on, fragile operations which are known to NOT raise + * an exception can be place to other basic blocks. + * Otherwise they remain in the block they were created. + */ void set_opt_fragile_ops(int value); +/** + * Enable/Disable if conversion. + * + * If conversion tries to turn Conds into Mux nodes to eliminate + * control flow. + */ +void set_opt_if_conversion(int value); + +/** + * Enable/Disable real function call optimization. + * + * Real function call optimization detects "real functions" and + * allows the floationg of Call nodes. + */ +void set_opt_real_function_call(int value); /** Enable/Disable normalizations of the firm representation. *