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