aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorMark Mitchell <mark@markmitchell.com>1998-08-19 12:30:47 +0000
committerJeff Law <law@gcc.gnu.org>1998-08-19 06:30:47 -0600
commit41a972a956bca601158002a24e41777972f4e911 (patch)
tree881990d9aab58e7712420adce4215423daab83f5 /gcc/rtl.h
parent031fec007065aa597c47b5e251cf2ed9a69d83aa (diff)
downloadgcc-41a972a956bca601158002a24e41777972f4e911.zip
gcc-41a972a956bca601158002a24e41777972f4e911.tar.gz
gcc-41a972a956bca601158002a24e41777972f4e911.tar.bz2
rtl.h (rtx_function): New type.
* rtl.h (rtx_function): New type. (for_each_rtx): New function. * rtlanal.c (for_each_rtx): Define it. * recog.c (change_t): New type. (change_objects, change_old_codes, change_locs, change_olds): Replace with ... (changes): New variable. (validate_change): Dynamically allocate room for more changes, if necessary. Uses changes array instead of change_objects, etc. (apply_change_group): Use changes array instead of change_objects, etc. * loop.c (loop_mem_info): New type. (loop_mems): New variable. (loop_mems_idx): Likewise. (looop_mems_allocated): Likewise. (scan_loop): Remove nregs parameter. (next_insn_in_loop): New function. (load_mems_and_recount_loop_regs_set): Likewise. (load_mems): Likewise. (insert_loop_mem): Likewise. (replace_loop_mem): Likewise. (replace_label): Likewise. (INSN_IN_RANGE_P): New macro. (loop_optimize): Don't pass max_reg_num() to scan_loop. (scan_loop): Remove nregs parameter, compute it after any new registers are created by load_mems. Use INSN_IN_RANGE_P and next_insn_in_loop rather than expanding them inline. Call load_mems to load memory into pseudos, if appropriate. (prescan_loop): Figure out whether or not there are jumps from the loop to targets other than the label immediately following the loop. Call insert_loop_mem to notice all the MEMs used in the loop, if it could be safe to pull MEMs into REGs for the duration of the loop. (strength_reduce): Use next_insn_in_loop. Tweak comments. From-SVN: r21845
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index cb5fdf1..c26b76e 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -1000,6 +1000,8 @@ extern int inequality_comparison_p PROTO((rtx));
extern rtx replace_rtx PROTO((rtx, rtx, rtx));
extern rtx replace_regs PROTO((rtx, rtx *, int, int));
extern int computed_jump_p PROTO((rtx));
+typedef int (*rtx_function) PROTO((rtx *, void *));
+extern int for_each_rtx PROTO((rtx *, rtx_function, void *));
/* Maximum number of parallel sets and clobbers in any insn in this fn.
Always at least 3, since the combiner could put that many togetherm