This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Loop clean up
- To: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Subject: Re: Loop clean up
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 04 Jan 2000 23:16:44 -0700
- cc: gcc-patches at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <14406.3096.719263.523747@ongaonga.elec.canterbury.ac.nz>you write
:
>
> [I seem to be having mail delivery problems, so apologies if you've
> already received this patch...]
>
> Here are the patches for stage 1 of my clean up of the loop optimiser.
> This just replaces many of the global arrays with entries in a
> structure for each loop and tidies up some of the function parameters.
>
> If these patches are OK, I'll submit stage 2 which removes many of the
> remaining side effects and paves the way for utilising the CFG derived
> natural loop information.
>
> Michael.
>
> 1999-12-01 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
>
> * 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.
> * unroll.c: Include basic-block.h.
> (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 (unroll.o): Add BASIC_BLOCK_H to dependencies.
This is fine. Though it will need some minor updating due to random changes
(mostly in loop.c) since you originally submitted the patch.
Cnosider it pre-approved once you update it to work with the current
sources.
jeff