diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0252-PR-debug-48159.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0252-PR-debug-48159.patch | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0252-PR-debug-48159.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0252-PR-debug-48159.patch deleted file mode 100644 index 814028e1b..000000000 --- a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0252-PR-debug-48159.patch +++ /dev/null @@ -1,198 +0,0 @@ -From 36c5622ac8aca9636fb541d3689b9dd3ca9e0c27 Mon Sep 17 00:00:00 2001 -From: jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> -Date: Wed, 11 May 2011 13:07:54 +0000 -Subject: [PATCH] PR debug/48159 - * tree-ssa.c (reset_debug_uses): New function. - * tree-flow.h (reset_debug_uses): New prototype. - * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. - * tree-loop-distribution.c (generate_loops_for_partition): Call - reset_debug_uses on the stmts that will be removed. Keep around - all debug stmts, don't count them as bits in partition bitmap. - (generate_builtin): Don't count debug stmts or labels as bits in - partition bitmap. - - * gcc.dg/pr48159-1.c: New test. - * gcc.dg/pr48159-2.c: New test. - - -git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@173657 138bc75d-0d04-0410-961f-82ee72b054a4 - -index 3b64229..209b80b 100644 -new file mode 100644 -index 0000000..cd67e63 ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/pr48159-1.c -@@ -0,0 +1,10 @@ -+/* PR debug/48159 */ -+/* { dg-do compile } */ -+/* { dg-options "-O3 -fcompare-debug" } */ -+ -+void -+foo (double x, int y, double *__restrict z, double *__restrict w) -+{ -+ while (y--) -+ *z++ = (*w++ = 0) * x; -+} -diff --git a/gcc/testsuite/gcc.dg/pr48159-2.c b/gcc/testsuite/gcc.dg/pr48159-2.c -new file mode 100644 -index 0000000..25596bf ---- /dev/null -+++ b/gcc/testsuite/gcc.dg/pr48159-2.c -@@ -0,0 +1,22 @@ -+/* PR debug/48159 */ -+/* { dg-do compile } */ -+/* { dg-options "-O2 -ftree-loop-distribution -fcompare-debug" } */ -+ -+int foo (int * __restrict__ ia, int * __restrict__ ib, -+ int * __restrict__ oxa, int * __restrict__ oxb) -+{ -+ int i; -+ int oya[52], oyb[52]; -+ for (i = 0; i < 52; i++) -+ { -+ int w1 = ia[i]; -+ int w2 = oxa[i]; -+ int w3 = ib[i]; -+ int w4 = oxb[i]; -+ int w5 = w1 + w2 + 5; -+ oya[i] = (w1 * w2) >> 10; -+ int w6 = w3 + w4 + 6; -+ oyb[i] = (w3 * w4) >> 10; -+ } -+ return oya[22] + oyb[21]; -+} -diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c -index 54cb46c..39eab47 100644 ---- a/gcc/tree-data-ref.c -+++ b/gcc/tree-data-ref.c -@@ -1,5 +1,5 @@ - /* Data references and dependences detectors. -- Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -+ Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. - Contributed by Sebastian Pop <pop@cri.ensmp.fr> - -@@ -4975,7 +4975,7 @@ stmts_from_loop (struct loop *loop, VEC (gimple, heap) **stmts) - for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi)) - { - stmt = gsi_stmt (bsi); -- if (gimple_code (stmt) != GIMPLE_LABEL) -+ if (gimple_code (stmt) != GIMPLE_LABEL && !is_gimple_debug (stmt)) - VEC_safe_push (gimple, heap, *stmts, stmt); - } - } -diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h -index 14c8827..0777aec 100644 ---- a/gcc/tree-flow.h -+++ b/gcc/tree-flow.h -@@ -559,6 +559,7 @@ extern void walk_use_def_chains (tree, walk_use_def_chains_fn, void *, bool); - - void insert_debug_temps_for_defs (gimple_stmt_iterator *); - void insert_debug_temp_for_var_def (gimple_stmt_iterator *, tree); -+void reset_debug_uses (gimple); - void release_defs_bitset (bitmap toremove); - - /* In tree-into-ssa.c */ -diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c -index 5b147e3..1d6944e 100644 ---- a/gcc/tree-loop-distribution.c -+++ b/gcc/tree-loop-distribution.c -@@ -1,5 +1,5 @@ - /* Loop distribution. -- Copyright (C) 2006, 2007, 2008, 2009, 2010 -+ Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 - Free Software Foundation, Inc. - Contributed by Georges-Andre Silber <Georges-Andre.Silber@ensmp.fr> - and Sebastian Pop <sebastian.pop@amd.com>. -@@ -181,6 +181,25 @@ generate_loops_for_partition (struct loop *loop, bitmap partition, bool copy_p) - stmts_from_loop. */ - bbs = get_loop_body_in_dom_order (loop); - -+ if (MAY_HAVE_DEBUG_STMTS) -+ for (x = 0, i = 0; i < loop->num_nodes; i++) -+ { -+ basic_block bb = bbs[i]; -+ -+ for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi)) -+ if (!bitmap_bit_p (partition, x++)) -+ reset_debug_uses (gsi_stmt (bsi)); -+ -+ for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi)) -+ { -+ gimple stmt = gsi_stmt (bsi); -+ if (gimple_code (stmt) != GIMPLE_LABEL -+ && !is_gimple_debug (stmt) -+ && !bitmap_bit_p (partition, x++)) -+ reset_debug_uses (stmt); -+ } -+ } -+ - for (x = 0, i = 0; i < loop->num_nodes; i++) - { - basic_block bb = bbs[i]; -@@ -199,7 +218,8 @@ generate_loops_for_partition (struct loop *loop, bitmap partition, bool copy_p) - for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi);) - { - gimple stmt = gsi_stmt (bsi); -- if (gimple_code (gsi_stmt (bsi)) != GIMPLE_LABEL -+ if (gimple_code (stmt) != GIMPLE_LABEL -+ && !is_gimple_debug (stmt) - && !bitmap_bit_p (partition, x++)) - { - unlink_stmt_vdef (stmt); -@@ -312,7 +332,9 @@ generate_builtin (struct loop *loop, bitmap partition, bool copy_p) - { - gimple stmt = gsi_stmt (bsi); - -- if (bitmap_bit_p (partition, x++) -+ if (gimple_code (stmt) != GIMPLE_LABEL -+ && !is_gimple_debug (stmt) -+ && bitmap_bit_p (partition, x++) - && is_gimple_assign (stmt) - && !is_gimple_reg (gimple_assign_lhs (stmt))) - { -diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c -index da6cc9b..0455680 100644 ---- a/gcc/tree-ssa.c -+++ b/gcc/tree-ssa.c -@@ -507,6 +507,37 @@ insert_debug_temps_for_defs (gimple_stmt_iterator *gsi) - } - } - -+/* Reset all debug stmts that use SSA_NAME(s) defined in STMT. */ -+ -+void -+reset_debug_uses (gimple stmt) -+{ -+ ssa_op_iter op_iter; -+ def_operand_p def_p; -+ imm_use_iterator imm_iter; -+ gimple use_stmt; -+ -+ if (!MAY_HAVE_DEBUG_STMTS) -+ return; -+ -+ FOR_EACH_PHI_OR_STMT_DEF (def_p, stmt, op_iter, SSA_OP_DEF) -+ { -+ tree var = DEF_FROM_PTR (def_p); -+ -+ if (TREE_CODE (var) != SSA_NAME) -+ continue; -+ -+ FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, var) -+ { -+ if (!gimple_debug_bind_p (use_stmt)) -+ continue; -+ -+ gimple_debug_bind_reset_value (use_stmt); -+ update_stmt (use_stmt); -+ } -+ } -+} -+ - /* Delete SSA DEFs for SSA versions in the TOREMOVE bitmap, removing - dominated stmts before their dominators, so that release_ssa_defs - stands a chance of propagating DEFs into debug bind stmts. */ --- -1.7.0.4 - |