aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-02-14 19:16:58 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-02-14 19:16:58 -0500
commitda2c9ff982aeb25e83e3380604d1b1b1402f0890 (patch)
tree5d397f2856306b2c7848c61fa7787b6617d2d1d7 /gcc
parentc764eafd0d548dab42c5648616020862ee8806cf (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/local-alloc.c6
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)