This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] Do not compute the DF_NOTE problem for the passes in gcse.c and store-motion.c
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>, Richard Guenther <rguenther at suse dot de>
- Date: Wed, 6 Jan 2010 16:49:31 +0100
- Subject: [patch] Do not compute the DF_NOTE problem for the passes in gcse.c and store-motion.c
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?
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;