diff options
author | Mark Mitchell <mark@markmitchell.com> | 1998-08-19 12:30:47 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-08-19 06:30:47 -0600 |
commit | 41a972a956bca601158002a24e41777972f4e911 (patch) | |
tree | 881990d9aab58e7712420adce4215423daab83f5 /gcc/rtl.h | |
parent | 031fec007065aa597c47b5e251cf2ed9a69d83aa (diff) | |
download | gcc-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.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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 |