X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag.h;h=fc28d11f13ce06b3c9ac0bd2a07370db9df4d821;hb=f9d25133f86594ca2b1f33fb0b41a591ecc9b914;hp=3d8a7da1c6541b5b126ed79eb7cc3a7fe5fbae54;hpb=5986f7ddfe03e8a10e214825653ed8fbf938049e;p=libfirm diff --git a/ir/ir/irflag.h b/ir/ir/irflag.h index 3d8a7da1c..fc28d11f1 100644 --- a/ir/ir/irflag.h +++ b/ir/ir/irflag.h @@ -13,7 +13,7 @@ /** * @file irflag.h * - * Flags to customize the behaviour of libfirm. + * Flags to customize the behavior of libfirm. * * @author Christian Schaefer * @@ -186,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 behavior 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. * @@ -202,8 +221,41 @@ 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 floating of Call nodes. + */ +void set_opt_real_function_call(int value); + +/** + * Enable/Disable Confirm node removal during local optimization. + */ +void set_opt_remove_Confirm(int value); + +/** + * Enable/Disable scalar replacement optimization. + */ +void set_opt_scalar_replacement(int value); +void set_opt_scalar_replacement_verbose(int value); /** Enable/Disable normalizations of the firm representation. * @@ -233,4 +285,4 @@ void save_optimization_state(optimization_state_t *state); */ void restore_optimization_state(const optimization_state_t *state); -#endif +#endif /* _IRFLAG_H_ */