diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-11-07 00:02:03 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-11-06 17:02:03 -0700 |
commit | 8f5db3c19657340e6ad562e4c6d6551d32956360 (patch) | |
tree | d67603a3bd13ec372f33a235666da0c83d989f5c /gcc | |
parent | 80df65c95e51ff36d97aa13eed0d0e6a4fa1beee (diff) | |
download | gcc-8f5db3c19657340e6ad562e4c6d6551d32956360.zip gcc-8f5db3c19657340e6ad562e4c6d6551d32956360.tar.gz gcc-8f5db3c19657340e6ad562e4c6d6551d32956360.tar.bz2 |
reload1.c (reload): If we can not perform a particular elimination when we thought we could earlier...
* reload1.c (reload): If we can not perform a particular elimination
when we thought we could earlier, then we must always iterate through
the loop at least one more time.
x86 should bootstrap with -O9 -fomit-frame-pointer again.
From-SVN: r23552
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reload1.c | 11 |
2 files changed, 17 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e420927..32e2fe8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (reload): If we can not perform a particular elimination + when we thought we could earlier, then we must always iterate through + the loop at least one more time. + Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com> * alpha.c (add_operand): Simplify the CONST_INT match. diff --git a/gcc/reload1.c b/gcc/reload1.c index ce574a1..0d587ae 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -927,6 +927,17 @@ reload (first, global, dumpfile) { spill_hard_reg (i, dumpfile, 1); did_spill = 1; + + /* Regardless of the state of spills, if we previously had + a register that we thought we could eliminate, but no can + not eliminate, we must run another pass. + + Consider pseudos which have an entry in reg_equiv_* which + reference an eliminable register. We must make another pass + to update reg_equiv_* so that we do not substitute in the + old value from when we thought the elimination could be + performed. */ + something_changed = 1; } } |