https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90944
--- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> ---
The following fixes the issue.  Does anyone have a better suggestion?

Index: combine.c
===================================================================
--- combine.c   (revision 272620)
+++ combine.c   (working copy)
@@ -15051,10 +15051,14 @@ make_more_copies (void)
     }
 }

+int pass_combine_count;
+
 /* Try combining insns through substitution.  */
 static unsigned int
 rest_of_handle_combine (void)
 {
+  pass_combine_count++;
+
   make_more_copies ();

   df_set_flags (DF_LR_RUN_DCE + DF_DEFER_INSN_RESCAN);
Index: passes.c
===================================================================
--- passes.c    (revision 272620)
+++ passes.c    (working copy)
@@ -342,6 +342,8 @@ rest_of_type_compilation (tree type, int




+extern int pass_combine_count;
+
 void
 pass_manager::
 finish_optimization_passes (void)
@@ -359,7 +361,7 @@ finish_optimization_passes (void)
       dumps->dump_finish (pass_profile_1->static_pass_number);
     }

-  if (optimize > 0)
+  if (optimize > 0 && pass_combine_count > 0)
     {
       dumps->dump_start (pass_combine_1->static_pass_number, NULL);
       print_combine_total_stats ();

Reply via email to