Commit cb8646af authored by Timothy Gu's avatar Timothy Gu

configure: Enable GCC vectorization on ≥4.9 on x86

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.
parent 8e46c7c1
...@@ -5935,7 +5935,11 @@ elif enabled ccc; then ...@@ -5935,7 +5935,11 @@ elif enabled ccc; then
add_cflags -msg_disable nonstandcast add_cflags -msg_disable nonstandcast
add_cflags -msg_disable unsupieee add_cflags -msg_disable unsupieee
elif enabled gcc; then 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=format-security
check_cflags -Werror=implicit-function-declaration check_cflags -Werror=implicit-function-declaration
check_cflags -Werror=missing-prototypes check_cflags -Werror=missing-prototypes
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment