local-alloc.c (function_invariant_p): New function.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Tue, 1 Dec 1998 10:00:11 +0000 (10:00 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Tue, 1 Dec 1998 10:00:11 +0000 (10:00 +0000)
commit2b49ee39817f8849f931611cdc13a8d18cd209c7
treeb9995987f19d6ca65c15b71f6f69120fde1b5af5
parentbbe348cd18f81dd9469c81ba6f498e01ca9c5a37
local-alloc.c (function_invariant_p): New function.

* local-alloc.c (function_invariant_p): New function.
(update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
to decide if an equivalence should be recorded.
* reload1.c (num_eliminable_invariants): New static variable.
(reload): Set it.  Use function_invariant_p instead of CONSTANT_P
to decide if an equivalence should be recorded.
Unshare PLUS.
(calculate_needs_all_insns): Skip insns that only set an equivalence.
Take num_eliminable_invariants into account when deciding
if register elimination should be done.
(reload_as_needed): Take num_eliminable_invariants into account
when deciding if register elimination should be done.
(eliminate_regs): Handle non-constant reg_equiv_constant.
* rtl.h (function_invariant_p): Declare.

From-SVN: r24026
gcc/ChangeLog
gcc/local-alloc.c
gcc/reload1.c
gcc/rtl.h