[PATCH] Fix a thinko in vt_expand_loc_callback (PR debug/43304)

Richard Guenther rguenther@suse.de
Tue Mar 9 15:39:00 GMT 2010


On Tue, 9 Mar 2010, Jakub Jelinek wrote:

> Hi!
> 
> This patch fixes vmx/fft.c, vmx/7-01.c and vmx/7-01a.c tests
> on powerpc - in the SUBREG case I've missed one case which needs to
> call the dummy variant of the function when in dummy variant.  Otherwise
> it allocates memory (wastes GC space) and, what's worse, it calls the
> callback still in dummy mode so it returns pc_rtx on success instead of
> some real expression, and simplification can then ICE when simplifying an
> expression involving (pc) in places it doesn't expect.
> 
> Fixed thusly, bootstrap/regtest on x86_64-linux, i686-linux and
> powerpc64-linux pending.  Ok for trunk?

Ok.

Thanks,
Richard.

> 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
> 
> 	PR debug/43304
> 	* var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
> 	call cselib_dummy_expand_value_rtx_cb instead of
> 	cselib_expand_value_rtx_cb.
> 
> --- gcc/var-tracking.c.jj	2010-03-09 12:25:04.000000000 +0100
> +++ gcc/var-tracking.c	2010-03-09 13:15:36.000000000 +0100
> @@ -6610,6 +6610,16 @@ vt_expand_loc_callback (rtx x, bitmap re
>    switch (GET_CODE (x))
>      {
>      case SUBREG:
> +      if (dummy)
> +	{
> +	  if (cselib_dummy_expand_value_rtx_cb (SUBREG_REG (x), regs,
> +						max_depth - 1,
> +						vt_expand_loc_callback, data))
> +	    return pc_rtx;
> +	  else
> +	    return NULL;
> +	}
> +
>        subreg = cselib_expand_value_rtx_cb (SUBREG_REG (x), regs,
>  					   max_depth - 1,
>  					   vt_expand_loc_callback, data);
> @@ -6617,9 +6627,6 @@ vt_expand_loc_callback (rtx x, bitmap re
>        if (!subreg)
>  	return NULL;
>  
> -      if (dummy)
> -	return pc_rtx;
> -
>        result = simplify_gen_subreg (GET_MODE (x), subreg,
>  				    GET_MODE (SUBREG_REG (x)),
>  				    SUBREG_BYTE (x));
> 
> 	Jakub
> 
> 

-- 
Richard Guenther <rguenther@suse.de>
Novell / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746 - GF: Markus Rex



More information about the Gcc-patches mailing list