From 0a6fd85ac1b3c1e22a5c216e5fcbf7d192a5fc20 Mon Sep 17 00:00:00 2001 From: trav90 Date: Thu, 19 Apr 2018 11:39:02 -0500 Subject: Force use of level 1 Liftetime DSE optimization on modern GCC Instead of completely disabling it. --- build/autoconf/compiler-opts.m4 | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'build') diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4 index 57a974435..d4016b609 100644 --- a/build/autoconf/compiler-opts.m4 +++ b/build/autoconf/compiler-opts.m4 @@ -183,16 +183,15 @@ if test "$GNU_CC"; then case "$CC_VERSION" in 4.*) ;; + 5.*) + ;; *) # Lifetime Dead Store Elimination level 2 (default in GCC6+) breaks Gecko. - # Ideally, we'd use -flifetime-dse=1, but that means we'd forcefully - # enable it on optimization levels where it would otherwise not be enabled. - # So we disable it entirely. But since that would mean inconsistency with - # GCC5, which has level 1 depending on optimization level, disable it on - # GCC5 as well, because better safe than sorry. + # Instead of completely disabling this optimization on newer GCC's, + # we'll force them to use level 1 optimization with -flifetime-dse=1. # Add it first so that a mozconfig can override by setting CFLAGS/CXXFLAGS. - CFLAGS="-fno-lifetime-dse $CFLAGS" - CXXFLAGS="-fno-lifetime-dse $CXXFLAGS" + CFLAGS="-flifetime-dse=1 $CFLAGS" + CXXFLAGS="-flifetime-dse=1 $CXXFLAGS" ;; esac fi -- cgit v1.2.3 From c5a52404bd6206a481aedc61ea21f9dccf93377a Mon Sep 17 00:00:00 2001 From: trav90 Date: Fri, 20 Apr 2018 08:27:35 -0500 Subject: Style fix --- build/autoconf/compiler-opts.m4 | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'build') diff --git a/build/autoconf/compiler-opts.m4 b/build/autoconf/compiler-opts.m4 index d4016b609..c47d792f4 100644 --- a/build/autoconf/compiler-opts.m4 +++ b/build/autoconf/compiler-opts.m4 @@ -181,9 +181,7 @@ if test "$GNU_CC"; then if test -z "$CLANG_CC"; then case "$CC_VERSION" in - 4.*) - ;; - 5.*) + 4.* | 5.*) ;; *) # Lifetime Dead Store Elimination level 2 (default in GCC6+) breaks Gecko. -- cgit v1.2.3