diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-12-01 10:00:11 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-12-01 10:00:11 +0000 |
commit | 2b49ee39817f8849f931611cdc13a8d18cd209c7 (patch) | |
tree | b9995987f19d6ca65c15b71f6f69120fde1b5af5 /gcc/rtl.h | |
parent | bbe348cd18f81dd9469c81ba6f498e01ca9c5a37 (diff) | |
download | gcc-2b49ee39817f8849f931611cdc13a8d18cd209c7.zip gcc-2b49ee39817f8849f931611cdc13a8d18cd209c7.tar.gz gcc-2b49ee39817f8849f931611cdc13a8d18cd209c7.tar.bz2 |
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
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -1440,6 +1440,7 @@ extern void init_optabs PROTO ((void)); extern void dump_local_alloc PROTO ((FILE *)); #endif extern void local_alloc PROTO ((void)); +extern int function_invariant_p PROTO ((rtx)); /* In reload1.c */ extern void reload_cse_regs PROTO ((rtx)); |