From cb8646af24bd8e9627cc5e1c62b049a00fe0b07b Mon Sep 17 00:00:00 2001 From: Timothy Gu Date: Sat, 30 Jan 2016 10:52:44 -0800 Subject: [PATCH] =?UTF-8?q?configure:=20Enable=20GCC=20vectorization=20on?= =?UTF-8?q?=20=E2=89=A54.9=20on=20x86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 4.9 was released precisely nine years after the first GCC version with autovectorizer (4.0) and six years after the first GCC version with `-ftree-vectorize` default to enabled on `-O3` (4.3). We've given GCC enough time to fix those bugs. FATE passes here on a x86-64 machine with both GCC 4.9.2 and 5.3.1. Some optimization hotspots benefit greatly from this change, especially those without handwritten assembly. For instance, the main function in vf_phase is now 1.6x faster (1.2x overall) on my machine. --- configure | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 1000cb1766..2148f11044 100755 --- a/configure +++ b/configure @@ -5935,7 +5935,11 @@ elif enabled ccc; then add_cflags -msg_disable nonstandcast add_cflags -msg_disable unsupieee elif enabled gcc; then - check_optflags -fno-tree-vectorize + case $gcc_basever in + 4.9*) enabled x86 || check_optflags -fno-tree-vectorize ;; + 4.*) check_optflags -fno-tree-vectorize ;; + *) enabled x86 || check_optflags -fno-tree-vectorize ;; + esac check_cflags -Werror=format-security check_cflags -Werror=implicit-function-declaration check_cflags -Werror=missing-prototypes