public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Biener <richard.guenther@gmail.com>
To: Qing Zhao <qing.zhao@oracle.com>
Cc: "Martin Liška" <mliska@suse.cz>,
	"gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>,
	"Jan Hubicka" <hubicka@ucw.cz>
Subject: Re: [PATCH] IPA: support -flto + -flive-patching=inline-clone
Date: Fri, 7 Oct 2022 08:34:34 +0200	[thread overview]
Message-ID: <CAFiYyc13_qJXB6KQWBk6Yzi7T1CWUNrwXFZEQyYJSKF5YXH2-A@mail.gmail.com> (raw)
In-Reply-To: <406C00D6-71C6-4D62-A772-448BB014A656@oracle.com>

On Thu, Oct 6, 2022 at 3:18 PM Qing Zhao <qing.zhao@oracle.com> wrote:
>
>
>
> > On Oct 6, 2022, at 4:29 AM, Richard Biener <richard.guenther@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 <mliska@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?

Yes.

> Okay, then  It will promote all static function to extern functions. That’s reasonable.

No, all extern functions to static functions.

> Is it hard to preserve the original “static” visibility in the IR?

Probably not hard, and the IPA pass adjusting visbility could as well
mark the functions
as not to be inlined with -flive-patching=inline-only-static.

> >
> > 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.

it's a flag so it can be used to control other things

> thanks.
>
> Qing
> >
> > Richard,
> >
> >>
> >> thanks.
> >>
> >> Qing
> >>
> >>>
> >>> Martin
> >>>
> >>>>
> >>>> thanks.
>

  reply	other threads:[~2022-10-07  6:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-05 11:41 Martin Liška
2022-10-05 14:50 ` Qing Zhao
2022-10-05 17:36   ` Martin Liška
2022-10-05 18:18     ` Qing Zhao
2022-10-06  8:29       ` Richard Biener
2022-10-06  8:40         ` Martin Liška
2022-10-06 13:18         ` Qing Zhao
2022-10-07  6:34           ` Richard Biener [this message]
2022-10-07 13:03             ` Jan Hubicka
2022-10-07 14:30               ` Qing Zhao
2022-10-07 14:43                 ` Jan Hubicka
2022-10-07 15:36                   ` Qing Zhao
2022-10-07 13:04             ` Qing Zhao
2022-10-07 13:50               ` Martin Liška

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAFiYyc13_qJXB6KQWBk6Yzi7T1CWUNrwXFZEQyYJSKF5YXH2-A@mail.gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hubicka@ucw.cz \
    --cc=mliska@suse.cz \
    --cc=qing.zhao@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).