+function bench_nitc_vc_nitg-e()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ prepare_res "$name-nitc.dat" "nitc" "nitc"
+ run_compiler "nitc" ./nitc_3 -O
+ prepare_res "$name-nitc-malloc.dat" "nitc-malloc" "nitc with malloc"
+ NIT_GC_OPTION="malloc" run_compiler "nitc" ./nitc_3 -O
+ prepare_res "$name-nitc-bohem.dat" "nitc-boehm" "nitc with boehm"
+ NIT_GC_OPTION="boehm" run_compiler "nitc" ./nitc_3 -O
+ prepare_res "$name-nitg-e-nockeck-malloc.dat" "nitg-e-nc-malloc" "nitg with --erasure --no-check-autocast --no-check-erasure-cast and malloc"
+ run_compiler "nitg-e-nc-malloc" ./nitg --erasure --no-check-autocast --no-check-erasure-cast --make-flags "CFLAGS=\"-O2 -DNOBOEHM\""
+ prepare_res "$name-nitg-e-nockeck.dat" "nitg-e-nc" "nitg with --erasure --no-check-autocast --no-check-erasure-cast"
+ run_compiler "nitg-e-nc" ./nitg --erasure --no-check-autocast --no-check-erasure-cast
+ prepare_res "$name-nitg-e.dat" "nitg-e" "nitg with --erasure"
+ run_compiler "nitg-e" ./nitg --erasure
+ plot "$name.gnu"
+}
+bench_nitc_vc_nitg-e
+
+function bench_nitg-e_gc()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ prepare_res "$name-nitg-e-malloc.dat" "nitg-e-malloc" "nitg with --erasure and malloc"
+ run_compiler "nitg-e-malloc" ./nitg --erasure --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM\""
+ prepare_res "$name-nitg-e-noatomic.dat" "nitg-e-noatomic" "nitg with --erasure and no atomic"
+ run_compiler "nitg-e-noatomic" ./nitg --erasure --make-flags "CFLAGS=\"-g -O2 -DNOBOEHM_ATOMIC\""
+ prepare_res "$name-nitg-e.dat" "nitg-e" "nitg with --erasure"
+ run_compiler "nitg-e" ./nitg --erasure
+ plot "$name.gnu"
+}
+bench_nitg-e_gc
+
+function bench_cc_nitg-e()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ for o in "gcc0:CC=\"ccache gcc\" CFLAGS=-O0" "cl0:CC=\"ccache clang\" CFLAGS=-O0" "gccs:CC=\"ccache gcc\" CFLAGS=-Os" "cls:CC=\"ccache clang\" CFLAGS=-Os" "gcc2:CC=\"ccache gcc\" CFLAGS=-O2" "cl2:CC=\"ccache clang\" CFLAGS=-O2" "gcc3:CC=\"ccache gcc\" CFLAGS=-O3" "cl3:CC=\"ccache clang\" CFLAGS=-O3"; do
+ f=`echo "$o" | cut -f1 -d:`
+ o=`echo "$o" | cut -f2 -d:`
+ prepare_res "$name-nitg-e-$f.dat" "nitg-e-$f" "nitg with --erasure --make-flags $o"
+ run_compiler "nitg-e-$f" ./nitg --erasure --make-flags "$o"
+ done
+ plot "$name.gnu"
+}
+bench_cc_nitg-e
+
+function bench_policy()
+{
+ name="$FUNCNAME"
+ skip_test "$name" && return
+ prepare_res "$name-nitg-s.dat" "nitg-s" "nitg with --separate"
+ run_compiler "nitg-s" ./nitg --separate
+ prepare_res "$name-nitg-su" "nitg-su" "nitg with --separate --no-check-covariance"
+ run_compiler "nitg-su" ./nitg --separate --no-check-covariance
+ prepare_res "$name-nitg-e.dat" "nitg-e" "nitg with --erasure"
+ run_compiler "nitg-e" ./nitg --erasure
+ prepare_res "$name-nitg-eu" "nitg-eu" "nitg with --erasure --no-check-covariance --no-check-erasure-cast"
+ run_compiler "nitg-eu" ./nitg --erasure --no-check-covariance --no-check-erasure-cast
+ plot "$name.gnu"
+}
+bench_policy
+