> > > PR lto/59626 > > > * passes.c (ipa_write_summaries): Drop function bodies of > > > extern always-inline functions. > > > > > > * gcc.dg/lto/pr59626_0.c: New testcase. > > > * gcc.dg/lto/pr59626_1.c: Likewise. > > > > > Hi, > > do you see some problem with this approach? Unlike in dropping for > > ipa_write_summaries > > it drops just after early optimizations and it is done unconditonally. > > I see it kills every cross module inlining of extern inlines, but so does > > your patch. > > This may make difference for C++ implicit extern inlines (keyed functions) > > where I can > > imagine users both to declare them always inline and then call indirectly... > > I do it unconditionally because I do not like much of idea of making the > > LTO and non-LTO > > pipelines diverging even more. > > Well - it doesn't fix the testcase for me.
A fair complaint ;) I just check that it removes the body of always_inline. I will check why it doesn't help. We probably also need to drop the attribute as you do in ipa-profile. Honza