diff --git a/DEPENDENCIES b/DEPENDENCIES index b519d6ec1..9ff4f0fa5 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -1,5 +1,5 @@ vendorpull https://github.com/sourcemeta/vendorpull 70342aaf458e6cb80baeb5b718901075fc42ede6 -noa https://github.com/sourcemeta/noa 517e88aef5981b88ac6bb8caff15d17dffcb4320 +noa https://github.com/sourcemeta/noa 3b98a611b647926dd32065c4ac5011a40b5d8b20 jsontestsuite https://github.com/nst/JSONTestSuite d64aefb55228d9584d3e5b2433f720ea8fd00c82 googletest https://github.com/google/googletest a7f443b80b105f940225332ed3c31f2790092f47 jsonschema-2020-12 https://github.com/json-schema-org/json-schema-spec 769daad75a9553562333a8937a187741cb708c72 diff --git a/src/evaluator/CMakeLists.txt b/src/evaluator/CMakeLists.txt index 075dadcda..bc04b2337 100644 --- a/src/evaluator/CMakeLists.txt +++ b/src/evaluator/CMakeLists.txt @@ -7,6 +7,8 @@ if(JSONTOOLKIT_INSTALL) noa_library_install(NAMESPACE sourcemeta PROJECT jsontoolkit NAME evaluator) endif() +noa_add_verbose_vectorization(sourcemeta_jsontoolkit_evaluator) + target_link_libraries(sourcemeta_jsontoolkit_evaluator PUBLIC sourcemeta::jsontoolkit::json) target_link_libraries(sourcemeta_jsontoolkit_evaluator PUBLIC diff --git a/vendor/noa/cmake/noa/compiler/options.cmake b/vendor/noa/cmake/noa/compiler/options.cmake index b1fc6e53d..e40900a3c 100644 --- a/vendor/noa/cmake/noa/compiler/options.cmake +++ b/vendor/noa/cmake/noa/compiler/options.cmake @@ -42,6 +42,7 @@ function(noa_add_default_options visibility target) -Winvalid-offsetof -funroll-loops -fstrict-aliasing + -ftree-vectorize # Assume that signed arithmetic overflow of addition, subtraction and # multiplication wraps around using twos-complement representation @@ -78,6 +79,10 @@ function(noa_add_default_options visibility target) -fslp-vectorize) elseif(NOA_COMPILER_GCC) target_compile_options("${target}" ${visibility} + # To improve how much GCC will vectorize + -fno-math-errno + -fno-trapping-math + # Newer versions of GCC (i.e. 14) seem to print a lot of false-positives here -Wno-dangling-reference