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]
Other format: [Raw text]

Re: target_mem_ref causing bootstrap failure on alphaev67-linux


Hello,

> Richard Henderson wrote:
> 
> > $ ./cc1 -quiet -O z.c
> > ../../../src-gcc/zlib/inffast.c: In function 'inflate_fast':
> > ../../../src-gcc/zlib/inffast.c:70: error: Definition in block 49 does not dominate use in block 47
> > for SSA_NAME: D.2870_587 in statement:
> > D.2874_592 = D.2870_587 /[fl] 3;
> > ../../../src-gcc/zlib/inffast.c:70: internal compiler error: verify_ssa failed.
> 
> Same on s390(x)-ibm-linux.  A reduced test case:
> 
> int test (unsigned char *dst, unsigned len)
> {
>   while (len > 2)
>     {
>       *++dst = 0;
>       len -= 3;
>     }
> 
>   return len;
> }

the following patch should fix the problem, I will commit it once it
passes testing.

Zdenek

Index: tree-ssa-loop-ivopts.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-ivopts.c,v
retrieving revision 2.76
diff -c -3 -p -r2.76 tree-ssa-loop-ivopts.c
*** tree-ssa-loop-ivopts.c	7 Jun 2005 12:01:29 -0000	2.76
--- tree-ssa-loop-ivopts.c	7 Jun 2005 19:39:29 -0000
*************** rewrite_use_outer (struct ivopts_data *d
*** 5674,5680 ****
        if (!cand->iv)
  	{
  	  struct cost_pair *cp = get_use_iv_cost (data, use, cand);
! 	  value = cp->value;
  	}
        else
  	value = get_computation_at (data->current_loop,
--- 5674,5680 ----
        if (!cand->iv)
  	{
  	  struct cost_pair *cp = get_use_iv_cost (data, use, cand);
! 	  value = unshare_expr (cp->value);
  	}
        else
  	value = get_computation_at (data->current_loop,


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