CMSIS-DSP: Added ARM_MATH_AUTOVECTORIZE and AUTOVECTORIZE to cmake

It is to provide more control and to disable
intrinsics version of some kernels when the C code is simple enough to
benefit from vectorization.

Since the result is compiler dependent, this option is optional.
(And it is not yet added to the source files).

Compilation flags may have to be tuned (-O3 for instance ...)
pull/19/head
Christophe Favergeon 6 years ago
parent b6f57a4b9b
commit 0e915a0458

@ -18,8 +18,14 @@ if (MATRIXCHECK)
target_compile_definitions(${project} PRIVATE ARM_MATH_MATRIX_CHECK) target_compile_definitions(${project} PRIVATE ARM_MATH_MATRIX_CHECK)
endif() endif()
if (AUTOVECTORIZE)
target_compile_definitions(${project} PRIVATE ARM_MATH_AUTOVECTORIZE)
endif()
if (NEON OR NEONEXPERIMENTAL) if (NEON OR NEONEXPERIMENTAL)
target_include_directories(${project} PRIVATE "${root}/CMSIS/DSP/ComputeLibrary/Include") target_include_directories(${project} PRIVATE "${root}/CMSIS/DSP/ComputeLibrary/Include")
endif() endif()
endfunction() endfunction()

@ -17,7 +17,7 @@ function(compilerSpecificCompileOptions PROJECTNAME ROOT)
get_target_property(DISABLEOPTIM ${PROJECTNAME} DISABLEOPTIMIZATION) get_target_property(DISABLEOPTIM ${PROJECTNAME} DISABLEOPTIMIZATION)
if ((OPTIMIZED) AND (NOT DISABLEOPTIM)) if ((OPTIMIZED) AND (NOT DISABLEOPTIM))
#cmake_print_variables(DISABLEOPTIM) #cmake_print_variables(DISABLEOPTIM)
target_compile_options(${PROJECTNAME} PRIVATE "-O2") target_compile_options(${PROJECTNAME} PRIVATE "-O3")
endif() endif()
if (FASTMATHCOMPUTATIONS) if (FASTMATHCOMPUTATIONS)

@ -5,6 +5,7 @@
include(Toolchain/Tools) include(Toolchain/Tools)
option(OPTIMIZED "Compile for speed" ON) option(OPTIMIZED "Compile for speed" ON)
option(AUTOVECTORIZE "Prefer autovectorizable code to one using C intrinsics" OFF)
enable_language(CXX C ASM) enable_language(CXX C ASM)

Loading…
Cancel
Save