X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag_t.h;h=775409623314dcd041ef9c783641ad2e08e74713;hb=e5bab593a4048c0a320d7794fb2cb17697da8389;hp=464ee68f38bb96d4914dcef97e8755153e44ba86;hpb=9a83b13f4097e77eb0239b76a3e97a51e55ea5cd;p=libfirm diff --git a/ir/ir/irflag_t.h b/ir/ir/irflag_t.h index 464ee68f3..775409623 100644 --- a/ir/ir/irflag_t.h +++ b/ir/ir/irflag_t.h @@ -69,11 +69,34 @@ typedef enum { */ OPT_NORMALIZE = 0x00001000, + /** Remove tail-recursion. */ + OPT_TAIL_RECURSION = 0x00002000, + + /** Free never called methods */ + OPT_DEAD_METHOD_ELIMINATION = 0x00004000, + + /** precise exception context */ + OPT_PRECISE_EXC_CONTEXT = 0x00008000, + + + /** EMPTY SLOT !!! TO BE ASSIGNED */ + + /** Do Strength reduction */ + OPT_STRENGTH_RED = 0x00020000, + + /** Optimize Loads and Stores */ + OPT_REDUNDANT_LOADSTORE = 0x00040000, + /** 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) @@ -87,12 +110,29 @@ static INLINE int get_opt_global_cse(void) return libFIRM_opt & OPT_GLOBAL_CSE; } +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_verbosity(void) +{ + return libFIRM_verb & OPT_STRENGTH_RED; +} + /** Returns global constant subexpression elimination setting. */ static INLINE int get_opt_constant_folding(void) { return libFIRM_opt & OPT_CONSTANT_FOLDING; } +/** Returns global constant subexpression elimination setting. */ +static INLINE int get_opt_redundant_LoadStore(void) +{ + return libFIRM_opt & OPT_REDUNDANT_LOADSTORE; +} + /** Returns unreachable code elimination setting. */ static INLINE int get_opt_unreachable_code(void) { @@ -135,12 +175,28 @@ static INLINE int get_opt_dead_node_elimination(void) return libFIRM_opt & OPT_DEAD_NODE_ELIMINATION; } +/** Returns dead method elimination setting. */ +static INLINE int get_opt_dead_method_elimination(void) +{ + return libFIRM_opt & OPT_DEAD_METHOD_ELIMINATION; +} + +/** Returns dead method elimination setting. */ +static INLINE int get_opt_dead_method_elimination_verbose(void) +{ + return libFIRM_verb & OPT_DEAD_METHOD_ELIMINATION; +} + /** Returns global optimization setting */ 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) { @@ -157,4 +213,26 @@ static INLINE int get_opt_normalize(void) return libFIRM_opt & OPT_NORMALIZE; } +/** Returns tail-recursion setting. */ +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; +} + + + +#define get_firm_verbosity() __get_firm_verbosity() + #endif /* _IRFLAG_T_H_ */