aboutsummaryrefslogtreecommitdiff
path: root/gcc/stupid.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-06 17:54:08 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-06 17:54:08 -0400
commite21fa13af1243b008ddb546ea914cc63826f8ca0 (patch)
treece3f2b16d89fd43e7ebe215fa5cd3176161b05f6 /gcc/stupid.c
parentd7e09326f25d83fde3215698ff2520e29c0828dd (diff)
downloadgcc-e21fa13af1243b008ddb546ea914cc63826f8ca0.zip
gcc-e21fa13af1243b008ddb546ea914cc63826f8ca0.tar.gz
gcc-e21fa13af1243b008ddb546ea914cc63826f8ca0.tar.bz2
(stupid_life_analysis): Check the usage information on CALL_INSNs.
From-SVN: r7249
Diffstat (limited to 'gcc/stupid.c')
-rw-r--r--gcc/stupid.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/stupid.c b/gcc/stupid.c
index b4b15fb..ca9d44c 100644
--- a/gcc/stupid.c
+++ b/gcc/stupid.c
@@ -214,6 +214,8 @@ stupid_life_analysis (f, nregs, file)
for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
if (call_used_regs[i])
regs_live[i] = 0;
+
+ stupid_mark_refs (CALL_INSN_FUNCTION_USAGE (insn), insn);
}
/* Update which hard regs are currently live
@@ -385,10 +387,15 @@ static void
stupid_mark_refs (x, insn)
rtx x, insn;
{
- register RTX_CODE code = GET_CODE (x);
+ register RTX_CODE code;
register char *fmt;
register int regno, i;
+ if (x == 0)
+ return;
+
+ code = GET_CODE (x);
+
if (code == SET || code == CLOBBER)
{
if (SET_DEST (x) != 0 && GET_CODE (SET_DEST (x)) == REG)