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]

[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;


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