This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Don't enable -fprefetch-loop-arrays for TARGET_SOFTWARE_PREFETCHING_BENEFICIAL if -Os
- From: Joseph Myers <joseph at codesourcery dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 9 Apr 2015 22:06:20 +0000
- Subject: Don't enable -fprefetch-loop-arrays for TARGET_SOFTWARE_PREFETCHING_BENEFICIAL if -Os
- Authentication-results: sourceware.org; auth=none
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. OK to commit?
2015-04-09 Joseph Myers <joseph@codesourcery.com>
* config/i386/i386.c (ix86_option_override_internal): Don't set
-fprefetch-loop-arrays if optimizing for size.
Index: gcc/config/i386/i386.c
===================================================================
--- gcc/config/i386/i386.c (revision 221936)
+++ gcc/config/i386/i386.c (working copy)
@@ -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;
--
Joseph S. Myers
joseph@codesourcery.com