summaryrefslogtreecommitdiff
path: root/patches/gcc/4.7.0
diff options
context:
space:
mode:
Diffstat (limited to 'patches/gcc/4.7.0')
-rw-r--r--patches/gcc/4.7.0/000-gcc-bug-54369.patch45
-rw-r--r--patches/gcc/4.7.0/001-gcc-bug-54494.patch37
-rw-r--r--patches/gcc/4.7.0/100-PR52734-tree-ssa-tail-merge.patch91
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);