diff options
author | Marco Poletti <poletti.marco@gmail.com> | 2015-07-19 17:12:47 +0100 |
---|---|---|
committer | Marco Poletti <poletti.marco@gmail.com> | 2015-07-19 17:15:49 +0100 |
commit | 36253c97e709182e1844f70f6afe102583445869 (patch) | |
tree | 4f9a5166cb7906aa82ff6f11911f5b97a3e24809 /examples | |
parent | daf6222f62ed424eca3532ca0bd2be96258d6092 (diff) | |
download | google-fruit-36253c97e709182e1844f70f6afe102583445869.tar.gz |
Major changes to the metaprogramming code. Now using a DFS search to find dependency loops instead of transitive closure of the edges (at compile time), expressing more operations as Fold/Transform for conciseness, added ImmutableSet/ImmutableMap (compile-time data structures), now calculating the exact dep loop (if any), and many other small changes.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/compile_time_benchmark/CMakeLists.txt | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/examples/compile_time_benchmark/CMakeLists.txt b/examples/compile_time_benchmark/CMakeLists.txt index 61b4398..a70d78e 100644 --- a/examples/compile_time_benchmark/CMakeLists.txt +++ b/examples/compile_time_benchmark/CMakeLists.txt @@ -1,9 +1,11 @@ add_custom_target(compile_time_benchmark - #COMMAND echo Release + COMMAND echo Release COMMAND time ${CMAKE_CXX_COMPILER} -std=c++11 -O2 -W -Wall -Werror -DNDEBUG -ftemplate-depth=1000 -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -c ${CMAKE_CURRENT_SOURCE_DIR}/module.cpp -o module.o - #COMMAND echo "Release \"(\"no dep check\")\"" - #COMMAND time ${CMAKE_CXX_COMPILER} -std=c++11 -O2 -W -Wall -Werror -DFRUIT_NO_LOOP_CHECK -DNDEBUG -ftemplate-depth=1000 -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -c ${CMAKE_CURRENT_SOURCE_DIR}/module.cpp -o module.o + COMMAND echo "Release \"(\"no dep check\")\"" + COMMAND time ${CMAKE_CXX_COMPILER} -std=c++11 -O2 -W -Wall -Werror -DFRUIT_NO_LOOP_CHECK -DNDEBUG -ftemplate-depth=1000 -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -c ${CMAKE_CURRENT_SOURCE_DIR}/module.cpp -o module.o + COMMAND echo "Metaprogramming instantiation stats" + COMMAND ${CMAKE_CXX_COMPILER} -std=c++11 -O2 -W -Wall -Werror -DFRUIT_TRACE_INSTANTIATIONS -DNDEBUG -ftemplate-depth=1000 -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -c ${CMAKE_CURRENT_SOURCE_DIR}/module.cpp -o module.o 2>&1 | fgrep "Werror=deprecated-declarations" | sed "'s/.*with MetaFun = //;s/ MetaExprs =.*//;s/.*with MetaExpr =.*/constant/;s/.*static constexpr bool fruit::impl::meta::DoEval<fruit::impl::meta::If.*/If1/;s/.*static constexpr bool fruit::impl::meta::EvalIf.*/If2/'" | sed "'s/fruit::impl::meta:://g'" | sed "'s/::apply<.*>/::apply<...>/'" | sort | uniq -c | sort -n #COMMAND echo Debug #COMMAND time ${CMAKE_CXX_COMPILER} -std=c++11 -Os -g -W -Wall -Werror -ftemplate-depth=1000 -I${CMAKE_CURRENT_SOURCE_DIR}/../../include -c ${CMAKE_CURRENT_SOURCE_DIR}/module.cpp -o module.o #COMMAND echo "Debug \"(\"no dep check\")\"" |