diff options
Diffstat (limited to 'patches/gcc/4.7.0')
-rw-r--r-- | patches/gcc/4.7.0/000-gcc-bug-54369.patch | 45 | ||||
-rw-r--r-- | patches/gcc/4.7.0/001-gcc-bug-54494.patch | 37 | ||||
-rw-r--r-- | patches/gcc/4.7.0/100-PR52734-tree-ssa-tail-merge.patch | 91 |
3 files changed, 0 insertions, 173 deletions
diff --git a/patches/gcc/4.7.0/000-gcc-bug-54369.patch b/patches/gcc/4.7.0/000-gcc-bug-54369.patch deleted file mode 100644 index 60a88b9..0000000 --- a/patches/gcc/4.7.0/000-gcc-bug-54369.patch +++ /dev/null @@ -1,45 +0,0 @@ -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) - diff --git a/patches/gcc/4.7.0/001-gcc-bug-54494.patch b/patches/gcc/4.7.0/001-gcc-bug-54494.patch deleted file mode 100644 index ce4ae77..0000000 --- a/patches/gcc/4.7.0/001-gcc-bug-54494.patch +++ /dev/null @@ -1,37 +0,0 @@ -URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191025 -Log: -2012-09-06 Andrew Pinski <apinski@cavium.com> - - PR tree-opt/54494 - * tree-inline.c (remap_gimple_op_r): Copy TREE_SIDE_EFFECTS also. -2012-09-06 Andrew Pinski <apinski@cavium.com> - - PR tree-opt/54494 - * gcc.dg/tree-ssa/strlen-1.c: New testcase. - - -Added: - branches/gcc-4_7-branch/gcc/testsuite/gcc.dg/tree-ssa/strlen-1.c - - copied unchanged from r191014, -trunk/gcc/testsuite/gcc.dg/tree-ssa/strlen-1.c -Modified: - branches/gcc-4_7-branch/ (props changed) - branches/gcc-4_7-branch/gcc/ChangeLog - branches/gcc-4_7-branch/gcc/testsuite/ChangeLog - branches/gcc-4_7-branch/gcc/tree-inline.c - -Propchange: branches/gcc-4_7-branch/ - ('svn:mergeinfo' modified) - ---- ---- gcc-4_7-branch/gcc/tree-inline.c 2012/09/06 13:47:33 191024 -+++ gcc-4_7-branch/gcc/tree-inline.c 2012/09/06 13:51:37 191025 -@@ -871,6 +871,7 @@ - ptr, TREE_OPERAND (*tp, 1)); - TREE_THIS_NOTRAP (*tp) = TREE_THIS_NOTRAP (old); - TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old); -+ TREE_SIDE_EFFECTS (*tp) = TREE_SIDE_EFFECTS (old); - TREE_NO_WARNING (*tp) = TREE_NO_WARNING (old); - *walk_subtrees = 0; - return NULL; - diff --git a/patches/gcc/4.7.0/100-PR52734-tree-ssa-tail-merge.patch b/patches/gcc/4.7.0/100-PR52734-tree-ssa-tail-merge.patch deleted file mode 100644 index 5df5431..0000000 --- a/patches/gcc/4.7.0/100-PR52734-tree-ssa-tail-merge.patch +++ /dev/null @@ -1,91 +0,0 @@ ------------------------------------------------------------------------- -r186424 | vries | 2012-04-13 18:44:18 +0200 (Fri, 13 Apr 2012) | 12 lines - -2012-04-13 Tom de Vries <tom@codesourcery.com> - - Backport from mainline r186418. - - 2012-04-13 Tom de Vries <tom@codesourcery.com> - - * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add - parameters vuse and vuse_escaped. - (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to - gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and - vuse1 != vuse2. - ------------------------------------------------------------------------- -Index: gcc/tree-ssa-tail-merge.c -=================================================================== ---- gcc-4.7.0/gcc/tree-ssa-tail-merge.c (revision 186423) -+++ gcc-4.7.0/gcc/tree-ssa-tail-merge.c (revision 186424) -@@ -1123,18 +1123,31 @@ - } - } - --/* Let GSI skip backwards over local defs. */ -+/* Let GSI skip backwards over local defs. Return the earliest vuse in VUSE. -+ Return true in VUSE_ESCAPED if the vuse influenced a SSA_OP_DEF of one of the -+ processed statements. */ - - static void --gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi) -+gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi, tree *vuse, -+ bool *vuse_escaped) - { - gimple stmt; -+ tree lvuse; - - while (true) - { - if (gsi_end_p (*gsi)) - return; - stmt = gsi_stmt (*gsi); -+ -+ lvuse = gimple_vuse (stmt); -+ if (lvuse != NULL_TREE) -+ { -+ *vuse = lvuse; -+ if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_DEF)) -+ *vuse_escaped = true; -+ } -+ - if (!(is_gimple_assign (stmt) && local_def (gimple_get_lhs (stmt)) - && !gimple_has_side_effects (stmt))) - return; -@@ -1150,9 +1163,11 @@ - { - gimple_stmt_iterator gsi1 = gsi_last_nondebug_bb (bb1); - gimple_stmt_iterator gsi2 = gsi_last_nondebug_bb (bb2); -+ tree vuse1 = NULL_TREE, vuse2 = NULL_TREE; -+ bool vuse_escaped = false; - -- gsi_advance_bw_nondebug_nonlocal (&gsi1); -- gsi_advance_bw_nondebug_nonlocal (&gsi2); -+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped); -+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped); - - while (!gsi_end_p (gsi1) && !gsi_end_p (gsi2)) - { -@@ -1161,13 +1176,20 @@ - - gsi_prev_nondebug (&gsi1); - gsi_prev_nondebug (&gsi2); -- gsi_advance_bw_nondebug_nonlocal (&gsi1); -- gsi_advance_bw_nondebug_nonlocal (&gsi2); -+ gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped); -+ gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped); - } - - if (!(gsi_end_p (gsi1) && gsi_end_p (gsi2))) - return; - -+ /* If the incoming vuses are not the same, and the vuse escaped into an -+ SSA_OP_DEF, then merging the 2 blocks will change the value of the def, -+ which potentially means the semantics of one of the blocks will be changed. -+ TODO: make this check more precise. */ -+ if (vuse_escaped && vuse1 != vuse2) -+ return; -+ - if (dump_file) - fprintf (dump_file, "find_duplicates: <bb %d> duplicate of <bb %d>\n", - bb1->index, bb2->index); |