This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Steam out non-explicit -fno-tree-loop-distribute-patterns for LTO options
- From: Kito Cheng <kito dot cheng at gmail dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, Richard Biener <rguenther at suse dot de>
- Date: Wed, 27 Aug 2014 22:42:33 +0800
- Subject: [PATCH] Steam out non-explicit -fno-tree-loop-distribute-patterns for LTO options
- Authentication-results: sourceware.org; auth=none
Hi all:
This patch basically is extension for r210100[1], stream out
non-explicit -fno-tree-loop-distribute-patterns since compile with
`-flto -O3 -fno-builtin` still may gen builtin function call during
LTO phase.
LTO bootstrapped and tested on x86_64-unknown-linux-gnu.
2014-09-27 Kito Cheng <kito@0xlab.org>
* lto-opts.c (lto_write_options): Output non-explicit
-fno-tree-loop-distribute-patterns.
* lto-wrapper.c (merge_and_complain): Merge
-fno-tree-loop-distribute-patterns conservatively.
(run_gcc): Pass through -fno-tree-loop-distribute-patterns.
[1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=210100
From a4d8d1218975413eba8a339e72066ef63649b8a6 Mon Sep 17 00:00:00 2001
From: Kito Cheng <kito@andestech.com>
Date: Tue, 26 Aug 2014 16:44:06 +0800
Subject: [PATCH] Steam out non-explicit -fno-tree-loop-distribute-patterns for
LTO options
2014-09-26 Kito Cheng <kito@0xlab.org>
* lto-opts.c (lto_write_options): Output non-explicit
-fno-tree-loop-distribute-patterns.
* lto-wrapper.c (merge_and_complain): Merge
-fno-tree-loop-distribute-patterns conservatively.
(run_gcc): Pass through -fno-tree-loop-distribute-patterns.
---
gcc/lto-opts.c | 4 ++++
gcc/lto-wrapper.c | 2 ++
2 files changed, 6 insertions(+)
diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c
index 986fb97..250d734 100644
--- a/gcc/lto-opts.c
+++ b/gcc/lto-opts.c
@@ -127,6 +127,10 @@ lto_write_options (void)
&& !global_options.x_flag_strict_overflow)
append_to_collect_gcc_options (&temporary_obstack, &first_p,
"-fno-strict-overflow");
+ if (!global_options_set.x_flag_tree_loop_distribute_patterns
+ && !global_options.x_flag_tree_loop_distribute_patterns)
+ append_to_collect_gcc_options (&temporary_obstack, &first_p,
+ "-fno-tree-loop-distribute-patterns");
/* Output explicitly passed options. */
for (i = 1; i < save_decoded_options_count; ++i)
diff --git a/gcc/lto-wrapper.c b/gcc/lto-wrapper.c
index 08fd090..242c128 100644
--- a/gcc/lto-wrapper.c
+++ b/gcc/lto-wrapper.c
@@ -247,6 +247,7 @@ merge_and_complain (struct cl_decoded_option **decoded_options,
case OPT_ftrapv:
case OPT_fstrict_overflow:
+ case OPT_ftree_loop_distribute_patterns:
case OPT_ffp_contract_:
/* For selected options we can merge conservatively. */
for (j = 0; j < *decoded_options_count; ++j)
@@ -505,6 +506,7 @@ run_gcc (unsigned argc, char *argv[])
case OPT_fwrapv:
case OPT_ftrapv:
case OPT_fstrict_overflow:
+ case OPT_ftree_loop_distribute_patterns:
case OPT_O:
case OPT_Ofast:
case OPT_Og:
--
1.9.3