mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/46107 (-ftree-loop-distribute-patterns caused verify_loop_structure problem)
PR tree-optimization/46107 * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags if cfg_hook_duplicate_loop_to_header_edge failed. * gcc.c-torture/compile/pr46107.c: New test. From-SVN: r166234
This commit is contained in:
parent
48215350c2
commit
71056fef3b
|
|
@ -1,3 +1,9 @@
|
||||||
|
2010-11-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/46107
|
||||||
|
* cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
|
||||||
|
if cfg_hook_duplicate_loop_to_header_edge failed.
|
||||||
|
|
||||||
2010-11-03 Ian Lance Taylor <iant@google.com>
|
2010-11-03 Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
PR lto/46273
|
PR lto/46273
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
/* Loop manipulation code for GNU compiler.
|
/* Loop manipulation code for GNU compiler.
|
||||||
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 Free Software
|
Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
|
||||||
Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GCC.
|
This file is part of GCC.
|
||||||
|
|
||||||
|
|
@ -1538,7 +1538,10 @@ loop_version (struct loop *loop,
|
||||||
/* Duplicate loop. */
|
/* Duplicate loop. */
|
||||||
if (!cfg_hook_duplicate_loop_to_header_edge (loop, entry, 1,
|
if (!cfg_hook_duplicate_loop_to_header_edge (loop, entry, 1,
|
||||||
NULL, NULL, NULL, 0))
|
NULL, NULL, NULL, 0))
|
||||||
|
{
|
||||||
|
entry->flags |= irred_flag;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* After duplication entry edge now points to new loop head block.
|
/* After duplication entry edge now points to new loop head block.
|
||||||
Note down new head as second_head. */
|
Note down new head as second_head. */
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
2010-11-03 Jakub Jelinek <jakub@redhat.com>
|
2010-11-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/46107
|
||||||
|
* gcc.c-torture/compile/pr46107.c: New test.
|
||||||
|
|
||||||
PR debug/46252
|
PR debug/46252
|
||||||
* gcc.dg/pr46252.c: New test.
|
* gcc.dg/pr46252.c: New test.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
/* PR tree-optimization/46107 */
|
||||||
|
|
||||||
|
int foo (void) __attribute__ ((noreturn));
|
||||||
|
|
||||||
|
void
|
||||||
|
bar (int x, int *y, int z)
|
||||||
|
{
|
||||||
|
static void *j[] = { &&l1, &&l2 };
|
||||||
|
l1:
|
||||||
|
if (*y)
|
||||||
|
goto *j[z];
|
||||||
|
foo ();
|
||||||
|
l2:
|
||||||
|
*y ^= (x & 1) ? -1 : 0;
|
||||||
|
goto *j[x];
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue