re PR bootstrap/56689 (internal compiler error: in get_loop_body, at cfgloop.c:841)
2013-03-25 Richard Biener <rguenther@suse.de> PR tree-optimization/56689 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed any edge. * gcc.dg/torture/pr56689.c: New testcase. From-SVN: r197039
This commit is contained in:
parent
374001cbee
commit
051b944668
|
@ -1,3 +1,9 @@
|
|||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/56689
|
||||
* tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
|
||||
any edge.
|
||||
|
||||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2013-03-25 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/56689
|
||||
* gcc.dg/torture/pr56689.c: New testcase.
|
||||
|
||||
2013-03-25 Kai Tietz <ktietz@redhat.com>
|
||||
|
||||
* g++.dg/torture/20121105-1.C: Adjust for LLP64 targets.
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
extern int baz ();
|
||||
extern void bar (void);
|
||||
extern void noret (void) __attribute__ ((__noreturn__));
|
||||
|
||||
void
|
||||
fix_register (const char *name, int fixed, int call_used, int nregs)
|
||||
{
|
||||
int i;
|
||||
int reg;
|
||||
|
||||
if ((reg = baz ()) >= 0)
|
||||
{
|
||||
for (i = reg; i < nregs; i++)
|
||||
{
|
||||
if ((i == 15 || i == 11) && (fixed == 0 || call_used == 0))
|
||||
{
|
||||
switch (fixed)
|
||||
{
|
||||
case 0:
|
||||
switch (call_used)
|
||||
{
|
||||
case 1:
|
||||
bar ();
|
||||
break;
|
||||
default:
|
||||
(noret ());
|
||||
}
|
||||
case 1:
|
||||
switch (call_used)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
(noret ());
|
||||
}
|
||||
break;
|
||||
default:
|
||||
(noret ());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9329,7 +9329,11 @@ execute_vrp (void)
|
|||
}
|
||||
|
||||
if (to_remove_edges.length () > 0)
|
||||
free_dominance_info (CDI_DOMINATORS);
|
||||
{
|
||||
free_dominance_info (CDI_DOMINATORS);
|
||||
if (current_loops)
|
||||
loops_state_set (LOOPS_NEED_FIXUP);
|
||||
}
|
||||
|
||||
to_remove_edges.release ();
|
||||
to_update_switch_stmts.release ();
|
||||
|
|
Loading…
Reference in New Issue