X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag_t.h;h=47c755be66cc7d778844cf6286ebb5acd8c8b4ef;hb=f9d25133f86594ca2b1f33fb0b41a591ecc9b914;hp=5ae729ff05a37d555abdaa9d25dd2a9ebf90a9c8;hpb=15a59fd1453ab23be5d08f59b4a8d3a90656b572;p=libfirm diff --git a/ir/ir/irflag_t.h b/ir/ir/irflag_t.h index 5ae729ff0..47c755be6 100644 --- a/ir/ir/irflag_t.h +++ b/ir/ir/irflag_t.h @@ -92,8 +92,21 @@ typedef enum { /** Optimize Fragile OPs */ OPT_FRAGILE_OPS = 0x00080000, - /** If conversion. */ - OPT_IF_CONVERSION = 0x00100000, + /** If conversion. */ + OPT_IF_CONVERSION = 0x00100000, + + /** Optimize real function calls. */ + OPT_REAL_FUNC_CALL = 0x00200000, + + /** Optimize cast nodes. */ + OPT_CLASS_CASTS = 0x00400000, + OPT_SUPPRESS_DOWNCAST_OPT = 0x00800000, + + /** Not really an optimization, removes Confirm nodes */ + OPT_REMOVE_CONFIRM = 0x01000000, + + /** Scalar replacement. */ + OPT_SCALAR_REPLACEMENT = 0x02000000, /** Turn off all optimizations. */ OPT_OPTIMIZED = 0x40000000, @@ -222,11 +235,23 @@ static INLINE int get_opt_inline(void) return libFIRM_opt & OPT_INLINE; } -static INLINE int get_opt_dyn_meth_dispatch(void) +static INLINE int _get_opt_dyn_meth_dispatch(void) { return libFIRM_opt & OPT_DYN_METH_DISPATCH; } +static INLINE int _get_opt_optimize_class_casts (void) { + return libFIRM_opt & OPT_CLASS_CASTS; +} + +static INLINE int _get_opt_optimize_class_casts_verbose (void) { + return libFIRM_verb & OPT_CLASS_CASTS; +} + +static INLINE int _get_opt_suppress_downcast_optimization (void) { + return libFIRM_opt & OPT_SUPPRESS_DOWNCAST_OPT; +} + static INLINE int get_opt_normalize(void) { return libFIRM_opt & OPT_NORMALIZE; @@ -262,8 +287,33 @@ static INLINE int get_opt_if_conversion(void) return libFIRM_opt & OPT_IF_CONVERSION; } +/** Returns real function call optimization setting. */ +static INLINE int get_opt_real_func_call(void) +{ + return libFIRM_opt & OPT_REAL_FUNC_CALL; +} + +/** Returns Confirm removal setting. */ +static INLINE int get_opt_remove_Confirm(void) +{ + return libFIRM_opt & OPT_REMOVE_CONFIRM; +} + +/** Returns Confirm removal setting. */ +static INLINE int get_opt_scalar_replacement(void) +{ + return libFIRM_opt & OPT_SCALAR_REPLACEMENT; +} + +static INLINE int get_opt_scalar_replacement_verbose(void) { + return libFIRM_verb & OPT_SCALAR_REPLACEMENT; +} -#define get_opt_cse() _get_opt_cse() -#define get_firm_verbosity() _get_firm_verbosity() +#define get_opt_cse() _get_opt_cse() +#define get_firm_verbosity() _get_firm_verbosity() +#define get_opt_dyn_meth_dispatch() _get_opt_dyn_meth_dispatch() +#define get_opt_optimize_class_casts() _get_opt_optimize_class_casts() +#define get_opt_optimize_class_casts_verbose() _get_opt_optimize_class_casts_verbose() +#define get_opt_suppress_downcast_optimization() _get_opt_suppress_downcast_optimization() #endif /* _IRFLAG_T_H_ */