aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-12-01 10:00:11 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1998-12-01 10:00:11 +0000
commit2b49ee39817f8849f931611cdc13a8d18cd209c7 (patch)
treeb9995987f19d6ca65c15b71f6f69120fde1b5af5 /gcc/rtl.h
parentbbe348cd18f81dd9469c81ba6f498e01ca9c5a37 (diff)
downloadgcc-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.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index bf9a603..93e7842 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -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));