Index: test-suite/trunk/CMakeLists.txt =================================================================== --- test-suite/trunk/CMakeLists.txt +++ test-suite/trunk/CMakeLists.txt @@ -77,6 +77,18 @@ # Run Under configuration for RunSafely.sh (will be set in lit.site.cfg) set(TEST_SUITE_RUN_UNDER "" CACHE STRING "RunSafely.sh run-under (-u) parameter") +# User mode emulation configuration (e.g. running under qemu) +# (will be set in lit.site.cfg) +set(TEST_SUITE_USER_MODE_EMULATION NO CACHE BOOL + "RUN_UNDER is used to run tests under emulation.") +# Set value to python style True/False +if (TEST_SUITE_USER_MODE_EMULATION) + set(TEST_SUITE_USER_MODE_EMULATION "True") +else() + set(TEST_SUITE_USER_MODE_EMULATION "False") +endif() + + # run type/benchmark size configuration (mostly for SPEC at the moment) set(TEST_SUITE_RUN_TYPE "train" CACHE STRING "Type of benchmark inputs (may be test,train or ref)") @@ -220,7 +232,10 @@ add_subdirectory(tools) # Shortcut for the path to the fpcmp executable -set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp) +set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp-target) +if (TEST_SUITE_USER_MODE_EMULATION) + set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcmp) +endif() option(TEST_SUITE_COLLECT_COMPILE_TIME "Measure compile time by wrapping compiler invocations in timeit" ON) Index: test-suite/trunk/cmake/modules/TestSuite.cmake =================================================================== --- test-suite/trunk/cmake/modules/TestSuite.cmake +++ test-suite/trunk/cmake/modules/TestSuite.cmake @@ -99,7 +99,8 @@ build-HashProgramOutput.sh build-timeit build-timeit-target - fpcmp + build-fpcmp + build-fpcmp-target ) endfunction() Index: test-suite/trunk/lit.site.cfg.in =================================================================== --- test-suite/trunk/lit.site.cfg.in +++ test-suite/trunk/lit.site.cfg.in @@ -5,6 +5,7 @@ config.remote_client = "@TEST_SUITE_REMOTE_CLIENT@" config.remote_host = "@TEST_SUITE_REMOTE_HOST@" config.run_under = "@TEST_SUITE_RUN_UNDER@" +config.user_mode_emulation = @TEST_SUITE_USER_MODE_EMULATION@ config.strip_tool = "@CMAKE_STRIP@" config.profile_generate = @TEST_SUITE_PROFILE_GENERATE@ config.llvm_profdata = "@TEST_SUITE_LLVM_PROFDATA@" Index: test-suite/trunk/litsupport/modules/timeit.py =================================================================== --- test-suite/trunk/litsupport/modules/timeit.py +++ test-suite/trunk/litsupport/modules/timeit.py @@ -9,7 +9,14 @@ config = context.config cmd = shellcommand.parse(commandline) - timeit = "%s/tools/timeit-target" % config.test_source_root + if config.user_mode_emulation: + # user_mode_emulation should be true if tests are being run via + # user-mode emulation (e.g. Qemu) and thus the host version of timeit + # should be used. + timeit_name = "timeit" + else: + timeit_name = "timeit-target" + timeit = "%s/tools/%s" % (config.test_source_root, timeit_name) args = ["--limit-core", "0"] args += ["--limit-cpu", "7200"] args += ["--timeout", "7200"] Index: test-suite/trunk/tools/CMakeLists.txt =================================================================== --- test-suite/trunk/tools/CMakeLists.txt +++ test-suite/trunk/tools/CMakeLists.txt @@ -7,7 +7,9 @@ include(Host) -add_executable(fpcmp fpcmp.c) +add_executable(fpcmp-target ${CMAKE_CURRENT_SOURCE_DIR}/fpcmp.c) +add_executable(build-fpcmp-target ALIAS fpcmp-target) +llvm_add_host_executable(build-fpcmp fpcmp fpcmp.c) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/HashProgramOutput.sh