From patchwork Wed Sep 19 08:57:05 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [1/4] patches/gcc: backport upstream patches for GCC bug 54369. From: Florian Fainelli X-Patchwork-Id: 184956 Message-Id: <4027372.l9M3506Cx8@flexo> To: "Yann E. MORIN" , crossgcc@sourceware.org Date: Wed, 19 Sep 2012 10:57:05 +0200 # HG changeset patch # User Florian Fainelli # Date 1348043732 -7200 # Node ID 3745957b0e7a8cc5ef2001a4b98f098bff6ef658 # Parent ff167977b16313c705e71779aa71e4b4f9588d6a patches/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. Signed-off-by: Florian Fainelli exporting patch: --- For unsubscribe information see http://sourceware.org/lists.html#faq diff -r ff167977b163 -r 3745957b0e7a patches/gcc/4.6.0/000-gcc-bug-54369.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc/4.6.0/000-gcc-bug-54369.patch Wed Sep 19 10:35:32 2012 +0200 @@ -0,0 +1,45 @@ +Author: ebotcazou +Date: Sun Sep 2 10:37:49 2012 +New Revision: 190860 + +URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860 +Log: + PR rtl-optimization/54369 + * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before + calling dbr_schedule. + * config/sparc/sparc.c (sparc_reorg): Likewise. + +Modified: + branches/gcc-4_6-branch/gcc/ChangeLog + branches/gcc-4_6-branch/gcc/config/mips/mips.c + branches/gcc-4_6-branch/gcc/config/sparc/sparc.c +--- +--- gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:37:49 190860 +@@ -15083,7 +15083,10 @@ + } + + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + mips_reorg_process_insns (); + if (!TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS +--- gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:37:49 190860 +@@ -9456,7 +9456,10 @@ + /* We need to have the (essentially) final form of the insn stream in order + to properly detect the various hazards. Run delay slot scheduling. */ + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + + /* Now look for specific patterns in the insn stream. */ + for (insn = get_insns (); insn; insn = next) + diff -r ff167977b163 -r 3745957b0e7a patches/gcc/4.6.1/000-gcc-bug-54369.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc/4.6.1/000-gcc-bug-54369.patch Wed Sep 19 10:35:32 2012 +0200 @@ -0,0 +1,45 @@ +Author: ebotcazou +Date: Sun Sep 2 10:37:49 2012 +New Revision: 190860 + +URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860 +Log: + PR rtl-optimization/54369 + * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before + calling dbr_schedule. + * config/sparc/sparc.c (sparc_reorg): Likewise. + +Modified: + branches/gcc-4_6-branch/gcc/ChangeLog + branches/gcc-4_6-branch/gcc/config/mips/mips.c + branches/gcc-4_6-branch/gcc/config/sparc/sparc.c +--- +--- gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:37:49 190860 +@@ -15083,7 +15083,10 @@ + } + + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + mips_reorg_process_insns (); + if (!TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS +--- gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:37:49 190860 +@@ -9456,7 +9456,10 @@ + /* We need to have the (essentially) final form of the insn stream in order + to properly detect the various hazards. Run delay slot scheduling. */ + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + + /* Now look for specific patterns in the insn stream. */ + for (insn = get_insns (); insn; insn = next) + diff -r ff167977b163 -r 3745957b0e7a patches/gcc/4.6.2/000-gcc-bug-54369.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc/4.6.2/000-gcc-bug-54369.patch Wed Sep 19 10:35:32 2012 +0200 @@ -0,0 +1,45 @@ +Author: ebotcazou +Date: Sun Sep 2 10:37:49 2012 +New Revision: 190860 + +URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860 +Log: + PR rtl-optimization/54369 + * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before + calling dbr_schedule. + * config/sparc/sparc.c (sparc_reorg): Likewise. + +Modified: + branches/gcc-4_6-branch/gcc/ChangeLog + branches/gcc-4_6-branch/gcc/config/mips/mips.c + branches/gcc-4_6-branch/gcc/config/sparc/sparc.c +--- +--- gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:37:49 190860 +@@ -15083,7 +15083,10 @@ + } + + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + mips_reorg_process_insns (); + if (!TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS +--- gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:37:49 190860 +@@ -9456,7 +9456,10 @@ + /* We need to have the (essentially) final form of the insn stream in order + to properly detect the various hazards. Run delay slot scheduling. */ + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + + /* Now look for specific patterns in the insn stream. */ + for (insn = get_insns (); insn; insn = next) + diff -r ff167977b163 -r 3745957b0e7a patches/gcc/4.6.3/000-gcc-bug-54369.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc/4.6.3/000-gcc-bug-54369.patch Wed Sep 19 10:35:32 2012 +0200 @@ -0,0 +1,45 @@ +Author: ebotcazou +Date: Sun Sep 2 10:37:49 2012 +New Revision: 190860 + +URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190860 +Log: + PR rtl-optimization/54369 + * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before + calling dbr_schedule. + * config/sparc/sparc.c (sparc_reorg): Likewise. + +Modified: + branches/gcc-4_6-branch/gcc/ChangeLog + branches/gcc-4_6-branch/gcc/config/mips/mips.c + branches/gcc-4_6-branch/gcc/config/sparc/sparc.c +--- +--- gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/mips/mips.c 2012/09/02 10:37:49 190860 +@@ -15083,7 +15083,10 @@ + } + + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + mips_reorg_process_insns (); + if (!TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS +--- gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:54 190859 ++++ gcc-4_6-branch/gcc/config/sparc/sparc.c 2012/09/02 10:37:49 190860 +@@ -9456,7 +9456,10 @@ + /* We need to have the (essentially) final form of the insn stream in order + to properly detect the various hazards. Run delay slot scheduling. */ + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + + /* Now look for specific patterns in the insn stream. */ + for (insn = get_insns (); insn; insn = next) + diff -r ff167977b163 -r 3745957b0e7a patches/gcc/4.7.0/000-gcc-bug-54369.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc/4.7.0/000-gcc-bug-54369.patch Wed Sep 19 10:35:32 2012 +0200 @@ -0,0 +1,45 @@ +Author: ebotcazou +Date: Sun Sep 2 10:36:54 2012 +New Revision: 190859 + +URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190859 +Log: + PR rtl-optimization/54369 + * config/mips/mips.c (mips_reorg): Invoke cleanup_barriers before + calling dbr_schedule. + * config/sparc/sparc.c (sparc_reorg): Likewise. + +Modified: + branches/gcc-4_7-branch/gcc/ChangeLog + branches/gcc-4_7-branch/gcc/config/mips/mips.c + branches/gcc-4_7-branch/gcc/config/sparc/sparc.c +--- +--- gcc-4_7-branch/gcc/config/mips/mips.c 2012/09/02 10:36:27 190858 ++++ gcc-4_7-branch/gcc/config/mips/mips.c 2012/09/02 10:36:54 190859 +@@ -15415,7 +15415,10 @@ + } + + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + mips_reorg_process_insns (); + if (!TARGET_MIPS16 + && TARGET_EXPLICIT_RELOCS +--- gcc-4_7-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:27 190858 ++++ gcc-4_7-branch/gcc/config/sparc/sparc.c 2012/09/02 10:36:54 190859 +@@ -10663,7 +10663,10 @@ + /* We need to have the (essentially) final form of the insn stream in order + to properly detect the various hazards. Run delay slot scheduling. */ + if (optimize > 0 && flag_delayed_branch) +- dbr_schedule (get_insns ()); ++ { ++ cleanup_barriers (); ++ dbr_schedule (get_insns ()); ++ } + + /* Now look for specific patterns in the insn stream. */ + for (insn = get_insns (); insn; insn = next) +