diff mbox

Improve detection of widening multiplication in the vectorizer

Message ID BANLkTi=kwCb71z5_n6U1P497uggA5boMyw@mail.gmail.com
State Accepted
Headers show

Commit Message

Ira Rosen June 1, 2011, 11:37 a.m. UTC
On 1 June 2011 12:42, Richard Guenther <richard.guenther@gmail.com> wrote:

> Did you think about moving pass_optimize_widening_mul before
> loop optimizations?  Does that pass catch the cases you are
> teaching the pattern recognizer?  I think we should try to expose
> these more complicated instructions to loop optimizers.
>

pass_optimize_widening_mul doesn't catch these cases, but I can try to
teach it instead of the vectorizer.
I am now testing


to see how it affects other loop optimizations (vectorizer pattern
tests obviously fail).

Thanks,
Ira

> Thanks,
> Richard.
>
diff mbox

Patch

Index: passes.c
===================================================================
--- passes.c    (revision 174391)
+++ passes.c    (working copy)
@@ -870,6 +870,7 @@ 
       NEXT_PASS (pass_split_crit_edges);
       NEXT_PASS (pass_pre);
       NEXT_PASS (pass_sink_code);
+      NEXT_PASS (pass_optimize_widening_mul);
       NEXT_PASS (pass_tree_loop);
        {
          struct opt_pass **p = &pass_tree_loop.pass.sub;
@@ -934,7 +935,6 @@ 
       NEXT_PASS (pass_forwprop);
       NEXT_PASS (pass_phiopt);
       NEXT_PASS (pass_fold_builtins);
-      NEXT_PASS (pass_optimize_widening_mul);
       NEXT_PASS (pass_tail_calls);
       NEXT_PASS (pass_rename_ssa_copies);
       NEXT_PASS (pass_uncprop);