diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,7 +233,7 @@ include(TestSuite) include(SingleMultiSource) -find_package(TCL) +# Needs by External/sollve_vv. find_package(OpenMP) if(NOT DEFINED TARGET_OS) diff --git a/External/SPEC/CFP2017rate/503.bwaves_r/CMakeLists.txt b/External/SPEC/CFP2017rate/503.bwaves_r/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CFP2017rate/503.bwaves_r/CMakeLists.txt @@ -0,0 +1,67 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/503.bwaves_r.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(RATE) + +## test ######################################################################## + +speccpu2017_run_test( + < "${INPUT_test_DIR}/bwaves_1.in" + STDOUT bwaves_1.out + RUN_TYPE test +) + +speccpu2017_run_test( + < "${INPUT_test_DIR}/bwaves_2.in" + STDOUT bwaves_2.out + RUN_TYPE test +) + +## train ####################################################################### + +speccpu2017_run_test( + < "${INPUT_train_DIR}/bwaves_1.in" + STDOUT bwaves_1.out + RUN_TYPE train +) + +speccpu2017_run_test( + < "${INPUT_train_DIR}/bwaves_2.in" + STDOUT bwaves_2.out + RUN_TYPE train +) + +## ref ######################################################################### + +speccpu2017_run_test( + < "${INPUT_ref_DIR}/bwaves_1.in" + STDOUT bwaves_1.out + RUN_TYPE ref +) + +speccpu2017_run_test( + < "${INPUT_ref_DIR}/bwaves_2.in" + STDOUT bwaves_2.out + RUN_TYPE ref +) + +speccpu2017_run_test( + < "${INPUT_ref_DIR}/bwaves_3.in" + STDOUT bwaves_3.out + RUN_TYPE ref +) + +speccpu2017_run_test( + < "${INPUT_ref_DIR}/bwaves_4.in" + STDOUT bwaves_4.out + RUN_TYPE ref +) + + +################################################################################ + +speccpu2017_verify_output() +speccpu2017_add_executable() diff --git a/External/SPEC/CFP2017rate/507.cactuBSSN_r/CMakeLists.txt b/External/SPEC/CFP2017rate/507.cactuBSSN_r/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CFP2017rate/507.cactuBSSN_r/CMakeLists.txt @@ -0,0 +1,52 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/507.cactuBSSN_r.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(RATE) + +speccpu2017_add_include_dirs( + include +) + +## test ######################################################################## + +speccpu2017_run_test( + spec_test.par + WORKDIR input + STDOUT spec_test.out + RUN_TYPE test +) + + +## train ####################################################################### + +speccpu2017_run_test( + spec_train.par + WORKDIR input + STDOUT spec_train.out + RUN_TYPE train +) + +## ref ######################################################################### + +speccpu2017_run_test( + spec_ref.par + WORKDIR input + STDOUT spec_ref.out + RUN_TYPE ref +) + +################################################################################ + +speccpu2017_verify_output(ABSOLUTE_TOLERANCE 0.0000000000005) +speccpu2017_add_executable() + +# must come after speccpu2017_add_executable() which defines ${PROG} as a TARGET +set_property(TARGET ${PROG} PROPERTY C_STANDARD 99) + +# Preprocessing and compiler flags depend on programming language type. +target_compile_definitions(${PROG} PRIVATE $<$:FCODE>) +target_compile_definitions(${PROG} PRIVATE $<$:CCODE>) +target_compile_definitions(${PROG} PRIVATE $<$:CCODE CCTK_DISABLE_RESTRICT=1>) diff --git a/External/SPEC/CFP2017rate/CMakeLists.txt b/External/SPEC/CFP2017rate/CMakeLists.txt --- a/External/SPEC/CFP2017rate/CMakeLists.txt +++ b/External/SPEC/CFP2017rate/CMakeLists.txt @@ -1,5 +1,7 @@ -#add_subdirectory(503.bwaves_r) # Fortran -#add_subdirectory(507.cactuBSSN_r) # C++, C, Fortran +if (TEST_SUITE_FORTRAN) + add_subdirectory(503.bwaves_r) # Fortran + add_subdirectory(507.cactuBSSN_r) # C++, C, Fortran +endif () add_subdirectory(508.namd_r) # C++ add_subdirectory(510.parest_r) # C++ add_subdirectory(511.povray_r) # C++, C diff --git a/External/SPEC/CFP2017speed/603.bwaves_s/CMakeLists.txt b/External/SPEC/CFP2017speed/603.bwaves_s/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CFP2017speed/603.bwaves_s/CMakeLists.txt @@ -0,0 +1,9 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/603.bwaves_s.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(SPEED ORIGIN 503.bwaves_r) + +speccpu2017_inherit(../../CFP2017rate/503.bwaves_r) diff --git a/External/SPEC/CFP2017speed/607.cactuBSSN_s/CMakeLists.txt b/External/SPEC/CFP2017speed/607.cactuBSSN_s/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CFP2017speed/607.cactuBSSN_s/CMakeLists.txt @@ -0,0 +1,9 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/607.cactuBSSN_s.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(SPEED ORIGIN 507.cactuBSSN_r) + +speccpu2017_inherit(../../CFP2017rate/507.cactuBSSN_r) diff --git a/External/SPEC/CFP2017speed/CMakeLists.txt b/External/SPEC/CFP2017speed/CMakeLists.txt --- a/External/SPEC/CFP2017speed/CMakeLists.txt +++ b/External/SPEC/CFP2017speed/CMakeLists.txt @@ -1,5 +1,7 @@ -#add_subdirectory(603.bwaves_s) # Fortran -#add_subdirectory(607.cactuBSSN_s) # C++, C, Fortran +if (TEST_SUITE_FORTRAN) + add_subdirectory(603.bwaves_s) # Fortran + add_subdirectory(607.cactuBSSN_s) # C++, C, Fortran +endif () add_subdirectory(619.lbm_s) # C #add_subdirectory(621.wrf_s) # Fortran, C #add_subdirectory(627.cam4_s) # Fortran, C diff --git a/External/SPEC/CINT2000/186.crafty/CMakeLists.txt b/External/SPEC/CINT2000/186.crafty/CMakeLists.txt --- a/External/SPEC/CINT2000/186.crafty/CMakeLists.txt +++ b/External/SPEC/CINT2000/186.crafty/CMakeLists.txt @@ -26,6 +26,8 @@ list(APPEND CPPFLAGS -DHAS_LONGLONG) endif() +list(APPEND LDFLAGS ${LD_MULTIDEF_FLAG}) + set(SourceNames attacks.c boolean.c diff --git a/External/SPEC/CINT2000/300.twolf/CMakeLists.txt b/External/SPEC/CINT2000/300.twolf/CMakeLists.txt --- a/External/SPEC/CINT2000/300.twolf/CMakeLists.txt +++ b/External/SPEC/CINT2000/300.twolf/CMakeLists.txt @@ -1,5 +1,6 @@ list(APPEND CPPFLAGS -DHAVE_SIGNED_CHAR) list(APPEND LDFLAGS -lm) +list(APPEND LDFLAGS ${LD_MULTIDEF_FLAG}) list(APPEND CFLAGS -Wno-return-type) macro(test_input run_type) diff --git a/External/SPEC/CINT2017rate/548.exchange2_r/CMakeLists.txt b/External/SPEC/CINT2017rate/548.exchange2_r/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CINT2017rate/548.exchange2_r/CMakeLists.txt @@ -0,0 +1,34 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/548.exchange2_r.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(RATE) + +## test ######################################################################## + +speccpu2017_run_test( + 0 + RUN_TYPE test +) + +## train ####################################################################### + +speccpu2017_run_test( + 1 + RUN_TYPE train +) + +## ref ######################################################################### + +speccpu2017_run_test( + 6 + RUN_TYPE ref +) + +################################################################################ + +speccpu2017_verify_output() +speccpu2017_add_executable() +speccpu2017_prepare_rundir() diff --git a/External/SPEC/CINT2017rate/CMakeLists.txt b/External/SPEC/CINT2017rate/CMakeLists.txt --- a/External/SPEC/CINT2017rate/CMakeLists.txt +++ b/External/SPEC/CINT2017rate/CMakeLists.txt @@ -6,7 +6,9 @@ add_subdirectory(525.x264_r) # C add_subdirectory(531.deepsjeng_r) # C++ add_subdirectory(541.leela_r) # C++ -#add_subdirectory(548.exchange2_r) # Fortran +if (TEST_SUITE_FORTRAN) + add_subdirectory(548.exchange2_r) # Fortran +endif () add_subdirectory(557.xz_r) # C add_subdirectory(999.specrand_ir) # C diff --git a/External/SPEC/CINT2017speed/648.exchange2_s/CMakeLists.txt b/External/SPEC/CINT2017speed/648.exchange2_s/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/External/SPEC/CINT2017speed/648.exchange2_s/CMakeLists.txt @@ -0,0 +1,9 @@ +# https://www.spec.org/cpu2017/Docs/benchmarks/648.exchange2_s.html +include(../../SpecCPU2017.cmake) +if (NOT TEST_SUITE_SPEC2017_ROOT) + return () +endif () + +speccpu2017_benchmark(SPEED ORIGIN 548.exchange2_r) + +speccpu2017_inherit(../../CINT2017rate/548.exchange2_r) diff --git a/External/SPEC/CINT2017speed/CMakeLists.txt b/External/SPEC/CINT2017speed/CMakeLists.txt --- a/External/SPEC/CINT2017speed/CMakeLists.txt +++ b/External/SPEC/CINT2017speed/CMakeLists.txt @@ -6,7 +6,9 @@ add_subdirectory(625.x264_s) # C add_subdirectory(631.deepsjeng_s) # C++ add_subdirectory(641.leela_s) # C++ -#add_subdirectory(648.exchange2_s) # Fortran +if (TEST_SUITE_FORTRAN) + add_subdirectory(648.exchange2_s) # Fortran +endif () add_subdirectory(657.xz_s) # C add_subdirectory(998.specrand_is) # C diff --git a/External/SPEC/SpecCPU2000.cmake b/External/SPEC/SpecCPU2000.cmake --- a/External/SPEC/SpecCPU2000.cmake +++ b/External/SPEC/SpecCPU2000.cmake @@ -1,4 +1,5 @@ include(External) +include(CheckCSourceCompiles) llvm_externals_find(TEST_SUITE_SPEC2000_ROOT "speccpu2000" "SPEC CPU2000") if(TEST_SUITE_SPEC2000_ROOT) # SPEC supports three "run types": ref, train and test @@ -33,4 +34,18 @@ function(llvm_test_data_spec_default target) llvm_test_data_spec(${target} data) endfunction() + + function(check_supports_zmuldefs) + # Does not check whether the option has an effect. + # -z options are usually ignored if the particular option. + # Alternative option is --allow-multiple-definition + set(CMAKE_REQUIRED_LINK_OPTIONS "-Wl,-zmuldefs") + check_c_source_compiles("int main() { return 0; };" LINKER_SUPPORTS_ZMULDEFS) + endfunction() + + check_supports_zmuldefs() + set(LD_MULTIDEF_FLAG) + if(LINKER_SUPPORTS_ZMULDEFS) + set(LD_MULTIDEF_FLAG "-Wl,-zmuldefs") + endif() endif() diff --git a/External/SPEC/SpecCPU2017.cmake b/External/SPEC/SpecCPU2017.cmake --- a/External/SPEC/SpecCPU2017.cmake +++ b/External/SPEC/SpecCPU2017.cmake @@ -252,14 +252,14 @@ macro(speccpu2017_validate_image _imgfile _cmpfile _outfile) cmake_parse_arguments(_carg "" "RUN_TYPE" "SUITE_TYPE" ${ARGN}) - set(VALIDATOR imagevalidate_${BENCHMARK_NO}) - if (NOT TARGET ${VALIDATOR}-host) + set(VALIDATOR imagevalidate_${BENCHMARK_NO}-target) + if (NOT TARGET ${VALIDATOR}) file(GLOB_RECURSE _validator_sources "${SRC_DIR}/image_validator/*.c") - llvm_add_host_executable( - ${VALIDATOR}-host ${VALIDATOR} ${_validator_sources} - LDFLAGS -lm - CPPFLAGS -DSPEC - ) + + add_executable(${VALIDATOR} ${_validator_sources}) + target_link_libraries(${VALIDATOR} m) + set_target_properties(${VALIDATOR} PROPERTIES COMPILE_FLAGS "-DSPEC") + add_dependencies(${VALIDATOR} timeit-target) endif () if ((NOT DEFINED _carg_SUITE_TYPE) OR (${BENCHMARK_SUITE_TYPE} IN_LIST _carg_SUITE_TYPE)) @@ -326,13 +326,13 @@ endforeach() else () file(GLOB_RECURSE _sources - ${SRC_DIR}/*.c ${SRC_DIR}/*.cpp ${SRC_DIR}/*.cc ${SRC_DIR}/*.C) + ${SRC_DIR}/*.c ${SRC_DIR}/*.cpp ${SRC_DIR}/*.cc ${SRC_DIR}/*.C ${SRC_DIR}/*.f ${SRC_DIR}/*.F ${SRC_DIR}/*.f90 ${SRC_DIR}/*.F90) endif () llvm_test_executable(${PROG} ${_sources}) - if (TARGET ${VALIDATOR}-host) - add_dependencies(${PROG} ${VALIDATOR}-host) + if (TARGET ${VALIDATOR}) + add_dependencies(${PROG} ${VALIDATOR}) endif () endmacro() diff --git a/MultiSource/Applications/sqlite3/CMakeLists.txt b/MultiSource/Applications/sqlite3/CMakeLists.txt --- a/MultiSource/Applications/sqlite3/CMakeLists.txt +++ b/MultiSource/Applications/sqlite3/CMakeLists.txt @@ -8,6 +8,7 @@ else() set(SQLITE_INPUTNAME speedtest) endif() +find_package(TCL) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/test15.sql COMMAND ${TCL_TCLSH} ${CMAKE_CURRENT_SOURCE_DIR}/${SQLITE_INPUTNAME}.tcl WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} diff --git a/SingleSource/Regression/C/gcc-c-torture/execute/CMakeLists.txt b/SingleSource/Regression/C/gcc-c-torture/execute/CMakeLists.txt --- a/SingleSource/Regression/C/gcc-c-torture/execute/CMakeLists.txt +++ b/SingleSource/Regression/C/gcc-c-torture/execute/CMakeLists.txt @@ -190,6 +190,7 @@ file(GLOB TestRequiresLibM CONFIGURE_DEPENDS 980709-1.c float-floor.c + complex-5.c # -lm needed on FreeBSD ) # Tests that require newnlib Nano IO (--undefined=_printf_float ldflag)