This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Do not compute the DF_NOTE problem for the passes in gcse.c and store-motion.c
- From: Richard Guenther <richard dot guenther at gmail dot com>
- To: Steven Bosscher <stevenb dot gcc at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Guenther <rguenther at suse dot de>
- Date: Wed, 6 Jan 2010 16:51:55 +0100
- Subject: Re: [patch] Do not compute the DF_NOTE problem for the passes in gcse.c and store-motion.c
- References: <571f6b511001060749j5fec70f4y2451e69dbebe2a22@mail.gmail.com>
On Wed, Jan 6, 2010 at 4:49 PM, Steven Bosscher <stevenb.gcc@gmail.com> wrote:
> Hi,
>
> More low-hanging fruit I noticed when looking at PR18687 profiles.
> good for just over 1.0% compile-time improvement on infcodes100.c.
>
> The issue here, is that we add/remove the DF_NOTE problem all the
> time, but the notes had no effect in these passes: INSNs with multiple
> SETs are ignored by these passes.
>
> Bootstrapped and tested on ia64-unknown-linux-gnu. OK for trunk?
Ok.
Thanks,
Richard.
> Ciao!
> Steven
>
>
> ? ? ? ?* gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
> ? ? ? ?Do not add the DF_NOTE problem.
> ? ? ? ?* store-motion.c (execute_rtl_store_motion): Likewise.
>
> Index: gcse.c
> ===================================================================
> --- gcse.c ? ? ?(revision 155675)
> +++ gcse.c ? ? ?(working copy)
> @@ -5078,7 +5078,6 @@ static unsigned int
> ?execute_rtl_cprop (void)
> ?{
> ? delete_unreachable_blocks ();
> - ?df_note_add_problem ();
> ? df_set_flags (DF_LR_RUN_DCE);
> ? df_analyze ();
> ? flag_rerun_cse_after_global_opts |= one_cprop_pass ();
> @@ -5098,7 +5097,6 @@ static unsigned int
> ?execute_rtl_pre (void)
> ?{
> ? delete_unreachable_blocks ();
> - ?df_note_add_problem ();
> ? df_analyze ();
> ? flag_rerun_cse_after_global_opts |= one_pre_gcse_pass ();
> ? return 0;
> @@ -5120,7 +5118,6 @@ static unsigned int
> ?execute_rtl_hoist (void)
> ?{
> ? delete_unreachable_blocks ();
> - ?df_note_add_problem ();
> ? df_analyze ();
> ? flag_rerun_cse_after_global_opts |= one_code_hoisting_pass ();
> ? return 0;
> Index: store-motion.c
> ===================================================================
> --- store-motion.c ? ? ?(revision 155675)
> +++ store-motion.c ? ? ?(working copy)
> @@ -1237,7 +1237,6 @@ static unsigned int
> ?execute_rtl_store_motion (void)
> ?{
> ? delete_unreachable_blocks ();
> - ?df_note_add_problem ();
> ? df_analyze ();
> ? flag_rerun_cse_after_global_opts |= one_store_motion_pass ();
> ? return 0;
>