This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Do not produce empty try-finally statements
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Jakub Jelinek <jakub at redhat dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Jason Merrill <jason at redhat dot com>, Michael Matz <matz at suse dot de>
- Date: Tue, 28 Jan 2014 11:48:16 +0100
- Subject: Re: Do not produce empty try-finally statements
- Authentication-results: sourceware.org; auth=none
- References: <20140119224609 dot GB22057 at kam dot mff dot cuni dot cz> <20140120070735 dot GT892 at tucnak dot redhat dot com> <69409e4c-102f-4aaf-b79b-9ec982348162 at email dot android dot com> <20140120160717 dot GB4030 at kam dot mff dot cuni dot cz> <20140120161642 dot GB892 at tucnak dot redhat dot com> <20140120162243 dot GC4030 at kam dot mff dot cuni dot cz>
On Mon, Jan 20, 2014 at 5:22 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
>>
>> Yes. Say, this could be surrounded by some try/catch, if we do it the first
>> way, a would be still considered live across the EH path to whatever catches
>> it.
>>
>> The EH optimizations involving cleanups with only clobbers in them are that
>> if at the end of the cleanup after only CLOBBER stmts you would rethrow the exception
>> externally, then the clobber isn't needed and the whole cleanup can be
>> removed. And, if it rethrows somewhere internally, we can move the clobber
>> stmts to the landing pad of wherever it would be caught.
>
> OK, I still do not see how ehclanup1 can then safely remove them pre-inline
> given that the whole function body can be inlined into another containing the
> outer EH region.
That's true.
> If this is valid, why we can not just eliminate EH in those
> outer clobber try..finally as part of ehlowering earlier?
Probably we'd miss too many inlining cases from early inlining and
the ehcleanup1 time is just a heuristic that works good enough for us?
Jakub? Micha?
Thanks,
Richard.
> Honza
>>
>> Jakub