This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add SCEV cprop dump


On Wed, May 15, 2013 at 4:35 PM, Marek Polacek <polacek@redhat.com> wrote:
> On Wed, May 15, 2013 at 02:58:22PM +0200, Richard Biener wrote:
>> On Wed, May 15, 2013 at 2:07 PM, Marek Polacek <polacek@redhat.com> wrote:
>> >           /* Replace the uses of the name.  */
>> >           if (name != ev)
>> > -           replace_uses_by (name, ev);
>> > +           {
>> > +             replace_uses_by (name, ev);
>> > +             if (dump_file && (dump_flags & TDF_SCEV))
>>
>> should be without dump_flags checking
>
> Ok.
>
>> > +               {
>> > +                 fprintf (dump_file, "(replace_stmt \n  (");
>> > +                 print_generic_expr (dump_file, name, 0);
>> > +                 fprintf (dump_file, " with ");
>> > +                 print_generic_expr (dump_file, ev, 0);
>> > +                 fprintf (dump_file, ")\n) \n");
>>
>> and no need to do it the LISP-y way ;)
>
> Good, I didn't like it much anyway.
>
>> I would have liked to see failed attempts as well, then with TDF_DETAILS.
>> Failed attempts for the "real" final value replacement stuff (I'm not sure
>> the constant propagation part is worth keeping ... how often does it trigger?)
>
> Not much often: I've measured it and it happens only in ~150 testcases
> from the whole c/c++/fortran testsuites.  So, like this?  Thanks,
>
> It looks like:
> not replacing:
>   n_4 = PHI <n_3(4)>
>
> and
>
> final value replacement:
>   n_4 = PHI <n_3(4)>
>   with
>   n_4 = _1 + _12;

Ok.

Thanks,
Richard.

> 2013-05-15  Marek Polacek  <polacek@redhat.com>
>
>         * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
>
> --- gcc/tree-scalar-evolution.c.mp      2013-05-15 15:09:06.579122696 +0200
> +++ gcc/tree-scalar-evolution.c 2013-05-15 16:32:11.569217537 +0200
> @@ -3385,12 +3385,24 @@ scev_const_prop (void)
>                  to be turned into n %= 45.  */
>               || expression_expensive_p (def))
>             {
> +             if (dump_file && (dump_flags & TDF_DETAILS))
> +               {
> +                 fprintf (dump_file, "not replacing:\n  ");
> +                 print_gimple_stmt (dump_file, phi, 0, 0);
> +                 fprintf (dump_file, "\n");
> +               }
>               gsi_next (&psi);
>               continue;
>             }
>
>           /* Eliminate the PHI node and replace it by a computation outside
>              the loop.  */
> +         if (dump_file)
> +           {
> +             fprintf (dump_file, "\nfinal value replacement:\n  ");
> +             print_gimple_stmt (dump_file, phi, 0, 0);
> +             fprintf (dump_file, "  with\n  ");
> +           }
>           def = unshare_expr (def);
>           remove_phi_node (&psi, false);
>
> @@ -3398,6 +3410,11 @@ scev_const_prop (void)
>                                           true, GSI_SAME_STMT);
>           ass = gimple_build_assign (rslt, def);
>           gsi_insert_before (&bsi, ass, GSI_SAME_STMT);
> +         if (dump_file)
> +           {
> +             print_gimple_stmt (dump_file, ass, 0, 0);
> +             fprintf (dump_file, "\n");
> +           }
>         }
>      }
>    return 0;
>
>         Marek


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]