1 GCC regressions, 1 new, with your patch on 2000-09-11T23:35:01Z.

Richard Henderson rth@cygnus.com
Tue Sep 12 13:44:00 GMT 2000


On Tue, Sep 12, 2000 at 02:10:11AM +0000, GCC regression checker wrote:
> The new failures are:
> gcc.sum gcc.c-torture/execute/991023-1.c
[...]
> +2000-09-12  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.
> +
> +2000-09-12  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.
> +
> +2000-09-12  Michael Hayes  <mhayes@cygnus.com>
> +
> +	* unroll.c (iteration_info): Subsume into loop_iterations.
> +	* loop.h (loop_info): New field iv.
> +
> +2000-09-12  Michael Hayes  <mhayes@cygnus.com>
> +
> +	* basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
> +	(LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
> +	(flow_loops_update): New prototype.
> +	(flow_loops_find): Add flags to prototype.
> +	(struct loop): Add `pre_header_root' and `pre_header_trace' fields.
> +	* flow.c (flow_loop_pre_header_scan): New.
> +	(flow_loop_dump): Dump pre-header root and trace and exit dominators.
> +	(flow_loop_free): Free pre-header root and trace and exit dominators.
> +	(flow_loops_find): New argument flags.
> +	(flow_loops_update): New function.
> +	* toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.

One of these loop patches is at fault.  The loop in question is

  for (i=0 ; i< 7 ; i++)
    {
      if (i == 7 - 1)
        blah = 0xfcc;
      else
        blah = 0xfee;
    }

Yet we decide that we "Can reverse loop".  Clearly that shouldn't
happen, since blah will contain incorrect data afterward.


r~


More information about the Gcc-regression mailing list