[multiple changes]
2006-09-06 James E Wilson <wilson@specifix.com> PR rtl-opt/27883 * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES then call count_or_remove_death_notes. 2006-09-06 Andrew Pinski <pinskia@physics.uc.edu> PR rtl-opt/27883 * g++.dg/opt/copysign-1.C: New test. From-SVN: r116739
This commit is contained in:
parent
aa4f41c1d5
commit
b5b84a7f46
@ -1,3 +1,9 @@
|
||||
2006-09-06 James E Wilson <wilson@specifix.com>
|
||||
|
||||
PR rtl-opt/27883
|
||||
* flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
|
||||
then call count_or_remove_death_notes.
|
||||
|
||||
2006-09-06 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/27371
|
||||
|
11
gcc/flow.c
11
gcc/flow.c
@ -647,6 +647,17 @@ update_life_info (sbitmap blocks, enum update_life_extent extent,
|
||||
count_or_remove_death_notes (blocks,
|
||||
prop_flags & PROP_POST_REGSTACK ? -1 : 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* FIXME: This can go when the dataflow branch has been merged in. */
|
||||
/* For a local update, if we are creating new REG_DEAD notes, then we
|
||||
must delete the old ones first to avoid conflicts if they are
|
||||
different. */
|
||||
if (prop_flags & PROP_DEATH_NOTES)
|
||||
count_or_remove_death_notes (blocks,
|
||||
prop_flags & PROP_POST_REGSTACK ? -1 : 1);
|
||||
}
|
||||
|
||||
|
||||
/* Clear log links in case we are asked to (re)compute them. */
|
||||
if (prop_flags & PROP_LOG_LINKS)
|
||||
|
@ -1,3 +1,8 @@
|
||||
2006-09-06 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR rtl-opt/27883
|
||||
* g++.dg/opt/copysign-1.C: New test.
|
||||
|
||||
2006-09-06 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/28903
|
||||
|
10
gcc/testsuite/g++.dg/opt/copysign-1.C
Normal file
10
gcc/testsuite/g++.dg/opt/copysign-1.C
Normal file
@ -0,0 +1,10 @@
|
||||
// { dg-options "-O2" }
|
||||
// { dg-do compile }
|
||||
// PR rtl-opt/27883
|
||||
// MIPS used to ICE because local flow update
|
||||
// was not removing an invalid REG_DEAD.
|
||||
|
||||
|
||||
double copysign (double x, double y);
|
||||
double GetDouble();
|
||||
double a = copysign (1.0, GetDouble());
|
Loading…
Reference in New Issue
Block a user