This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add SCEV cprop dump
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Marek Polacek <polacek at redhat dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 16 May 2013 11:05:06 +0200
- Subject: Re: [PATCH] Add SCEV cprop dump
- References: <20130515120731 dot GB14240 at redhat dot com> <CAFiYyc3Bhv7Q8PzGL0qBX=+ABXeP5+dHcN7hGXCOw1aS6i5oZA at mail dot gmail dot com> <20130515143552 dot GC14240 at redhat dot com>
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