diff options
author | Michael Hayes <m.hayes@elec.canterbury.ac.nz> | 2000-01-15 03:01:49 +0000 |
---|---|---|
committer | Michael Hayes <m.hayes@gcc.gnu.org> | 2000-01-15 03:01:49 +0000 |
commit | a2be868fbade644577895e847ad2fc658cb6d7d5 (patch) | |
tree | 763658a41b42980e79c902cf002544568b86c28e /gcc/basic-block.h | |
parent | d07ecc3bdf8bc2a5d055405bdc0b51c04237fc5d (diff) | |
download | gcc-a2be868fbade644577895e847ad2fc658cb6d7d5.zip gcc-a2be868fbade644577895e847ad2fc658cb6d7d5.tar.gz gcc-a2be868fbade644577895e847ad2fc658cb6d7d5.tar.bz2 |
loop.c (this_loop_info): Delete.
* 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.
From-SVN: r31434
Diffstat (limited to 'gcc/basic-block.h')
-rw-r--r-- | gcc/basic-block.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/basic-block.h b/gcc/basic-block.h index 0b732f6..912d1ef 100644 --- a/gcc/basic-block.h +++ b/gcc/basic-block.h @@ -275,6 +275,47 @@ struct loop /* Auxiliary info specific to a pass. */ void *info; + + /* The following are currently used by loop.c but they are likely to + disappear as loop.c is converted to use the CFG. */ + + /* 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; + + /* The dominator of cont. */ + rtx cont_dominator; + + /* The NOTE_INSN_LOOP_BEG. */ + rtx start; + + /* The NOTE_INSN_LOOP_END. */ + rtx end; + + /* For a rotated loop that is entered near the bottom, + this is the label at the top. Otherwise it is zero. */ + rtx top; + + /* Place in the loop where control enters. */ + rtx scan_start; + + /* List of all LABEL_REFs which refer to code labels outside the + loop. Used by routines that need to know all loop exits, such as + final_biv_value and final_giv_value. + + This does not include loop exits due to return instructions. + This is because all bivs and givs are pseudos, and hence must be + dead after a return, so the presense of a return does not affect + any of the optimizations that use this info. It is simpler to + just not include return instructions on this list. */ + rtx exit_labels; + + /* The number of LABEL_REFs on exit_labels for this loop and all + loops nested inside it. */ + int exit_count; }; |