aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb@suse.de>2004-08-18 20:53:59 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-08-18 20:53:59 +0000
commit0516f6fe82641daf7c1ac8812998049ac591201e (patch)
tree93b7857ed347181c4c208adbe8b5fdd8d2f48e15 /gcc/rtl.h
parent95013377bd98d4456996c3e7a2921b4c475239a1 (diff)
downloadgcc-0516f6fe82641daf7c1ac8812998049ac591201e.zip
gcc-0516f6fe82641daf7c1ac8812998049ac591201e.tar.gz
gcc-0516f6fe82641daf7c1ac8812998049ac591201e.tar.bz2
Makefile.in (OBJS-common): Add postreload-gcse.c.
* Makefile.in (OBJS-common): Add postreload-gcse.c. Add new postreload-gcse.o. * cse.c (SAFE_HASH): Define as wrapper around safe_hash. (lookup_as_function, insert, rehash_using_reg, use_related_value, equiv_constant): Use SAFE_HASH instead of safe_hash. (exp_equiv_p): Export. Add for_gcse argument when comparing for GCSE. (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr, find_comparison_args, fold_rtx, cse_insn): Update callers. (hash_rtx): New function derived from old canon_hash and bits from gcse.c hash_expr_1. (canon_hash_string): Rename to hash_rtx_string. (canon_hash, safe_hash): Make static inline. Call hash_rtx. * cselib.c (hash_rtx): Rename to cselib_hash_rtx. (cselib_lookup): Update this caller. * gcse.c (modify_mem_list_set, canon_modify_mem_list_set): Make static. (hash_expr): Call hash_rtx. (ldst_entry): Likewise. (expr_equiv_p): Call exp_equiv_p. (struct unoccr, hash_expr_1, hash_string_1, lookup_expr, reg_used_on_edge, reg_set_between_after_reload_p, reg_used_between_after_reload_p, get_avail_load_store_reg, is_jump_table_basic_block, bb_has_well_behaved_predecessors, get_bb_avail_insn, hash_scan_set_after_reload, compute_hash_table_after_reload, eliminate_partially_redundant_loads, gcse_after_reload, get_bb_avail_insn, gcse_after_reload_main): Remove. * postreload-gcse.c: New file, reincarnating most of the above. * rtl.h (exp_equiv_p, hash_rtx): New prototypes. (gcse_after_reload_main): Update prototype. * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar. * passes.c (rest_of_handle_gcse2): Use it. From-SVN: r86206
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index 0b75b99..cebc616 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -2119,6 +2119,8 @@ extern int rtx_to_tree_code (enum rtx_code);
extern int delete_trivially_dead_insns (rtx, int);
extern int cse_main (rtx, int, int, FILE *);
extern void cse_condition_code_reg (void);
+extern int exp_equiv_p (rtx, rtx, int, bool);
+extern unsigned hash_rtx (rtx x, enum machine_mode, int *, int *, bool);
/* In jump.c */
extern int comparison_dominates_p (enum rtx_code, enum rtx_code);
@@ -2265,7 +2267,9 @@ extern bool can_copy_p (enum machine_mode);
extern rtx fis_get_condition (rtx);
extern int gcse_main (rtx, FILE *);
extern int bypass_jumps (FILE *);
-extern void gcse_after_reload_main (rtx, FILE *);
+
+/* In postreload-gcse.c */
+extern void gcse_after_reload_main (rtx);
/* In global.c */
extern void mark_elimination (int, int);