X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag_t.h;h=7e14ac979d369b76636db94b2e03e995b6d58be1;hb=8399216d8aebc713bbda04b6e3e250a1d52b20bf;hp=8d06012c5616a9e9b538e2b9973b4a021456618e;hpb=d30e5d074dfb44db5d54108c8da839a3464f6fde;p=libfirm diff --git a/ir/ir/irflag_t.h b/ir/ir/irflag_t.h index 8d06012c5..7e14ac979 100644 --- a/ir/ir/irflag_t.h +++ b/ir/ir/irflag_t.h @@ -78,20 +78,33 @@ typedef enum { /** precise exception context */ OPT_PRECISE_EXC_CONTEXT = 0x00008000, - /** Free never called methods */ - OPT_DEAD_METHOD_ELIMINATION_VERBOSE = 0x00010000, + /** EMPTY SLOT !!! TO BE ASSIGNED */ + + /** Do loop unrolling */ + OPT_LOOP_UNROLLING = 0x00010000, + + /** Do Strength reduction */ + OPT_STRENGTH_RED = 0x00020000, /** Optimize Loads and Stores */ - OPT_REDUNDANT_LOADSTORE = 0x00020000, + OPT_REDUNDANT_LOADSTORE = 0x00040000, + + /** Optimize Fragile OPs */ + OPT_FRAGILE_OPS = 0x00080000, /** Turn off all optimizations. */ OPT_OPTIMIZED = 0x40000000, + } libfirm_opts_t; extern optimization_state_t libFIRM_opt; +extern optimization_state_t libFIRM_verb; + +extern int firm_verbosity_level; + /** Returns constant folding optimization setting. */ -static INLINE int get_opt_cse(void) +static INLINE int _get_opt_cse(void) { return libFIRM_opt & OPT_CSE; } @@ -102,6 +115,28 @@ static INLINE int get_opt_global_cse(void) return libFIRM_opt & OPT_GLOBAL_CSE; } +static INLINE int get_opt_loop_unrolling(void) +{ + return libFIRM_opt & OPT_LOOP_UNROLLING; +} + +/** Returns verbosity for loop unrolling. */ +static INLINE int get_opt_loop_unrolling_verbose(void) +{ + return libFIRM_verb & OPT_LOOP_UNROLLING; +} + +static INLINE int get_opt_strength_red(void) +{ + return libFIRM_opt & OPT_STRENGTH_RED; +} + +/** Returns verbosity for strength reduction. */ +static INLINE int get_opt_strength_red_verbose(void) +{ + return libFIRM_verb & OPT_STRENGTH_RED; +} + /** Returns global constant subexpression elimination setting. */ static INLINE int get_opt_constant_folding(void) { @@ -165,7 +200,7 @@ static INLINE int get_opt_dead_method_elimination(void) /** Returns dead method elimination setting. */ static INLINE int get_opt_dead_method_elimination_verbose(void) { - return libFIRM_opt & OPT_DEAD_METHOD_ELIMINATION_VERBOSE; + return libFIRM_verb & OPT_DEAD_METHOD_ELIMINATION; } /** Returns global optimization setting */ @@ -174,6 +209,10 @@ static INLINE int get_opt_optimize(void) return libFIRM_opt & OPT_OPTIMIZED; } +static INLINE int _get_firm_verbosity (void) { + return firm_verbosity_level; +} + /** Returns inlining setting. */ static INLINE int get_opt_inline(void) { @@ -196,10 +235,26 @@ static INLINE int get_opt_tail_recursion(void) return libFIRM_opt & OPT_TAIL_RECURSION; } +/** Returns tail-recursion setting. */ +static INLINE int get_opt_tail_recursion_verbose(void) +{ + return libFIRM_verb & OPT_TAIL_RECURSION; +} + /** Returns precise exception context setting. */ static INLINE int get_opt_precise_exc_context(void) { return libFIRM_opt & OPT_PRECISE_EXC_CONTEXT; } +/** Returns fragile ops setting. */ +static INLINE int get_opt_fragile_ops(void) +{ + return libFIRM_opt & OPT_FRAGILE_OPS; +} + + +#define get_opt_cse() _get_opt_cse() +#define get_firm_verbosity() _get_firm_verbosity() + #endif /* _IRFLAG_T_H_ */