summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-01-29 21:00:25 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1997-01-29 21:00:25 +0000
commitd4c423d6c4e46bf4add631111c5b351642055cd7 (patch)
treec9cea23da69849d09d230e9e8dac7e6e68d6d0f7 /gcc/flow.c
parent8671d9aed15a97371ed7ef13830bc29e5304fa28 (diff)
downloadgcc-d4c423d6c4e46bf4add631111c5b351642055cd7.tar.gz
(regno_uninitialized): Return 0 if reg is used for args.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13562 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 86d72286331..75948c562bd 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1,5 +1,5 @@
/* Data flow analysis for GNU compiler.
- Copyright (C) 1987, 88, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
+ Copyright (C) 1987, 88, 92-96, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -1897,14 +1897,16 @@ libcall_dead_p (x, needed, note, insn)
/* Return 1 if register REGNO was used before it was set.
In other words, if it is live at function entry.
- Don't count global register variables, though. */
+ Don't count global register variables or variables in registers
+ that can be used for function arg passing, though. */
int
regno_uninitialized (regno)
int regno;
{
if (n_basic_blocks == 0
- || (regno < FIRST_PSEUDO_REGISTER && global_regs[regno]))
+ || (regno < FIRST_PSEUDO_REGISTER
+ && (global_regs[regno] || FUNCTION_ARG_REGNO_P (regno))))
return 0;
return (basic_block_live_at_start[0][regno / REGSET_ELT_BITS]