aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMarco Poletti <poletti.marco@gmail.com>2015-07-19 17:12:47 +0100
committerMarco Poletti <poletti.marco@gmail.com>2015-07-19 17:15:49 +0100
commit36253c97e709182e1844f70f6afe102583445869 (patch)
tree4f9a5166cb7906aa82ff6f11911f5b97a3e24809 /examples
parentdaf6222f62ed424eca3532ca0bd2be96258d6092 (diff)
downloadgoogle-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.txt8
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\")\""