diff options
author | Richard Henderson <rth@cygnus.com> | 2000-08-21 17:44:09 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-08-21 17:44:09 -0700 |
commit | 770a7febdae7861ad605ad8f5e5c004a9c5c5105 (patch) | |
tree | 16fd1e4b157f436495deeb7e171e5c98b2d8c34b | |
parent | 280db205772451c9025357ba24359ff18b56de70 (diff) | |
download | gcc-770a7febdae7861ad605ad8f5e5c004a9c5c5105.zip gcc-770a7febdae7861ad605ad8f5e5c004a9c5c5105.tar.gz gcc-770a7febdae7861ad605ad8f5e5c004a9c5c5105.tar.bz2 |
flow.c (calculate_global_regs_live): Mark frame pointer live everywhere before reload.
* flow.c (calculate_global_regs_live): Mark frame pointer live
everywhere before reload.
From-SVN: r35862
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/flow.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 384fb53..e25d72f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-08-21 Richard Henderson <rth@cygnus.com> + + * flow.c (calculate_global_regs_live): Mark frame pointer live + everywhere before reload. + 2000-08-21 Jim Wilson <wilson@cygnus.com> * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle @@ -3191,6 +3191,12 @@ calculate_global_regs_live (blocks_in, blocks_out, flags) the case for blocks within infinite loops. */ SET_REGNO_REG_SET (new_live_at_end, STACK_POINTER_REGNUM); + /* Similarly for the frame pointer before reload. Any reference + to any pseudo before reload is a potential reference of the + frame pointer. */ + if (! reload_completed) + SET_REGNO_REG_SET (new_live_at_end, FRAME_POINTER_REGNUM); + /* Regs used in phi nodes are not included in global_live_at_start, since they are live only along a particular edge. Set those regs that are live because of a |