Re: [PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-09 Thread Jakub Jelinek
On Fri, Dec 09, 2011 at 10:35:57AM +0100, Richard Guenther wrote: > > *shrug* Maybe just a new pass immediately before ehcleanup2? > > It's just a quick pass over the basic blocks... > > I'd just not care for the ones preceeding a return. Not at this point > at least. After IRC discussion with r

Re: [PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-09 Thread Richard Guenther
On Fri, Dec 9, 2011 at 1:24 AM, Richard Henderson wrote: > On 12/08/2011 04:00 PM, Jakub Jelinek wrote: >> On Thu, Dec 08, 2011 at 03:53:40PM -0800, Richard Henderson wrote: >>> On 12/08/2011 11:57 AM, Jakub Jelinek wrote: +      else if (gimple_code (last) == GIMPLE_RETURN +          ||

Re: [PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-08 Thread Richard Henderson
On 12/08/2011 04:00 PM, Jakub Jelinek wrote: > On Thu, Dec 08, 2011 at 03:53:40PM -0800, Richard Henderson wrote: >> On 12/08/2011 11:57 AM, Jakub Jelinek wrote: >>> + else if (gimple_code (last) == GIMPLE_RETURN >>> + || (gimple_code (last) == GIMPLE_RESX >>> + && stmt_c

Re: [PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-08 Thread Jakub Jelinek
On Thu, Dec 08, 2011 at 03:53:40PM -0800, Richard Henderson wrote: > On 12/08/2011 11:57 AM, Jakub Jelinek wrote: > > + else if (gimple_code (last) == GIMPLE_RETURN > > + || (gimple_code (last) == GIMPLE_RESX > > + && stmt_can_throw_external (last))) > > + optimize_clob

Re: [PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-08 Thread Richard Henderson
On 12/08/2011 11:57 AM, Jakub Jelinek wrote: > + else if (gimple_code (last) == GIMPLE_RETURN > +|| (gimple_code (last) == GIMPLE_RESX > +&& stmt_can_throw_external (last))) > + optimize_clobbers (bb); If you need to do this for returns as well as resx, then th

[PATCH] Optimize away unnecessary clobbers (PR tree-optimization/51117)

2011-12-08 Thread Jakub Jelinek
Hi! This patch optimizes away clobber stmts that immediately precede GIMPLE_RETURN or GIMPLE_RESX that throws externally, which allows doing EH cleanups. For both libstdc++.so.6 and go1 this results in slight reduction of .gcc_except_table size: $ readelf -WS obj96[24]/x86*/libstdc*/src/.libs/li