Commit 6e02b5f5 by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/54693 (VTA guality issues with loops)

	PR debug/54693
	* tree-flow.h (propagate_threaded_block_debug_into): New prototype.
	* tree-ssa-threadedge.c (propagate_threaded_block_debug_into): No
	longer static.
	* tree-ssa-loop-ch.c (copy_loop_headers): Use it.

	* gcc.dg/guality/pr54693-2.c: New test.

From-SVN: r193281
parent 4c166488
2012-11-07 Jakub Jelinek <jakub@redhat.com>
PR debug/54693
* tree-flow.h (propagate_threaded_block_debug_into): New prototype.
* tree-ssa-threadedge.c (propagate_threaded_block_debug_into): No
longer static.
* tree-ssa-loop-ch.c (copy_loop_headers): Use it.
2012-11-06 Sterling Augustine <saugustine@google.com> 2012-11-06 Sterling Augustine <saugustine@google.com>
* dwarf2out.c (output_comdat_type_unit): Check for OBJECT_FORMAT_ELF. * dwarf2out.c (output_comdat_type_unit): Check for OBJECT_FORMAT_ELF.
2012-11-07 Jakub Jelinek <jakub@redhat.com>
PR debug/54693
* gcc.dg/guality/pr54693-2.c: New test.
2012-11-06 Andrew Pinski <apinski@cavium.com> 2012-11-06 Andrew Pinski <apinski@cavium.com>
* gcc.target/aarch64/vect-fmaxv-fminv-compile.c: Add -fno-vect-cost-model. * gcc.target/aarch64/vect-fmaxv-fminv-compile.c: Add -fno-vect-cost-model.
......
/* PR debug/54693 */
/* { dg-do run } */
/* { dg-options "-g" } */
int v;
__attribute__((noinline, noclone)) void
bar (int i)
{
v = i;
asm volatile ("" : : "r" (i) : "memory");
}
__attribute__((noinline, noclone)) void
foo (int x, int y, int z)
{
int i = 0;
while (x > 3 && y > 3 && z > 3)
{ /* { dg-final { gdb-test 21 "i" "v + 1" } } */
/* { dg-final { gdb-test 21 "x" "10 - i" } } */
bar (i); /* { dg-final { gdb-test 21 "y" "20 - 2 * i" } } */
/* { dg-final { gdb-test 21 "z" "30 - 3 * i" } } */
i++, x--, y -= 2, z -= 3;
}
}
int
main ()
{
v = -1;
foo (10, 20, 30);
return 0;
}
/* Data and Control Flow Analysis for Trees. /* Data and Control Flow Analysis for Trees.
Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Copyright (C) 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
Free Software Foundation, Inc. 2012 Free Software Foundation, Inc.
Contributed by Diego Novillo <dnovillo@redhat.com> Contributed by Diego Novillo <dnovillo@redhat.com>
This file is part of GCC. This file is part of GCC.
...@@ -689,6 +689,7 @@ extern void set_ssa_name_value (tree, tree); ...@@ -689,6 +689,7 @@ extern void set_ssa_name_value (tree, tree);
extern bool potentially_threadable_block (basic_block); extern bool potentially_threadable_block (basic_block);
extern void thread_across_edge (gimple, edge, bool, extern void thread_across_edge (gimple, edge, bool,
VEC(tree, heap) **, tree (*) (gimple, gimple)); VEC(tree, heap) **, tree (*) (gimple, gimple));
extern void propagate_threaded_block_debug_into (basic_block, basic_block);
/* In tree-ssa-loop-im.c */ /* In tree-ssa-loop-im.c */
/* The possibilities of statement movement. */ /* The possibilities of statement movement. */
......
/* Loop header copying on trees. /* Loop header copying on trees.
Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 2011, 2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -197,6 +197,7 @@ copy_loop_headers (void) ...@@ -197,6 +197,7 @@ copy_loop_headers (void)
entry = loop_preheader_edge (loop); entry = loop_preheader_edge (loop);
propagate_threaded_block_debug_into (exit->dest, entry->dest);
if (!gimple_duplicate_sese_region (entry, exit, bbs, n_bbs, copied_bbs)) if (!gimple_duplicate_sese_region (entry, exit, bbs, n_bbs, copied_bbs))
{ {
fprintf (dump_file, "Duplication failed.\n"); fprintf (dump_file, "Duplication failed.\n");
......
/* SSA Jump Threading /* SSA Jump Threading
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by Jeff Law <law@redhat.com> Contributed by Jeff Law <law@redhat.com>
...@@ -617,7 +617,7 @@ DEF_VEC_ALLOC_O_STACK(tree); ...@@ -617,7 +617,7 @@ DEF_VEC_ALLOC_O_STACK(tree);
/* Copy debug stmts from DEST's chain of single predecessors up to /* Copy debug stmts from DEST's chain of single predecessors up to
SRC, so that we don't lose the bindings as PHI nodes are introduced SRC, so that we don't lose the bindings as PHI nodes are introduced
when DEST gains new predecessors. */ when DEST gains new predecessors. */
static void void
propagate_threaded_block_debug_into (basic_block dest, basic_block src) propagate_threaded_block_debug_into (basic_block dest, basic_block src)
{ {
if (!MAY_HAVE_DEBUG_STMTS) if (!MAY_HAVE_DEBUG_STMTS)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment