]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/38740 (Incorrect delayed branch optimization)
authorJakub Jelinek <jakub@redhat.com>
Wed, 28 Jan 2009 16:05:41 +0000 (17:05 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 28 Jan 2009 16:05:41 +0000 (17:05 +0100)
PR rtl-optimization/38740
* reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
if !optimize.
* config/mips/mips.c (mips_reorg): Likewise.

From-SVN: r143733

gcc/ChangeLog
gcc/config/mips/mips.c
gcc/reorg.c

index 526398f92c83233090d394e6212bfab9b2b89f03..b2e3785683122e5aa99de4b5370b8b3696ca8f00 100644 (file)
@@ -1,3 +1,10 @@
+2009-01-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR rtl-optimization/38740
+       * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
+       if !optimize.
+       * config/mips/mips.c (mips_reorg): Likewise.
+
 2009-01-28  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/38926
index 55b1c22be66c3e5d7f2ec4ba1d0f610ca16dff8f..c98528e7eb424f940a6956b3d5689a36b2d09f17 100644 (file)
@@ -13296,7 +13296,7 @@ mips_reorg (void)
   mips16_lay_out_constants ();
   if (mips_r10k_cache_barrier != R10K_CACHE_BARRIER_NONE)
     r10k_insert_cache_barriers ();
-  if (flag_delayed_branch)
+  if (optimize > 0 && flag_delayed_branch)
     dbr_schedule (get_insns ());
   mips_reorg_process_insns ();
   if (!TARGET_MIPS16
index fd6a58e02eb94f87872fa1c5f399a16ac6f3d56a..8b3219ad446be66a597d93435e96d5e225edf8d5 100644 (file)
@@ -4046,7 +4046,8 @@ static bool
 gate_handle_delay_slots (void)
 {
 #ifdef DELAY_SLOTS
-  return flag_delayed_branch && !crtl->dbr_scheduled_p;
+  /* At -O0 dataflow info isn't updated after RA.  */
+  return optimize > 0 && flag_delayed_branch && !crtl->dbr_scheduled_p;
 #else
   return 0;
 #endif