[test-suite] r261854 - [cmake] Add support for timeit.sh (--use-perf) and --benchmarking-only.
Matthias Braun via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 25 13:16:31 PST 2016
Hey James,
I'd be interested to learn a bit more about the use case for the TEST_SUITE_USE_PERF part of this patch. Why do we have a 2nd version of timeit and in which situations would you want to use it?
In fact I already introduced a few small additions to timeit.c that are currently only used the External/* benchmarks, do I need to extend timeit.sh in the future as well or can we find a way to only use time measurement system?
- Matthias
> On Feb 25, 2016, at 2:46 AM, James Molloy via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
> Author: jamesm
> Date: Thu Feb 25 04:46:33 2016
> New Revision: 261854
>
> URL: http://llvm.org/viewvc/llvm-project?rev=261854&view=rev
> Log:
> [cmake] Add support for timeit.sh (--use-perf) and --benchmarking-only.
>
> Modified:
> test-suite/trunk/CMakeLists.txt
> test-suite/trunk/cmake/modules/SingleMultiSource.cmake
> test-suite/trunk/tools/CMakeLists.txt
>
> Modified: test-suite/trunk/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/CMakeLists.txt?rev=261854&r1=261853&r2=261854&view=diff
> ==============================================================================
> --- test-suite/trunk/CMakeLists.txt (original)
> +++ test-suite/trunk/CMakeLists.txt Thu Feb 25 04:46:33 2016
> @@ -128,6 +128,14 @@ set(FPCMP ${CMAKE_BINARY_DIR}/tools/fpcm
> set(CMAKE_C_COMPILE_OBJECT "${CMAKE_BINARY_DIR}/tools/timeit --summary <OBJECT>.time ${CMAKE_C_COMPILE_OBJECT}")
> set(CMAKE_CXX_COMPILE_OBJECT "${CMAKE_BINARY_DIR}/tools/timeit --summary <OBJECT>.time ${CMAKE_CXX_COMPILE_OBJECT}")
>
> +set(TEST_SUITE_BENCHMARKING_ONLY "OFF" CACHE BOOL
> + "Only run the benchmarking only subset")
> +if(TEST_SUITE_BENCHMARKING_ONLY)
> + set(BENCHMARKING_ONLY "ON")
> +else()
> + set(BENCHMARKING_ONLY)
> +endif()
> +
> add_subdirectory(SingleSource)
> add_subdirectory(MultiSource)
> add_subdirectory(External)
>
> Modified: test-suite/trunk/cmake/modules/SingleMultiSource.cmake
> URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/cmake/modules/SingleMultiSource.cmake?rev=261854&r1=261853&r2=261854&view=diff
> ==============================================================================
> --- test-suite/trunk/cmake/modules/SingleMultiSource.cmake (original)
> +++ test-suite/trunk/cmake/modules/SingleMultiSource.cmake Thu Feb 25 04:46:33 2016
> @@ -152,7 +152,10 @@ macro(test_suite_add_executable name mai
> endif()
>
> llvm_add_test(${name} ${source_exename})
> - add_dependencies(${source_exename} timeit-host timeit-target fpcmp-host)
> + if (NOT TEST_SUITE_USE_PERF)
> + add_dependencies(${source_exename} timeit-target)
> + endif()
> + add_dependencies(${source_exename} timeit-host fpcmp-host)
> endif()
> endmacro()
>
>
> Modified: test-suite/trunk/tools/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/test-suite/trunk/tools/CMakeLists.txt?rev=261854&r1=261853&r2=261854&view=diff
> ==============================================================================
> --- test-suite/trunk/tools/CMakeLists.txt (original)
> +++ test-suite/trunk/tools/CMakeLists.txt Thu Feb 25 04:46:33 2016
> @@ -1,7 +1,3 @@
> -add_executable(timeit-target ${CMAKE_CURRENT_SOURCE_DIR}/timeit.c)
> -
> -# FIXME: Replicate Makefile.tools's logic for determining whether to use fpcmp/fpcmp.sh
> -
> # Note that we have to compile fpcmp and timeit for the host machine even when
> # cross compiling to a different target. We use custom rules doing "cc file.c"
> # as an ad-hoc solution for now. A proper solution would probably be based on
> @@ -19,4 +15,15 @@ macro(llvm_add_host_executable targetnam
> endmacro()
>
> llvm_add_host_executable(fpcmp-host fpcmp fpcmp.c)
> -llvm_add_host_executable(timeit-host timeit timeit.c)
> +
> +set(TEST_SUITE_USE_PERF "OFF" CACHE BOOL "Use perf (timeit.sh) instead of timeit.c")
> +if (${TEST_SUITE_USE_PERF})
> + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/timeit
> + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/timeit.sh ${CMAKE_CURRENT_BINARY_DIR}/timeit
> + COMMAND chmod +x ${CMAKE_CURRENT_BINARY_DIR}/timeit
> + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/timeit.sh)
> + add_custom_target(timeit-host DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/timeit)
> +else()
> + add_executable(timeit-target ${CMAKE_CURRENT_SOURCE_DIR}/timeit.c)
> + llvm_add_host_executable(timeit-host timeit timeit.c)
> +endif()
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list