public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/marxin/heads/enable-live-patching-with-lto)] IPA: support -flto + -flive-patching=inline-clone
@ 2022-10-05 9:21 Martin Liska
0 siblings, 0 replies; only message in thread
From: Martin Liska @ 2022-10-05 9:21 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:addbf5941e80d16a470dd8215fc5a4fdf0b98f6e
commit addbf5941e80d16a470dd8215fc5a4fdf0b98f6e
Author: Martin Liska <mliska@suse.cz>
Date: Wed Oct 5 11:15:36 2022 +0200
IPA: support -flto + -flive-patching=inline-clone
There's no fundamental reason why -flive-patching=inline-clone can't
coexist with -flto. Yes, one can theoretically have many more clone
function that includes a live patch. It is pretty much the same
as in-module inlining.
gcc/ChangeLog:
* opts.cc (finish_options): Print sorry message only
for -flive-patching=inline-only-static.
gcc/testsuite/ChangeLog:
* gcc.dg/live-patching-2.c: Update scanned pattern.
* gcc.dg/live-patching-5.c: New test.
Diff:
---
gcc/opts.cc | 5 +++--
gcc/testsuite/gcc.dg/live-patching-2.c | 4 ++--
gcc/testsuite/gcc.dg/live-patching-5.c | 8 ++++++++
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/gcc/opts.cc b/gcc/opts.cc
index eb5db01de17..ae079fcd20e 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -1288,8 +1288,9 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
"%<-fsanitize=kernel-address%>");
/* Currently live patching is not support for LTO. */
- if (opts->x_flag_live_patching && opts->x_flag_lto)
- sorry ("live patching is not supported with LTO");
+ if (opts->x_flag_live_patching == LIVE_PATCHING_INLINE_ONLY_STATIC && opts->x_flag_lto)
+ sorry ("live patching (with %qs) is not supported with LTO",
+ "inline-only-static");
/* Currently vtable verification is not supported for LTO */
if (opts->x_flag_vtable_verify && opts->x_flag_lto)
diff --git a/gcc/testsuite/gcc.dg/live-patching-2.c b/gcc/testsuite/gcc.dg/live-patching-2.c
index 0dde4e9e0c0..1c4f9229b82 100644
--- a/gcc/testsuite/gcc.dg/live-patching-2.c
+++ b/gcc/testsuite/gcc.dg/live-patching-2.c
@@ -1,10 +1,10 @@
/* { dg-do compile } */
/* { dg-require-effective-target lto } */
-/* { dg-options "-O2 -flive-patching -flto" } */
+/* { dg-options "-O2 -flive-patching=inline-only-static -flto" } */
int main()
{
return 0;
}
-/* { dg-message "sorry, unimplemented: live patching is not supported with LTO" "-flive-patching and -flto together" { target *-*-* } 0 } */
+/* { dg-message "sorry, unimplemented: live patching \\(with 'inline-only-static'\\) is not supported with LTO" "-flive-patching and -flto together" { target *-*-* } 0 } */
diff --git a/gcc/testsuite/gcc.dg/live-patching-5.c b/gcc/testsuite/gcc.dg/live-patching-5.c
new file mode 100644
index 00000000000..098047a36cd
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/live-patching-5.c
@@ -0,0 +1,8 @@
+/* { dg-do compile } */
+/* { dg-require-effective-target lto } */
+/* { dg-options "-O2 -flive-patching -flto" } */
+
+int main()
+{
+ return 0;
+}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-10-05 9:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-05 9:21 [gcc(refs/users/marxin/heads/enable-live-patching-with-lto)] IPA: support -flto + -flive-patching=inline-clone Martin Liska
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).