diff options
author | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-15 03:01:49 +0000 |
---|---|---|
committer | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-01-15 03:01:49 +0000 |
commit | ec7d7ef93e737797dc0746272553b5d2db933a44 (patch) | |
tree | 763658a41b42980e79c902cf002544568b86c28e /gcc/loop.h | |
parent | 156946bb89b61da376587ac1fc005c33504b5360 (diff) | |
download | gcc-ec7d7ef93e737797dc0746272553b5d2db933a44.tar.gz |
* loop.c (this_loop_info): Delete.
(uid_loop): Add in place of uid_loop_num. All uses updated.
(loop_number_exit_count): Delete and replace with entry in loop
structure. All uses updated.
(loop_number_loop_starts, loop_number_loop_ends): Likewise.
(loop_number_loop_cont, loop_number_cont_dominator): Likewise.
(loop_outer_loop): Likewise.
(loop_invalid, loop_number_exit_labels): Likewise.
(loop_used_count_register): Delete and replace with entry in
loop_info structure.
(find_and_verify_loops): Add loops argument.
(verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
loop_end, etc. arguments with loop structure pointer. All callers
changed.
(loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
(check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
(load_mems_and_recount_loop_regs_set, load_mems): Likewise.
(insert_bct): Likewise.
(basic_induction_var): New argument level.
* loop.h (struct loop_info): Delete fields num, loops_enclosed,
vtop, and cont. Add used_count_register.
(uid_loop): Delete declaration.
(loop_number_exit_count): Likewise.
(loop_number_loop_starts, loop_number_loop_ends): Likewise.
(loop_number_loop_cont, loop_number_cont_dominator): Likewise.
(loop_outer_loop, loop_used_count_register): Likewise.
(loop_invalid, loop_number_exit_labels): Likewise.
(unroll_loop): Replace loop_start and loop_end arguments
with loop structure pointer.
(loop_precondition_p, loop_iterations): Likewise.
Include basic-block.h.
* unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
with loop structure pointer.
(loop_precondition_p, loop_iterations): Likewise.
* basic-block.h (struct loop): New entries vtop, cont,
cont_dominator, start, end, top, scan_start, exit_labels,
exit_count.
* Makefile.in (LOOP_H): Add basic-block.h to dependencies.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31434 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.h')
-rw-r--r-- | gcc/loop.h | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/gcc/loop.h b/gcc/loop.h index 14735810fd5..49fb4089e3d 100644 --- a/gcc/loop.h +++ b/gcc/loop.h @@ -19,6 +19,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "varray.h" +#include "basic-block.h" /* Get the luid of an insn. Catch the error of trying to reference the LUID of an insn added during loop, since these don't have LUIDs. */ @@ -159,10 +160,6 @@ struct iv_class { struct loop_info { - /* Loop number. */ - int num; - /* Loops enclosed by this loop including itself. */ - int loops_enclosed; /* Nonzero if there is a subroutine call in the current loop. */ int has_call; /* Nonzero if there is a volatile memory reference in the current @@ -200,11 +197,7 @@ struct loop_info unsigned HOST_WIDE_INT n_iterations; /* The number of times the loop body was unrolled. */ unsigned int unroll_number; - /* Non-zero if the loop has a NOTE_INSN_LOOP_VTOP. */ - rtx vtop; - /* Non-zero if the loop has a NOTE_INSN_LOOP_CONT. - A continue statement will generate a branch to NEXT_INSN (cont). */ - rtx cont; + int used_count_register; }; /* Definitions used by the basic induction variable discovery code. */ @@ -215,12 +208,8 @@ enum iv_mode { UNKNOWN_INDUCT, BASIC_INDUCT, NOT_BASIC_INDUCT, extern int *uid_luid; extern int max_uid_for_loop; -extern int *uid_loop_num; -extern int *loop_outer_loop; -extern rtx *loop_number_exit_labels; -extern int *loop_number_exit_count; extern int max_reg_before_loop; - +extern struct loop **uid_loop; extern FILE *loop_dump_stream; extern varray_type reg_iv_type; @@ -243,9 +232,9 @@ rtx get_condition_for_loop PROTO((rtx)); void emit_iv_add_mult PROTO((rtx, rtx, rtx, rtx, rtx)); rtx express_from PROTO((struct induction *, struct induction *)); -void unroll_loop PROTO((rtx, int, rtx, rtx, struct loop_info *, int)); +void unroll_loop PROTO((struct loop *, int, rtx, int)); rtx biv_total_increment PROTO((struct iv_class *, rtx, rtx)); -unsigned HOST_WIDE_INT loop_iterations PROTO((rtx, rtx, struct loop_info *)); +unsigned HOST_WIDE_INT loop_iterations PROTO((struct loop *)); int precondition_loop_p PROTO((rtx, struct loop_info *, rtx *, rtx *, rtx *, enum machine_mode *mode)); @@ -261,4 +250,3 @@ int loop_insn_first_p PROTO((rtx, rtx)); /* Forward declarations for non-static functions declared in stmt.c. */ void find_loop_tree_blocks PROTO((void)); void unroll_block_trees PROTO((void)); - |