diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-02-14 19:16:58 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-02-14 19:16:58 -0500 |
commit | da2c9ff982aeb25e83e3380604d1b1b1402f0890 (patch) | |
tree | 5d397f2856306b2c7848c61fa7787b6617d2d1d7 | |
parent | c764eafd0d548dab42c5648616020862ee8806cf (diff) | |
download | gcc-da2c9ff982aeb25e83e3380604d1b1b1402f0890.zip gcc-da2c9ff982aeb25e83e3380604d1b1b1402f0890.tar.gz gcc-da2c9ff982aeb25e83e3380604d1b1b1402f0890.tar.bz2 |
(optimize_reg_copy): A register that dies in a CALL_INSN doesn't cross
that call.
From-SVN: r6555
-rw-r--r-- | gcc/local-alloc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index 11e58e3..e52b035 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -1,5 +1,5 @@ /* Allocate registers within a basic block, for GNU compiler. - Copyright (C) 1987, 1988, 1991, 1993 Free Software Foundation, Inc. + Copyright (C) 1987, 1988, 1991, 1993, 1994 Free Software Foundation, Inc. This file is part of GNU CC. @@ -770,7 +770,9 @@ optimize_reg_copy_1 (insn, dest, src) if (dest_death) d_length++; - if (GET_CODE (q) == CALL_INSN) + /* If the insn in which SRC dies is a CALL_INSN, don't count it + as a call that has been crossed. Otherwise, count it. */ + if (q != p && GET_CODE (q) == CALL_INSN) { n_calls++; if (dest_death) |