> On Oct 6, 2022, at 4:29 AM, Richard Biener <richard.guent...@gmail.com> wrote: > > On Wed, Oct 5, 2022 at 8:18 PM Qing Zhao via Gcc-patches > <gcc-patches@gcc.gnu.org> wrote: >> >> >> >>> On Oct 5, 2022, at 1:36 PM, Martin Liška <mli...@suse.cz> wrote: >>> >>> On 10/5/22 16:50, Qing Zhao wrote: >>>> I have two questions on this: >>> >>> Hello. >>> >>>> >>>> 1. What’s the motivation to enable -flive-patching with -flto? Is there >>>> any application that will try -flive-patching with -flto now? >>> >>> We're planning supporting GCC LTO Linux kernel support, so that's one >>> motivation. And the second one is a possible >>> use in user-space livepatching. Note majority of modern distros default to >>> -flto (openSUSE, Fedora, Debian, Ubuntu, ...). >> >> Okay, I see. That’s reasonable. >>> >>>> >>>> 2. Why only enable -flive-patching=inline-clone with -flto? >>> >>> Because the inline-only-static level (which you added/requested) would have >>> to properly >>> block inter-procedural inlining that happens in LTO >>> (can_inline_edge_by_limits_p) and >>> I'm not sure it would be properly blocked. So, feel free to extend my patch >>> if you want? >> >> -flive-patching=inline-only-static >> >> Only enable static functions inlining, all the inlining of external visible >> functions are blocked, So, LTO should be compatible with this naturally >> without any issue, I think. >> >> i.e, when "-flive-patching=inline-only-static -flto" present together, all >> the inter-procedural inlining should be automatically blocked by >> -flive-patching=inline-only-static already. >> >> Do I miss anything here? > > WPA will promote externally visible functions static when all accesses > are from LTO IR, I don't think we preserve > the "original" visibility for IPA inlining heuristics.
WPA is Whole Program Analysis? Okay, then It will promote all static function to extern functions. That’s reasonable. Is it hard to preserve the original “static” visibility in the IR? > > OTOH inline-only-static could disable WPA inlining and do all inlining early > ... Inline-only-static ONLY inlines static functions, how can it disable WPA inlining? Don’t quite understand here. thanks. Qing > > Richard, > >> >> thanks. >> >> Qing >> >>> >>> Martin >>> >>>> >>>> thanks.