patches/gcc/4.6.2/000-gcc-bug-54369.patch
author Florian Fainelli <f.fainelli@gmail.com>
Wed Sep 19 10:35:32 2012 +0200 (2012-09-19)
changeset 3049 f0ae157444dc
permissions -rw-r--r--
cc/gcc: backport upstream patches for GCC bug 54369

See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54369 for more information
This bug has a serious effect on Linux/MIPS and SPARC kernel builds.

Add the fix for these versions of gcc: 4.6.0, 4.6.2, 4.6.3, and 4.7.0.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
f@3049
     1
Author: ebotcazou
f@3049
     2
Date: Sun Sep  2 10:37:49 2012
f@3049
     3
New Revision: 190860
f@3049
     4
f@3049
     5
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860
f@3049
     6
Log:
f@3049
     7
    PR rtl-optimization/54369
f@3049
     8
    * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before
f@3049
     9
    calling dbr_schedule.
f@3049
    10
    * config/sparc/sparc.c (sparc_reorg): Likewise.
f@3049
    11
f@3049
    12
Modified:
f@3049
    13
    branches/gcc-4_6-branch/gcc/ChangeLog
f@3049
    14
    branches/gcc-4_6-branch/gcc/config/mips/mips.c
f@3049
    15
    branches/gcc-4_6-branch/gcc/config/sparc/sparc.c
f@3049
    16
---
f@3049
    17
--- gcc-4_6-branch/gcc/config/mips/mips.c	2012/09/02 10:36:54	190859
f@3049
    18
+++ gcc-4_6-branch/gcc/config/mips/mips.c	2012/09/02 10:37:49	190860
f@3049
    19
@@ -15083,7 +15083,10 @@
f@3049
    20
     }
f@3049
    21
 
f@3049
    22
   if (optimize > 0 && flag_delayed_branch)
f@3049
    23
-    dbr_schedule (get_insns ());
f@3049
    24
+    {
f@3049
    25
+      cleanup_barriers ();
f@3049
    26
+      dbr_schedule (get_insns ());
f@3049
    27
+    }
f@3049
    28
   mips_reorg_process_insns ();
f@3049
    29
   if (!TARGET_MIPS16
f@3049
    30
       && TARGET_EXPLICIT_RELOCS
f@3049
    31
--- gcc-4_6-branch/gcc/config/sparc/sparc.c	2012/09/02 10:36:54	190859
f@3049
    32
+++ gcc-4_6-branch/gcc/config/sparc/sparc.c	2012/09/02 10:37:49	190860
f@3049
    33
@@ -9456,7 +9456,10 @@
f@3049
    34
   /* We need to have the (essentially) final form of the insn stream in order
f@3049
    35
      to properly detect the various hazards.  Run delay slot scheduling.  */
f@3049
    36
   if (optimize > 0 && flag_delayed_branch)
f@3049
    37
-    dbr_schedule (get_insns ());
f@3049
    38
+    {
f@3049
    39
+      cleanup_barriers ();
f@3049
    40
+      dbr_schedule (get_insns ());
f@3049
    41
+    }
f@3049
    42
 
f@3049
    43
   /* Now look for specific patterns in the insn stream.  */
f@3049
    44
   for (insn = get_insns (); insn; insn = next)
f@3049
    45