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
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
+ ||
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
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
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
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