diff options
author | Martin Liska <mliska@suse.cz> | 2019-08-09 10:33:05 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-08-09 08:33:05 +0000 |
commit | 279dc7a3624ff68e9bb4f44293877250a8097c14 (patch) | |
tree | 9e772532a84db5a3a69ea4de5a9c886310f02d31 /gcc | |
parent | 40077d15a87e7fe707b7282ab6f241737d2b3b18 (diff) | |
download | gcc-279dc7a3624ff68e9bb4f44293877250a8097c14.zip gcc-279dc7a3624ff68e9bb4f44293877250a8097c14.tar.gz gcc-279dc7a3624ff68e9bb4f44293877250a8097c14.tar.bz2 |
Add -flto=auto option value.
2019-08-09 Martin Liska <mliska@suse.cz>
* doc/invoke.texi: Document the option value.
* lto-wrapper.c (run_gcc): Set auto_parallel
only with -flto=auto.
2019-08-09 Martin Liska <mliska@suse.cz>
* g++.dg/lto/devirt-19_0.C: Add -flto=auto.
From-SVN: r274232
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 7 | ||||
-rw-r--r-- | gcc/lto-wrapper.c | 18 | ||||
-rw-r--r-- | gcc/opts.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lto/devirt-19_0.C | 2 |
6 files changed, 25 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50a2b8f..8bc3d91 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2019-08-09 Martin Liska <mliska@suse.cz> + * doc/invoke.texi: Document the option value. + * lto-wrapper.c (run_gcc): Set auto_parallel + only with -flto=auto. + +2019-08-09 Martin Liska <mliska@suse.cz> + * opts.c (common_handle_option): Error for an invalid argument to -flto=. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 01aab60..5b6b824 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -10415,8 +10415,7 @@ If you specify the optional @var{n}, the optimization and code generation done at link time is executed in parallel using @var{n} parallel jobs by utilizing an installed @command{make} program. The environment variable @env{MAKE} may be used to override the program -used. The default value for @var{n} is automatically detected based -on number of cores. +used. You can also specify @option{-flto=jobserver} to use GNU make's job server mode to determine the number of parallel jobs. This @@ -10425,6 +10424,10 @@ You must prepend a @samp{+} to the command recipe in the parent Makefile for this to work. This option likely only works if @env{MAKE} is GNU make. +Use @option{-flto=auto} to use GNU make's job server, if available, +or otherwise fall back to autodetection of the number of CPU threads +present in your system. + @item -flto-partition=@var{alg} @opindex flto-partition Specify the partitioning algorithm used by the link-time optimizer. diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c index f1253cd..84f59cf 100644 --- a/gcc/lto-wrapper.c +++ b/gcc/lto-wrapper.c @@ -1252,8 +1252,7 @@ run_gcc (unsigned argc, char *argv[]) char *list_option_full = NULL; const char *linker_output = NULL; const char *collect_gcc, *collect_gcc_options; - /* Make linking parallel by default. */ - int parallel = 1; + int parallel = 0; int jobserver = 0; int auto_parallel = 0; bool no_partition = false; @@ -1380,6 +1379,11 @@ run_gcc (unsigned argc, char *argv[]) case OPT_flto_: if (strcmp (option->arg, "jobserver") == 0) jobserver = 1; + else if (strcmp (option->arg, "auto") == 0) + { + parallel = 1; + auto_parallel = 1; + } else { parallel = atoi (option->arg); @@ -1423,14 +1427,8 @@ run_gcc (unsigned argc, char *argv[]) auto_parallel = 0; parallel = 0; } - else if (!jobserver && parallel) - { - /* If there's no explicit usage of jobserver and - parallel is enabled, then automatically detect - jobserver or number of cores. */ - auto_parallel = 1; - jobserver = jobserver_active_p (); - } + else if (!jobserver && auto_parallel) + jobserver = jobserver_active_p (); if (linker_output) { @@ -2825,6 +2825,7 @@ common_handle_option (struct gcc_options *opts, case OPT_flto_: if (strcmp (arg, "none") != 0 && strcmp (arg, "jobserver") != 0 + && strcmp (arg, "auto") != 0 && atoi (arg) == 0) error_at (loc, "unrecognized argument to %<-flto=%> option: %qs", arg); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 317b7e5..58e5fe5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2019-08-09 Martin Liska <mliska@suse.cz> + * g++.dg/lto/devirt-19_0.C: Add -flto=auto. + +2019-08-09 Martin Liska <mliska@suse.cz> + * gcc.dg/spellcheck-options-21.c: New test. 2019-08-09 Martin Liska <mliska@suse.cz> diff --git a/gcc/testsuite/g++.dg/lto/devirt-19_0.C b/gcc/testsuite/g++.dg/lto/devirt-19_0.C index 696d8c0..b43527e 100644 --- a/gcc/testsuite/g++.dg/lto/devirt-19_0.C +++ b/gcc/testsuite/g++.dg/lto/devirt-19_0.C @@ -1,5 +1,5 @@ /* { dg-lto-do link } */ /* { dg-lto-options { "-O2 -fdump-ipa-cp -Wno-return-type -flto -r -nostdlib" } } */ -/* { dg-extra-ld-options "-flinker-output=nolto-rel" } */ +/* { dg-extra-ld-options "-flinker-output=nolto-rel -flto=auto" } */ #include "../ipa/devirt-19.C" /* { dg-final { scan-wpa-ipa-dump-times "Discovered a virtual call to a known target" 1 "cp" } } */ |