diff options
author | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 20:53:59 +0000 |
---|---|---|
committer | steven <steven@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-18 20:53:59 +0000 |
commit | 78d140c990f84aa03c72b5f074683bf3f7b6307f (patch) | |
tree | 93b7857ed347181c4c208adbe8b5fdd8d2f48e15 /gcc/rtl.h | |
parent | 1c46afb0bec4da2209f3dcbb5e8c64172b9e0570 (diff) | |
download | gcc-78d140c990f84aa03c72b5f074683bf3f7b6307f.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86206 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r-- | gcc/rtl.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h index 0b75b992be5..cebc616db36 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); |