X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firflag.c;h=f30d0d4ddafc6b41b3294828fe4f98b0684dd4a5;hb=8399216d8aebc713bbda04b6e3e250a1d52b20bf;hp=1166f048e703ebcb41f72311711ed04ae47bdbee;hpb=e3a46c8cd9fe439429b953b39b35061acc5e3898;p=libfirm diff --git a/ir/ir/irflag.c b/ir/ir/irflag.c index 1166f048e..f30d0d4dd 100644 --- a/ir/ir/irflag.c +++ b/ir/ir/irflag.c @@ -11,7 +11,7 @@ */ #ifdef HAVE_CONFIG_H -# include +# include "config.h" #endif #include "firm_common.h" @@ -26,6 +26,7 @@ optimization_state_t libFIRM_opt = ENABLE(OPT_OPTIMIZED) | ENABLE(OPT_CSE) | DISABLE(OPT_GLOBAL_CSE) | + ENABLE(OPT_LOOP_UNROLLING) | ENABLE(OPT_STRENGTH_RED) | ENABLE(OPT_CONSTANT_FOLDING) | ENABLE(OPT_REDUNDANT_LOADSTORE) | @@ -42,12 +43,14 @@ optimization_state_t libFIRM_opt = ENABLE(OPT_NORMALIZE) | ENABLE(OPT_TAIL_RECURSION) | ENABLE(OPT_PRECISE_EXC_CONTEXT) | + DISABLE(OPT_FRAGILE_OPS) | 0; optimization_state_t libFIRM_verb = DISABLE(OPT_OPTIMIZED) | DISABLE(OPT_CSE) | DISABLE(OPT_GLOBAL_CSE) | + DISABLE(OPT_LOOP_UNROLLING) | DISABLE(OPT_STRENGTH_RED) | DISABLE(OPT_CONSTANT_FOLDING) | DISABLE(OPT_REDUNDANT_LOADSTORE) | @@ -64,6 +67,7 @@ optimization_state_t libFIRM_verb = DISABLE(OPT_NORMALIZE) | DISABLE(OPT_TAIL_RECURSION) | DISABLE(OPT_PRECISE_EXC_CONTEXT) | + DISABLE(OPT_FRAGILE_OPS) | 0; /** The Firm verbosity level */ @@ -78,6 +82,10 @@ void set_opt_cse (int value) libFIRM_opt &= ~OPT_CSE; } +int (get_opt_cse)(void) { + return _get_opt_cse(); +} + void set_opt_global_cse(int value) { if (value) @@ -86,6 +94,22 @@ void set_opt_global_cse(int value) libFIRM_opt &= ~OPT_GLOBAL_CSE; } +void set_opt_loop_unrolling (int value) +{ + if (value) + libFIRM_opt |= OPT_LOOP_UNROLLING; + else + libFIRM_opt &= ~OPT_LOOP_UNROLLING; +} + +void set_opt_loop_unrolling_verbose (int value) +{ + if (value) + libFIRM_verb |= OPT_LOOP_UNROLLING; + else + libFIRM_verb &= ~OPT_LOOP_UNROLLING; +} + void set_opt_strength_red (int value) { if (value) @@ -281,6 +305,14 @@ void set_opt_precise_exc_context(int value) #endif } +void set_opt_fragile_ops(int value) +{ + if (value) + libFIRM_opt |= OPT_FRAGILE_OPS; + else + libFIRM_opt &= ~OPT_FRAGILE_OPS; +} + /* Save the current optimization state. */ void save_optimization_state(optimization_state_t *state) {