Patchwork Increase max depth in vt_expand_*loc

login
register
mail settings
Submitter Jakub Jelinek
Date July 20, 2010, 12:46 p.m.
Message ID <20100720124612.GB19172@tyan-ft48-01.lab.bos.redhat.com>
Download mbox | patch
Permalink /patch/59306/
State New
Headers show

Comments

Jakub Jelinek - July 20, 2010, 12:46 p.m.
Hi!

http://bugzilla.redhat.com/616050
shows that the the maximum depth is not deep enough for common cases.
I've already needed to bump this limit in a patch for a DWARF extension I'm
working on, when hitting it now even without that patch I think we should
just increase the limit.

Now that we don't really create RTL first, but only check whether it will be
possible to do so, even with deeper depth we'll actually allocate further
something only if it leads to a usable location description.

Bootstrapped/regtested on x86_64-linux and i686-linux.  Ok for trunk?

2010-07-20  Jakub Jelinek  <jakub@redhat.com>

	* var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
	depth to 8 from 5.


	Jakub
Richard Guenther - July 20, 2010, 12:50 p.m.
On Tue, 20 Jul 2010, Jakub Jelinek wrote:

> Hi!
> 
> http://bugzilla.redhat.com/616050
> shows that the the maximum depth is not deep enough for common cases.
> I've already needed to bump this limit in a patch for a DWARF extension I'm
> working on, when hitting it now even without that patch I think we should
> just increase the limit.
> 
> Now that we don't really create RTL first, but only check whether it will be
> possible to do so, even with deeper depth we'll actually allocate further
> something only if it leads to a usable location description.
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux.  Ok for trunk?

Ok.

Thanks,
Richard.

> 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
> 
> 	* var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
> 	depth to 8 from 5.
> 
> --- gcc/var-tracking.c.jj	2010-06-30 08:22:00.000000000 +0200
> +++ gcc/var-tracking.c	2010-07-20 10:26:23.000000000 +0200
> @@ -7055,7 +7055,7 @@ vt_expand_loc (rtx loc, htab_t vars)
>    data.vars = vars;
>    data.dummy = false;
>    data.cur_loc_changed = false;
> -  loc = cselib_expand_value_rtx_cb (loc, scratch_regs, 5,
> +  loc = cselib_expand_value_rtx_cb (loc, scratch_regs, 8,
>  				    vt_expand_loc_callback, &data);
>  
>    if (loc && MEM_P (loc))
> @@ -7076,7 +7076,7 @@ vt_expand_loc_dummy (rtx loc, htab_t var
>    data.vars = vars;
>    data.dummy = true;
>    data.cur_loc_changed = false;
> -  ret = cselib_dummy_expand_value_rtx_cb (loc, scratch_regs, 5,
> +  ret = cselib_dummy_expand_value_rtx_cb (loc, scratch_regs, 8,
>  					  vt_expand_loc_callback, &data);
>    *pcur_loc_changed = data.cur_loc_changed;
>    return ret;
> 
> 	Jakub
> 
>

Patch

--- gcc/var-tracking.c.jj	2010-06-30 08:22:00.000000000 +0200
+++ gcc/var-tracking.c	2010-07-20 10:26:23.000000000 +0200
@@ -7055,7 +7055,7 @@  vt_expand_loc (rtx loc, htab_t vars)
   data.vars = vars;
   data.dummy = false;
   data.cur_loc_changed = false;
-  loc = cselib_expand_value_rtx_cb (loc, scratch_regs, 5,
+  loc = cselib_expand_value_rtx_cb (loc, scratch_regs, 8,
 				    vt_expand_loc_callback, &data);
 
   if (loc && MEM_P (loc))
@@ -7076,7 +7076,7 @@  vt_expand_loc_dummy (rtx loc, htab_t var
   data.vars = vars;
   data.dummy = true;
   data.cur_loc_changed = false;
-  ret = cselib_dummy_expand_value_rtx_cb (loc, scratch_regs, 5,
+  ret = cselib_dummy_expand_value_rtx_cb (loc, scratch_regs, 8,
 					  vt_expand_loc_callback, &data);
   *pcur_loc_changed = data.cur_loc_changed;
   return ret;