diff options
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index aee7e4d02ba..2e67f620ea0 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -2529,21 +2529,6 @@ tree_ssa_lim (void) /* Loop invariant motion pass. */ -static unsigned int -tree_ssa_loop_im (void) -{ - if (number_of_loops (cfun) <= 1) - return 0; - - return tree_ssa_lim (); -} - -static bool -gate_tree_ssa_loop_im (void) -{ - return flag_tree_loop_im != 0; -} - namespace { const pass_data pass_data_lim = @@ -2551,7 +2536,6 @@ const pass_data pass_data_lim = GIMPLE_PASS, /* type */ "lim", /* name */ OPTGROUP_LOOP, /* optinfo_flags */ - true, /* has_gate */ true, /* has_execute */ TV_LIM, /* tv_id */ PROP_cfg, /* properties_required */ @@ -2570,11 +2554,20 @@ public: /* opt_pass methods: */ opt_pass * clone () { return new pass_lim (m_ctxt); } - bool gate () { return gate_tree_ssa_loop_im (); } - unsigned int execute () { return tree_ssa_loop_im (); } + virtual bool gate (function *) { return flag_tree_loop_im != 0; } + virtual unsigned int execute (function *); }; // class pass_lim +unsigned int +pass_lim::execute (function *fun) +{ + if (number_of_loops (fun) <= 1) + return 0; + + return tree_ssa_lim (); +} + } // anon namespace gimple_opt_pass * |