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: [lto][patch] Remove after_inlining flag


> No, if the MUST_NOT_THROW regions are not marked in EH, they are
> optimized out and information is lost.

Sorry, can you elaborate a bit?

Lets say we have a region with only a function call. Nothing in the
region throws, but after inline something might. That is what the code
is trying to handle, right? Why can't the inliner update the region it
inlines the function to as throwing?

> Hmm, I think it was related to compilation of Gerald's DLV application,
> but I am not sure.
> Other problem related to this is:
>
>               /* Removing declarations before inlining is going to affect
>                  DECL_UID that in turn is going to affect hashtables and
>                  code generation.  */
>               || !cfun->after_inlining)
>
> You should get bootstrap-debug failure with your patch.

The patch is for lto. Debug is completely broken already.

> No, replacing it by 1 will lead to divergence on -g and ICEs on weird
> C++ testcases.  Replacing it with 0 will lead to missed optimizations.
> Just keep it 1 until after last inlining happens.

For lto  I think the best option now is to take the missed optimizations.


Cheers,
-- 
Rafael Avila de Espindola

Google | Gordon House | Barrow Street | Dublin 4 | Ireland
Registered in Dublin, Ireland | Registration Number: 368047


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