From 0b4a769ec91b21d7d5237d3ba60d02c90304dc33 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sun, 12 Apr 2015 22:35:17 +0100 Subject: [PATCH] Don't enable -fprefetch-loop-arrays for TARGET_SOFTWARE_PREFETCHING_BENEFICIAL if -Os. Testing an x86_64 toolchain configured for a processor with TARGET_SOFTWARE_PREFETCHING_BENEFICIAL produces failures FAIL: g++.dg/pr60518.C -std=gnu++98 (test for excess errors) FAIL: g++.dg/pr60518.C -std=gnu++11 (test for excess errors) FAIL: g++.dg/pr60518.C -std=gnu++14 (test for excess errors) where the failure is from the message "pr60518.C:1:0: warning: -fprefetch-loop-arrays is not supported with -Os". Given that lack of support, it seems appropriate for the back end not to enable this option in the -Os case; this patch implements that. Bootstrapped with no regressions on x86_64-unknown-linux-gnu; tested for a cross to x86_64-linux-gnu --with-arch=btver2, where those test failures duly disappear. * config/i386/i386.c (ix86_option_override_internal): Don't set -fprefetch-loop-arrays if optimizing for size. From-SVN: r222033 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 1 + 2 files changed, 6 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5e1b6173caa..dfd76ab6147 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-04-12 Joseph Myers + + * config/i386/i386.c (ix86_option_override_internal): Don't set + -fprefetch-loop-arrays if optimizing for size. + 2015-04-12 Jan Hubicka Gerald Pfeifer diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 110ec4adc68..b442da9802e 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -4168,6 +4168,7 @@ ix86_option_override_internal (bool main_args_p, if (opts->x_flag_prefetch_loop_arrays < 0 && HAVE_prefetch && (opts->x_optimize >= 3 || opts->x_flag_profile_use) + && !opts->x_optimize_size && TARGET_SOFTWARE_PREFETCHING_BENEFICIAL) opts->x_flag_prefetch_loop_arrays = 1; -- 2.30.2