Re: fix for PR49888 var-tracking compile-time regression

2013-01-18 Thread Jakub Jelinek
On Thu, Jan 17, 2013 at 06:56:40PM -0200, Alexandre Oliva wrote: > From: Alexandre Oliva > > for gcc/ChangeLog > > PR debug/54114 > PR debug/54402 > PR debug/49888 > * var-tracking.c (negative_power_of_two_p): New. > (global_get_addr_cache, local_get_addr_cache): N

Re: fix for PR49888 var-tracking compile-time regression

2013-01-17 Thread Alexandre Oliva
On Jan 16, 2013, Jakub Jelinek wrote: > for i686-linux tree-ssa-pre.o is different, and > for x86_64-linux go/export.o is different. I looked into the latter first, and that revealed a few major bugs: 1. I'd failed to fully implement what I'd planned. The canonicalization function would still

Re: fix for PR49888 var-tracking compile-time regression

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 11:25:46AM -0200, Alexandre Oliva wrote: > > Also, what effects (if any) does the patch have on the > > .debug_info/.debug_loc size and coverage? > > It shouldn't have any, since it's just caching results that would have > been recomputed over and over. However, there's a

Re: fix for PR49888 var-tracking compile-time regression

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 11:25:46AM -0200, Alexandre Oliva wrote: > > Can you safely cache the canon addresses already during vt_initialize > > (when cselib_* is still processing new insns, cselib VALUEs contain > > REGs and MEMs that are flushed at the end of processing the current bb > > in vt_ini

Re: fix for PR49888 var-tracking compile-time regression

2013-01-16 Thread Alexandre Oliva
On Jan 16, 2013, Jakub Jelinek wrote: > On Wed, Jan 16, 2013 at 08:28:59AM -0200, Alexandre Oliva wrote: >> PR49888 introduced clobber_overlapping_mems to detach VALUEs (and >> variables bound to them) from MEMs as the MEMs are modified. This >> turned out to be quite expensive, particularly the

Re: fix for PR49888 var-tracking compile-time regression

2013-01-16 Thread Jakub Jelinek
On Wed, Jan 16, 2013 at 08:28:59AM -0200, Alexandre Oliva wrote: > PR49888 introduced clobber_overlapping_mems to detach VALUEs (and > variables bound to them) from MEMs as the MEMs are modified. This > turned out to be quite expensive, particularly the computation of > canonical addresses passed

fix for PR49888 var-tracking compile-time regression

2013-01-16 Thread Alexandre Oliva
PR49888 introduced clobber_overlapping_mems to detach VALUEs (and variables bound to them) from MEMs as the MEMs are modified. This turned out to be quite expensive, particularly the computation of canonical addresses passed to alias dependency. This patch introduces caching of the canonical addr