This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Do not produce empty try-finally statements


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]