aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2019-08-09 10:33:05 +0200
committerMartin Liska <marxin@gcc.gnu.org>2019-08-09 08:33:05 +0000
commit279dc7a3624ff68e9bb4f44293877250a8097c14 (patch)
tree9e772532a84db5a3a69ea4de5a9c886310f02d31
parent40077d15a87e7fe707b7282ab6f241737d2b3b18 (diff)
downloadgcc-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
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/doc/invoke.texi7
-rw-r--r--gcc/lto-wrapper.c18
-rw-r--r--gcc/opts.c1
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/g++.dg/lto/devirt-19_0.C2
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)
{
diff --git a/gcc/opts.c b/gcc/opts.c
index a0a7789..bb0d8b5 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -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" } } */