This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: More loop optimizer restructuring patches



  In message <14780.33775.725924.462367@paradise.net.nz>you write:
  > Here are three more patches to tidy up the loop optimizer to soften
  > the blow for more substantial changes in the pipeline.
  > 
  > The first subsumes iteration_info into loop_iterations and saves the
  > iteration induction variable for later processing.
  > 
  > The second removes the global register arrays and stores this
  > information in a structure.
  > 
  > The third removes the global indction variable array and also stores
  > this information in a structure.
  > 
  > All the patches have been individually tested by bootstrapping gcc for
  > i686-pc-linux.

2000-09-11  Michael Hayes  <mhayes@cygnus.com>

        * unroll.c (iteration_info): Subsume into loop_iterations.
        * loop.h (loop_info): New field iv.
Approved.

2000-09-11  Michael Hayes  <mhayes@cygnus.com>

        * loop.h (LOOP_REGS): New macro.
        (struct loop_regs): New.
        (struct loop_info): Add regs field.
        * loop.c (set_in_loop): Remove global array and store
        in loop_regs structure as part of loop_info structure.
        (n_times_set, may_not_optimize): Likewise.
        (reg_single_usage, moved_once): Likewise.
        (count_one_set): Add regs argument.
        (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
        (set_pseudo_multiple_uses): Pass regs pointer.
Approved.

2000-09-11  Michael Hayes  <mhayes@cygnus.com>

        * loop.h (LOOP_IVS): New macro.
        (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
        (struct loop_ivs): New.
        (struct loop_info): Add ivs field.
        (reg_iv_type, reg_iv_info): Delete prototype.
        (reg_biv_class, loop_iv_list): Likewise.

        * loop.c (record_biv, find_life_end): Pass loop argument.
        (reg_iv_type): Remove global array and use
        field in loop_regs structure within loop_ivs structure.
        (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
        (first_increment_giv, last_increment_giv): Use entry in
        loop_ivs structure.
        (record_initial): Pass ivs pointer.

        * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
Approved.

Thanks,
jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]