aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch')
-rw-r--r--main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch b/main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch
new file mode 100644
index 0000000000..06e402ba73
--- /dev/null
+++ b/main/gcc/0040-opts-move-fpartial-inlining-from-O2-to-O3-or-higher.patch
@@ -0,0 +1,66 @@
+From b36fd572e6cbe63dca6fbedd91f17d2797524eaa Mon Sep 17 00:00:00 2001
+From: Ariadne Conill <ariadne@dereferenced.org>
+Date: Tue, 17 Nov 2020 10:35:40 +0000
+Subject: [PATCH 40/40] opts: move -fpartial-inlining from -O2 to -O3 or
+ higher.
+
+We have observed strange behavior from the inliner on mips and on
+s390x when the new partial inlining feature is enabled.
+---
+ gcc/doc/invoke.texi | 5 +++--
+ gcc/opts.c | 2 +-
+ 2 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 01e67e97491..6c4c2937b8f 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -9212,7 +9212,6 @@ also turns on the following optimization flags:
+ -flra-remat @gol
+ -foptimize-sibling-calls @gol
+ -foptimize-strlen @gol
+--fpartial-inlining @gol
+ -fpeephole2 @gol
+ -freorder-blocks-algorithm=stc @gol
+ -freorder-blocks-and-partition -freorder-functions @gol
+@@ -9234,7 +9233,8 @@ NOTE: In Alpine Linux, @option{-D_FORTIFY_SOURCE=2} is
+ set by default, and is activated when @option{-O} is set to 2 or higher.
+ This enables additional compile-time and run-time checks for several libc
+ functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+-@option{-D_FORTIFY_SOURCE=0}.
++@option{-D_FORTIFY_SOURCE=0}. Additionally, @option{-fpartial-inlining}
++is only activated when @option{-O} is set to 3 or higher.
+
+ @item -O3
+ @opindex O3
+@@ -9246,6 +9246,7 @@ by @option{-O2} and also turns on the following optimization flags:
+ -fipa-cp-clone
+ -floop-interchange @gol
+ -floop-unroll-and-jam @gol
++-fpartial-inlining @gol
+ -fpeel-loops @gol
+ -fpredictive-commoning @gol
+ -fsplit-loops @gol
+diff --git a/gcc/opts.c b/gcc/opts.c
+index 73162528938..1d0d997eda2 100644
+--- a/gcc/opts.c
++++ b/gcc/opts.c
+@@ -492,7 +492,6 @@ static const struct default_options default_options_table[] =
+ { OPT_LEVELS_2_PLUS, OPT_fisolate_erroneous_paths_dereference, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_flra_remat, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_foptimize_sibling_calls, NULL, 1 },
+- { OPT_LEVELS_2_PLUS, OPT_fpartial_inlining, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_fpeephole2, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_freorder_functions, NULL, 1 },
+ { OPT_LEVELS_2_PLUS, OPT_frerun_cse_after_loop, NULL, 1 },
+@@ -530,6 +529,7 @@ static const struct default_options default_options_table[] =
+ { OPT_LEVELS_3_PLUS, OPT_fipa_cp_clone, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_floop_interchange, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_floop_unroll_and_jam, NULL, 1 },
++ { OPT_LEVELS_3_PLUS, OPT_fpartial_inlining, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_fpeel_loops, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_fpredictive_commoning, NULL, 1 },
+ { OPT_LEVELS_3_PLUS, OPT_fsplit_loops, NULL, 1 },
+--
+2.29.2
+