safe fx ops benchmark pasted by megane on Mon Aug 19 15:51:45 2019
diff --git a/c-platform.scm b/c-platform.scm index bf034ff1..98d9440f 100644 --- a/c-platform.scm +++ b/c-platform.scm @@ -990,15 +990,27 @@ '("C_i_setslot") ) ) callargs) ) ) ) ) ) -(rewrite 'chicken.fixnum#fx+ 17 2 "C_fixnum_plus" "C_u_fixnum_plus") -(rewrite 'chicken.fixnum#fx- 17 2 "C_fixnum_difference" "C_u_fixnum_difference") -(rewrite 'chicken.fixnum#fxshl 17 2 "C_fixnum_shift_left") -(rewrite 'chicken.fixnum#fxshr 17 2 "C_fixnum_shift_right") -(rewrite 'chicken.fixnum#fxneg 17 1 "C_fixnum_negate" "C_u_fixnum_negate") -(rewrite 'chicken.fixnum#fxxor 17 2 "C_fixnum_xor" "C_fixnum_xor") -(rewrite 'chicken.fixnum#fxand 17 2 "C_fixnum_and" "C_u_fixnum_and") -(rewrite 'chicken.fixnum#fxior 17 2 "C_fixnum_or" "C_u_fixnum_or") -(rewrite 'chicken.fixnum#fx/ 17 2 "C_fixnum_divide" "C_u_fixnum_divide") +(rewrite 'chicken.fixnum#fx= 17 2 "C_i_s_fixnum_equalp" "C_eqp") +(rewrite 'chicken.fixnum#fx+ 17 2 "C_i_s_fixnum_plus" "C_u_fixnum_plus") +(rewrite 'chicken.fixnum#fx- 17 2 "C_i_s_fixnum_difference" "C_u_fixnum_difference") +(rewrite 'chicken.fixnum#fx* 17 2 "C_i_s_fixnum_times" "C_fixnum_times") +(rewrite 'chicken.fixnum#fx/ 17 2 "C_i_s_fixnum_divide" "C_u_fixnum_divide") +(rewrite 'chicken.fixnum#fxand 17 2 "C_i_s_fixnum_and" "C_u_fixnum_and") +(rewrite 'chicken.fixnum#fxior 17 2 "C_i_s_fixnum_or" "C_u_fixnum_or") +(rewrite 'chicken.fixnum#fxxor 17 2 "C_i_s_fixnum_xor" "C_fixnum_xor") +(rewrite 'chicken.fixnum#fxnot 17 1 "C_i_s_fixnum_not" "C_fixnum_not") +(rewrite 'chicken.fixnum#fxshr 17 2 "C_i_s_fixnum_shift_right" "C_fixnum_shift_right") +(rewrite 'chicken.fixnum#fxshl 17 2 "C_i_s_fixnum_shift_left" "C_fixnum_shift_left") +(rewrite 'chicken.fixnum#fxmax 17 2 "C_i_s_fixnum_max" "C_i_fixnum_max") +(rewrite 'chicken.fixnum#fxmin 17 2 "C_i_s_fixnum_min" "C_i_fixnum_min") +(rewrite 'chicken.fixnum#fxmod 17 2 "C_i_s_fixnum_modulo" "C_u_fixnum_modulo") +(rewrite 'chicken.fixnum#fxneg 17 1 "C_i_s_fixnum_negate" "C_u_fixnum_negate") +(rewrite 'chicken.fixnum#fxodd? 17 1 "C_i_s_fixnum_oddp" "C_i_fixnumoddp") +(rewrite 'chicken.fixnum#fxeven? 17 1 "C_i_s_fixnum_evenp" "C_i_fixnumevenp") +(rewrite 'chicken.fixnum#fx< 17 2 "C_i_s_fixnum_lessp" "C_fixnum_lessp") +(rewrite 'chicken.fixnum#fx> 17 2 "C_i_s_fixnum_greaterp" "C_fixnum_greaterp") +(rewrite 'chicken.fixnum#fx<= 17 2 "C_i_s_fixnum_less_or_equal_p" "C_fixnum_less_or_equal_p") +(rewrite 'chicken.fixnum#fx>= 17 2 "C_i_s_fixnum_greater_or_equal_p" "C_fixnum_greater_or_equal_p") (rewrite 'chicken.fixnum#fxmod 17 2 "C_fixnum_modulo" "C_u_fixnum_modulo") (rewrite 'chicken.fixnum#fxrem 17 2 "C_i_fixnum_remainder_checked") diff --git a/chicken.h b/chicken.h index 72d5d397..d19a0378 100644 --- a/chicken.h +++ b/chicken.h @@ -2003,6 +2003,7 @@ C_fctexport C_word C_fcall C_i_length(C_word lst) C_regparm; C_fctexport C_word C_fcall C_u_i_length(C_word lst) C_regparm; C_fctexport C_word C_fcall C_i_check_closure_2(C_word x, C_word loc) C_regparm; C_fctexport C_word C_fcall C_i_check_fixnum_2(C_word x, C_word loc) C_regparm; +C_fctexport C_word C_fcall C_i_check_fixnum_2_c(C_word x, char *loc) C_regparm; C_fctexport C_word C_fcall C_i_check_exact_2(C_word x, C_word loc) C_regparm; /* DEPRECATED */ C_fctexport C_word C_fcall C_i_check_inexact_2(C_word x, C_word loc) C_regparm; C_fctexport C_word C_fcall C_i_check_number_2(C_word x, C_word loc) C_regparm; @@ -2913,6 +2914,152 @@ inline static C_word C_fixnum_modulo(C_word x, C_word y) } } +inline static C_word C_i_s_fixnum_equalp(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx=")); + C_i_check_fixnum_2_c(n2, C_text("fx=")); + return C_eqp(n1, n2); +} + +inline static C_word C_i_s_fixnum_plus(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx+")); + C_i_check_fixnum_2_c(n2, C_text("fx+")); + return C_u_fixnum_plus(n1, n2); +} + +inline static C_word C_i_s_fixnum_difference(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx-")); + C_i_check_fixnum_2_c(n2, C_text("fx-")); + return C_u_fixnum_difference(n1, n2); +} + +inline static C_word C_i_s_fixnum_times(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx*")); + C_i_check_fixnum_2_c(n2, C_text("fx*")); + return C_fixnum_times(n1, n2); +} + +inline static C_word C_i_s_fixnum_divide(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx/")); + C_i_check_fixnum_2_c(n2, C_text("fx/")); + if(n2 == C_fix(0)) C_div_by_zero_error(C_text("fx/")); + return C_u_fixnum_divide(n1, n2); +} + +inline static C_word C_i_s_fixnum_and(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxand")); + C_i_check_fixnum_2_c(n2, C_text("fxand")); + return C_u_fixnum_and(n1, n2); +} + +inline static C_word C_i_s_fixnum_or(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxior")); + C_i_check_fixnum_2_c(n2, C_text("fxior")); + return C_u_fixnum_or(n1, n2); +} + +inline static C_word C_i_s_fixnum_xor(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxxor")); + C_i_check_fixnum_2_c(n2, C_text("fxxor")); + return C_fixnum_xor(n1, n2); +} + +inline static C_word C_i_s_fixnum_not(C_word n1) +{ + C_i_check_fixnum_2_c(n1, C_text("fxnot")); + return C_fixnum_not(n1); +} + +inline static C_word C_i_s_fixnum_shift_right(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxshr")); + C_i_check_fixnum_2_c(n2, C_text("fxshr")); + return C_fixnum_shift_right(n1, n2); +} + +inline static C_word C_i_s_fixnum_shift_left(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxshl")); + C_i_check_fixnum_2_c(n2, C_text("fxshl")); + return C_fixnum_shift_left(n1, n2); +} + +inline static C_word C_i_s_fixnum_max(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxmax")); + C_i_check_fixnum_2_c(n2, C_text("fxmax")); + return C_i_fixnum_max(n1, n2); +} + +inline static C_word C_i_s_fixnum_min(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxmin")); + C_i_check_fixnum_2_c(n2, C_text("fxmin")); + return C_i_fixnum_min(n1, n2); +} + +inline static C_word C_i_s_fixnum_modulo(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fxmod")); + C_i_check_fixnum_2_c(n2, C_text("fxmod")); + if(n2 == C_fix(0)) C_div_by_zero_error(C_text("fxmod")); + return C_u_fixnum_modulo(n1, n2); +} + +inline static C_word C_i_s_fixnum_negate(C_word n1) +{ + C_i_check_fixnum_2_c(n1, C_text("fxneg")); + return C_u_fixnum_negate(n1); +} + +inline static C_word C_i_s_fixnum_oddp(C_word n1) +{ + C_i_check_fixnum_2_c(n1, C_text("fxodd?")); + return C_i_fixnumoddp(n1); +} + +inline static C_word C_i_s_fixnum_evenp(C_word n1) +{ + C_i_check_fixnum_2_c(n1, C_text("fxeven?")); + return C_i_fixnumevenp(n1); +} + +inline static C_word C_i_s_fixnum_lessp(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx<")); + C_i_check_fixnum_2_c(n2, C_text("fx<")); + return C_fixnum_lessp(n1, n2); +} + +inline static C_word C_i_s_fixnum_greaterp(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx>")); + C_i_check_fixnum_2_c(n2, C_text("fx>")); + return C_fixnum_greaterp(n1, n2); +} + +inline static C_word C_i_s_fixnum_less_or_equal_p(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx<=")); + C_i_check_fixnum_2_c(n2, C_text("fx<=")); + return C_fixnum_less_or_equal_p(n1, n2); +} + +inline static C_word C_i_s_fixnum_greater_or_equal_p(C_word n1, C_word n2) +{ + C_i_check_fixnum_2_c(n1, C_text("fx>=")); + C_i_check_fixnum_2_c(n2, C_text("fx>=")); + return C_fixnum_greater_or_equal_p(n1, n2); +} + + /* XXX: Naming convention is inconsistent! There's C_fixnum_divide() * but also C_a_i_flonum_quotient_checked() */ diff --git a/library.scm b/library.scm index bc0ef42c..2a301ab7 100644 --- a/library.scm +++ b/library.scm @@ -969,29 +969,29 @@ EOF (define fixnum-bits (foreign-value "(C_WORD_SIZE - 1)" int)) (define fixnum-precision (foreign-value "(C_WORD_SIZE - (1 + 1))" int)) -(define (fx+ x y) (##core#inline "C_fixnum_plus" x y)) -(define (fx- x y) (##core#inline "C_fixnum_difference" x y)) -(define (fx* x y) (##core#inline "C_fixnum_times" x y)) -(define (fx= x y) (eq? x y)) -(define (fx> x y) (##core#inline "C_fixnum_greaterp" x y)) -(define (fx< x y) (##core#inline "C_fixnum_lessp" x y)) -(define (fx>= x y) (##core#inline "C_fixnum_greater_or_equal_p" x y)) -(define (fx<= x y) (##core#inline "C_fixnum_less_or_equal_p" x y)) -(define (fxmin x y) (##core#inline "C_i_fixnum_min" x y)) -(define (fxmax x y) (##core#inline "C_i_fixnum_max" x y)) -(define (fxneg x) (##core#inline "C_fixnum_negate" x)) -(define (fxand x y) (##core#inline "C_fixnum_and" x y)) -(define (fxior x y) (##core#inline "C_fixnum_or" x y)) -(define (fxxor x y) (##core#inline "C_fixnum_xor" x y)) -(define (fxnot x) (##core#inline "C_fixnum_not" x)) -(define (fxshl x y) (##core#inline "C_fixnum_shift_left" x y)) -(define (fxshr x y) (##core#inline "C_fixnum_shift_right" x y)) -(define (fxodd? x) (##core#inline "C_i_fixnumoddp" x)) -(define (fxeven? x) (##core#inline "C_i_fixnumevenp" x)) +(define (fx= x y) (##core#inline C_i_s_fixnum_equalp x y)) +(define (fx+ x y) (##core#inline C_i_s_fixnum_plus x y)) +(define (fx- x y) (##core#inline C_i_s_fixnum_difference x y)) +(define (fx* x y) (##core#inline C_i_s_fixnum_times x y)) +(define (fx/ x y) (##core#inline C_i_s_fixnum_divide x y)) +(define (fxand x y) (##core#inline C_i_s_fixnum_and x y)) +(define (fxior x y) (##core#inline C_i_s_fixnum_or x y)) +(define (fxxor x y) (##core#inline C_i_s_fixnum_xor x y)) +(define (fxnot x) (##core#inline C_i_s_fixnum_not x)) +(define (fxshr x y) (##core#inline C_i_s_fixnum_shift_right x y)) +(define (fxshl x y) (##core#inline C_i_s_fixnum_shift_left x y)) +(define (fxmax x y) (##core#inline C_i_s_fixnum_max x y)) +(define (fxmin x y) (##core#inline C_i_s_fixnum_min x y)) +(define (fxmod x y) (##core#inline C_i_s_fixnum_modulo x y)) +(define (fxneg x) (##core#inline C_i_s_fixnum_negate x)) +(define (fxodd? x) (##core#inline C_i_s_fixnum_oddp x)) +(define (fxeven? x) (##core#inline C_i_s_fixnum_evenp x)) +(define (fx< x y) (##core#inline C_i_s_fixnum_lessp x y)) +(define (fx> x y) (##core#inline C_i_s_fixnum_greaterp x y)) +(define (fx<= x y) (##core#inline C_i_s_fixnum_less_or_equal_p x y)) +(define (fx>= x y) (##core#inline C_i_s_fixnum_greater_or_equal_p x y)) (define (fxlen x) (##core#inline "C_i_fixnum_length" x)) -(define (fx/ x y) (##core#inline "C_fixnum_divide" x y) ) (define (fxgcd x y) (##core#inline "C_i_fixnum_gcd" x y)) -(define (fxmod x y) (##core#inline "C_fixnum_modulo" x y) ) (define (fxrem x y) (##core#inline "C_i_fixnum_remainder_checked" x y) ) ;; Overflow-detecting versions of some of the above diff --git a/runtime.c b/runtime.c index 5e1bb9f1..a96c1232 100644 --- a/runtime.c +++ b/runtime.c @@ -7292,6 +7292,14 @@ C_regparm C_word C_fcall C_i_check_fixnum_2(C_word x, C_word loc) return C_SCHEME_UNDEFINED; } +C_regparm C_word C_fcall C_i_check_fixnum_2_c(C_word x, char *loc) +{ + if(C_unlikely(!(x & C_FIXNUM_BIT))) { + error_location = loc; + barf(C_BAD_ARGUMENT_TYPE_NO_FIXNUM_ERROR, NULL, x); + } +} + /* DEPRECATED */ C_regparm C_word C_fcall C_i_check_exact_2(C_word x, C_word loc) { diff --git a/types.db b/types.db index 06514b28..ad0ef145 100644 --- a/types.db +++ b/types.db @@ -1270,29 +1270,72 @@ (chicken.fixnum#fixnum-precision fixnum) ;;XXX These aren't enforcing, and aren't foldable due to 32/64-bit issues -(chicken.fixnum#fx- (#(procedure #:clean) chicken.fixnum#fx- (fixnum fixnum) fixnum)) -(chicken.fixnum#fx* (#(procedure #:clean) chicken.fixnum#fx* (fixnum fixnum) fixnum)) -(chicken.fixnum#fx/ (#(procedure #:clean) chicken.fixnum#fx/ (fixnum fixnum) fixnum)) +(chicken.fixnum#fx= + (#(procedure #:pure #:enforce) chicken.fixnum#fx= (fixnum fixnum) boolean) + ((fixnum fixnum) (##core#inline "C_eqp" #(1) #(2)))) +(chicken.fixnum#fx+ + (#(procedure #:pure #:enforce) chicken.fixnum#fx+ (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_plus" #(1) #(2)))) +(chicken.fixnum#fx- + (#(procedure #:pure #:enforce) chicken.fixnum#fx- (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_difference" #(1) #(2)))) +(chicken.fixnum#fx* + (#(procedure #:pure #:enforce) chicken.fixnum#fx* (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_fixnum_times" #(1) #(2)))) +(chicken.fixnum#fx/ + (#(procedure #:pure #:enforce) chicken.fixnum#fx/ (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_divide" #(1) #(2)))) +(chicken.fixnum#fxand + (#(procedure #:pure #:enforce) chicken.fixnum#fxand (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_and" #(1) #(2)))) +(chicken.fixnum#fxior + (#(procedure #:pure #:enforce) chicken.fixnum#fxior (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_or" #(1) #(2)))) +(chicken.fixnum#fxxor + (#(procedure #:pure #:enforce) chicken.fixnum#fxxor (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_fixnum_xor" #(1) #(2)))) +(chicken.fixnum#fxnot + (#(procedure #:pure #:enforce) chicken.fixnum#fxnot (fixnum) fixnum) + ((fixnum) (##core#inline "C_fixnum_not" #(1)))) +(chicken.fixnum#fxshr + (#(procedure #:pure #:enforce) chicken.fixnum#fxshr (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_fixnum_shift_right" #(1) #(2)))) +(chicken.fixnum#fxshl + (#(procedure #:pure #:enforce) chicken.fixnum#fxshl (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_fixnum_shift_left" #(1) #(2)))) +(chicken.fixnum#fxmax + (#(procedure #:pure #:enforce) chicken.fixnum#fxmax (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_i_fixnum_max" #(1) #(2)))) +(chicken.fixnum#fxmin + (#(procedure #:pure #:enforce) chicken.fixnum#fxmin (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_i_fixnum_min" #(1) #(2)))) +(chicken.fixnum#fxmod + (#(procedure #:pure #:enforce) chicken.fixnum#fxmod (fixnum fixnum) fixnum) + ((fixnum fixnum) (##core#inline "C_u_fixnum_modulo" #(1) #(2)))) +(chicken.fixnum#fxneg + (#(procedure #:pure #:enforce) chicken.fixnum#fxneg (fixnum) fixnum) + ((fixnum) (##core#inline "C_u_fixnum_negate" #(1)))) +(chicken.fixnum#fxodd? + (#(procedure #:pure #:enforce) chicken.fixnum#fxodd? (fixnum) boolean) + ((fixnum) (##core#inline "C_i_fixnumoddp" #(1)))) +(chicken.fixnum#fxeven? + (#(procedure #:pure #:enforce) chicken.fixnum#fxeven? (fixnum) boolean) + ((fixnum) (##core#inline "C_i_fixnumevenp" #(1)))) +(chicken.fixnum#fx< + (#(procedure #:pure #:enforce) chicken.fixnum#fx< (fixnum fixnum) boolean) + ((fixnum fixnum) (##core#inline "C_fixnum_lessp" #(1) #(2)))) +(chicken.fixnum#fx> + (#(procedure #:pure #:enforce) chicken.fixnum#fx> (fixnum fixnum) boolean) + ((fixnum fixnum) (##core#inline "C_fixnum_greaterp" #(1) #(2)))) +(chicken.fixnum#fx<= + (#(procedure #:pure #:enforce) chicken.fixnum#fx<= (fixnum fixnum) boolean) + ((fixnum fixnum) (##core#inline "C_fixnum_less_or_equal_p" #(1) #(2)))) +(chicken.fixnum#fx>= + (#(procedure #:pure #:enforce) chicken.fixnum#fx>= (fixnum fixnum) boolean) + ((fixnum fixnum) (##core#inline "C_fixnum_greater_or_equal_p" #(1) #(2)))) + (chicken.fixnum#fxgcd (#(procedure #:clean) chicken.fixnum#fxgcd (fixnum fixnum) fixnum)) -(chicken.fixnum#fx+ (#(procedure #:clean) chicken.fixnum#fx+ (fixnum fixnum) fixnum)) -(chicken.fixnum#fx< (#(procedure #:clean) chicken.fixnum#fx< (fixnum fixnum) boolean)) -(chicken.fixnum#fx<= (#(procedure #:clean) chicken.fixnum#fx<= (fixnum fixnum) boolean)) -(chicken.fixnum#fx= (#(procedure #:clean) chicken.fixnum#fx= (fixnum fixnum) boolean)) -(chicken.fixnum#fx> (#(procedure #:clean) chicken.fixnum#fx> (fixnum fixnum) boolean)) -(chicken.fixnum#fx>= (#(procedure #:clean) chicken.fixnum#fx>= (fixnum fixnum) boolean)) -(chicken.fixnum#fxand (#(procedure #:clean) chicken.fixnum#fxand (fixnum fixnum) fixnum)) -(chicken.fixnum#fxeven? (#(procedure #:clean) chicken.fixnum#fxeven? (fixnum) boolean)) -(chicken.fixnum#fxior (#(procedure #:clean) chicken.fixnum#fxior (fixnum fixnum) fixnum)) -(chicken.fixnum#fxmax (#(procedure #:clean) chicken.fixnum#fxmax (fixnum fixnum) fixnum)) -(chicken.fixnum#fxmin (#(procedure #:clean) chicken.fixnum#fxmin (fixnum fixnum) fixnum)) -(chicken.fixnum#fxmod (#(procedure #:clean) chicken.fixnum#fxmod (fixnum fixnum) fixnum)) (chicken.fixnum#fxrem (#(procedure #:clean) chicken.fixnum#fxrem (fixnum fixnum) fixnum)) -(chicken.fixnum#fxneg (#(procedure #:clean) chicken.fixnum#fxneg (fixnum) fixnum)) -(chicken.fixnum#fxnot (#(procedure #:clean) chicken.fixnum#fxnot (fixnum) fixnum)) -(chicken.fixnum#fxodd? (#(procedure #:clean) chicken.fixnum#fxodd? (fixnum) boolean)) -(chicken.fixnum#fxshl (#(procedure #:clean) chicken.fixnum#fxshl (fixnum fixnum) fixnum)) -(chicken.fixnum#fxshr (#(procedure #:clean) chicken.fixnum#fxshr (fixnum fixnum) fixnum)) -(chicken.fixnum#fxxor (#(procedure #:clean) chicken.fixnum#fxxor (fixnum fixnum) fixnum)) (chicken.fixnum#fxlen (#(procedure #:clean) chicken.fixnum#fxlen (fixnum) fixnum)) (chicken.fixnum#fx+? (#(procedure #:pure) chicken.fixnum#fx+? ((or fixnum false) (or fixnum false)) (or fixnum false)))
no title pasted by megane on Mon Aug 19 15:52:07 2019
+---[1]: |-> installation-prefix: /home/nabe/programs/chicken-5-safe-fx |-> csc-options: -O3 |-> runtime-options: |-> repetitions: 10 +---[2]: |-> installation-prefix: /home/nabe/programs/chicken-5-core |-> csc-options: -O3 |-> runtime-options: |-> repetitions: 10 Displaying normalized results (larger numbers indicate better results) === === cpu-time === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.01 cpstak____________________1.03______1.00 ctak______________________1.02______1.00 dderiv____________________1.01______1.00 deriv_____________________1.00______1.00 destructive_______________1.19______1.00 dfa_______________________1.00______1.03 div-iter__________________1.00______1.00 div-rec___________________1.02______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.01______1.00 fft_______________________1.00______1.00 fib_______________________1.02______1.00 fibc______________________1.00______1.00 fibfp_____________________1.04______1.00 fprint____________________1.06______1.00 fread_____________________1.00______1.02 gcbench___________________1.00______1.01 gold______________________1.00______1.00 gold2_____________________1.00______1.00 graphs____________________1.00______1.01 hanoi_____________________1.01______1.00 integ_____________________1.00______1.01 integ2____________________1.00______1.00 integ3____________________1.01______1.00 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.02______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.00 kernwyk-tail______________1.03______1.00 kernwyk-wc________________1.00______1.04 knucleotide_______________1.01______1.00 lattice___________________1.00______1.00 matrix____________________1.01______1.00 maze______________________1.00______1.00 mazefun___________________1.02______1.00 mbrot_____________________1.05______1.00 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.02______1.00 nfa_______________________1.01______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.02______1.00 nucleic2__________________1.00______1.03 paraffins_________________1.00______1.00 parsing___________________1.00______1.00 pnpoly____________________1.05______1.00 primes____________________1.00______1.02 psyntax___________________1.00______1.00 puzzle____________________1.00______1.03 ray_______________________1.00______1.05 ray2______________________1.00______1.00 sboyer____________________1.01______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.01 simplex___________________1.00______1.00 slatex____________________1.02______1.00 sort1_____________________1.00______1.00 tak_______________________1.00______1.02 takl______________________1.01______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.00______1.02 triangl___________________1.00______1.00 === === major-gcs === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.00 cpstak____________________1.00______1.00 ctak______________________1.00______1.00 dderiv____________________1.00______1.00 deriv_____________________1.00______1.00 destructive_______________1.00______1.00 dfa_______________________1.00______1.00 div-iter__________________1.00______1.00 div-rec___________________1.00______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.00______1.00 fft_______________________1.00______1.00 fib_______________________1.00______1.00 fibc______________________1.00______1.00 fibfp_____________________1.00______1.00 fprint____________________1.00______1.00 fread_____________________1.00______1.00 gcbench___________________1.00______1.00 gold______________________1.00______1.00 gold2_____________________1.00______1.00 graphs____________________1.00______1.00 hanoi_____________________1.00______1.00 integ_____________________1.00______1.00 integ2____________________1.00______1.00 integ3____________________1.00______1.00 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.08______1.00 kernwyk-tail______________1.25______1.00 kernwyk-wc________________1.00______1.00 knucleotide_______________1.02______1.00 lattice___________________1.00______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.00 mazefun___________________1.00______1.00 mbrot_____________________1.00______1.00 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.00______1.00 nfa_______________________1.00______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.00 paraffins_________________1.00______1.00 parsing___________________1.00______1.13 pnpoly____________________1.00______1.00 primes____________________1.00______1.00 psyntax___________________1.12______1.00 puzzle____________________1.00______1.00 ray_______________________1.00______1.00 ray2______________________1.00______1.00 sboyer____________________1.00______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.00 simplex___________________1.00______1.00 slatex____________________1.33______1.00 sort1_____________________1.00______1.00 tak_______________________1.00______1.00 takl______________________1.00______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.00______1.00 triangl___________________1.00______1.00 === === minor-gcs === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.00 cpstak____________________1.00______1.00 ctak______________________1.00______1.00 dderiv____________________1.00______1.00 deriv_____________________1.00______1.00 destructive_______________1.00______1.00 dfa_______________________1.00______1.00 div-iter__________________1.00______1.00 div-rec___________________1.00______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.00______1.00 fft_______________________1.00______1.00 fib_______________________1.00______1.00 fibc______________________1.00______1.00 fibfp_____________________1.00______1.00 fprint____________________1.00______1.00 fread_____________________1.00______1.00 gcbench___________________1.00______1.00 gold______________________1.00______1.00 gold2_____________________1.00______1.00 graphs____________________1.00______1.00 hanoi_____________________1.00______1.00 integ_____________________1.00______1.00 integ2____________________1.00______1.00 integ3____________________1.00______1.00 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.00 kernwyk-tail______________1.00______1.00 kernwyk-wc________________1.00______1.00 knucleotide_______________1.00______1.00 lattice___________________1.00______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.00 mazefun___________________1.00______1.00 mbrot_____________________1.00______1.00 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.00______1.00 nfa_______________________1.00______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.00 paraffins_________________1.00______1.00 parsing___________________1.00______1.00 pnpoly____________________1.00______1.00 primes____________________1.00______1.00 psyntax___________________1.00______1.00 puzzle____________________1.00______1.00 ray_______________________1.00______1.00 ray2______________________1.00______1.00 sboyer____________________1.00______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.00 simplex___________________1.00______1.00 slatex____________________1.00______1.00 sort1_____________________1.00______1.00 tak_______________________1.00______1.00 takl______________________1.00______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.00______1.00 triangl___________________1.00______1.00 === === major-gcs-time === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.07 boyer_____________________1.00______1.00 browse____________________1.00______1.04 conform___________________1.05______1.00 cpstak____________________1.00______1.06 ctak______________________1.00______1.40 dderiv____________________1.20______1.00 deriv_____________________1.71______1.00 destructive______________17.00______1.00 dfa_______________________1.00______1.10 div-iter__________________1.00______1.00 div-rec___________________1.00______1.00 dynamic___________________1.00______1.02 earley____________________1.00______1.02 fannkuch__________________1.02______1.00 fft_______________________1.00______1.04 fib_______________________1.00______1.55 fibc______________________1.00______1.11 fibfp_____________________1.00______1.06 fprint____________________1.00______1.00 fread_____________________1.00______1.00 gcbench___________________1.00______1.01 gold______________________1.00______1.01 gold2_____________________1.01______1.00 graphs____________________1.01______1.00 hanoi_____________________1.00______1.09 integ_____________________1.00______1.02 integ2____________________1.00______1.04 integ3____________________1.03______1.00 kanren____________________1.00______1.01 kernwyk-ackermann_________1.00______1.04 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.02 kernwyk-sum_______________1.09______1.00 kernwyk-tail______________1.05______1.00 kernwyk-wc________________1.00______1.00 knucleotide_______________1.00______1.00 lattice___________________1.01______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.03 mazefun___________________1.00______1.03 mbrot_____________________1.00______1.00 nbody_____________________1.00______1.06 nboyer____________________1.00______1.01 nestedloop________________1.13______1.00 nfa_______________________1.06______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.02 paraffins_________________1.01______1.00 parsing___________________1.00______1.18 pnpoly____________________1.00______1.03 primes____________________1.25______1.00 psyntax___________________1.00______1.00 puzzle____________________1.00______1.80 ray_______________________1.00______1.12 ray2______________________1.00______1.01 sboyer____________________1.00______1.01 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.04 simplex___________________1.01______1.00 slatex____________________1.40______1.00 sort1_____________________1.00______1.01 tak_______________________1.03______1.00 takl______________________1.00______1.00 takr______________________1.17______1.00 traverse__________________1.00______1.11 travinit__________________1.19______1.00 triangl___________________1.03______1.00 === === cpu-time === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________2_________1 boyer_______________________1_________2 browse______________________1_________2 conform_____________________2_________1 cpstak______________________1_________2 ctak________________________1_________2 dderiv______________________1_________2 deriv_______________________2_________1 destructive_________________1_________2 dfa_________________________2_________1 div-iter____________________1_________1 div-rec_____________________1_________2 dynamic_____________________2_________1 earley______________________2_________1 fannkuch____________________1_________2 fft_________________________1_________2 fib_________________________1_________2 fibc________________________1_________2 fibfp_______________________1_________2 fprint______________________1_________2 fread_______________________2_________1 gcbench_____________________2_________1 gold________________________2_________1 gold2_______________________2_________1 graphs______________________2_________1 hanoi_______________________1_________2 integ_______________________2_________1 integ2______________________1_________2 integ3______________________1_________2 kanren______________________2_________1 kernwyk-ackermann___________1_________2 kernwyk-array_______________2_________1 kernwyk-cat_________________1_________2 kernwyk-string______________2_________1 kernwyk-sum_________________2_________1 kernwyk-tail________________1_________2 kernwyk-wc__________________2_________1 knucleotide_________________1_________2 lattice_____________________2_________1 matrix______________________1_________2 maze________________________2_________1 mazefun_____________________1_________2 mbrot_______________________1_________2 nbody_______________________1_________2 nboyer______________________1_________2 nestedloop__________________1_________2 nfa_________________________1_________2 nqueens_____________________2_________1 ntakl_______________________1_________2 nucleic2____________________2_________1 paraffins___________________2_________1 parsing_____________________2_________1 pnpoly______________________1_________2 primes______________________2_________1 psyntax_____________________2_________1 puzzle______________________2_________1 ray_________________________2_________1 ray2________________________2_________1 sboyer______________________1_________2 scheme______________________1_________1 sieves-eratosthenes_________2_________1 simplex_____________________2_________1 slatex______________________1_________2 sort1_______________________1_________2 tak_________________________2_________1 takl________________________1_________2 takr________________________1_________2 traverse____________________2_________1 travinit____________________2_________1 triangl_____________________2_________1 [1]: 1111111111111111111111111111111111__________________________________ [2]: 1111111111111111111111111111111111__________________________________ (Last place is marked as '_') === === major-gcs === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________1_________1 boyer_______________________1_________1 browse______________________1_________1 conform_____________________1_________1 cpstak______________________1_________1 ctak________________________1_________1 dderiv______________________1_________1 deriv_______________________1_________1 destructive_________________1_________1 dfa_________________________1_________1 div-iter____________________1_________1 div-rec_____________________1_________1 dynamic_____________________1_________1 earley______________________1_________1 fannkuch____________________1_________1 fft_________________________1_________1 fib_________________________1_________1 fibc________________________1_________1 fibfp_______________________1_________1 fprint______________________1_________1 fread_______________________1_________1 gcbench_____________________1_________1 gold________________________1_________1 gold2_______________________1_________1 graphs______________________1_________1 hanoi_______________________1_________1 integ_______________________1_________1 integ2______________________1_________1 integ3______________________1_________1 kanren______________________1_________1 kernwyk-ackermann___________1_________1 kernwyk-array_______________1_________1 kernwyk-cat_________________1_________1 kernwyk-string______________1_________1 kernwyk-sum_________________1_________2 kernwyk-tail________________1_________2 kernwyk-wc__________________1_________1 knucleotide_________________1_________2 lattice_____________________1_________1 matrix______________________1_________1 maze________________________1_________1 mazefun_____________________1_________1 mbrot_______________________1_________1 nbody_______________________1_________1 nboyer______________________1_________1 nestedloop__________________1_________1 nfa_________________________1_________1 nqueens_____________________1_________1 ntakl_______________________1_________1 nucleic2____________________1_________1 paraffins___________________1_________1 parsing_____________________2_________1 pnpoly______________________1_________1 primes______________________1_________1 psyntax_____________________1_________2 puzzle______________________1_________1 ray_________________________1_________1 ray2________________________1_________1 sboyer______________________1_________1 scheme______________________1_________1 sieves-eratosthenes_________1_________1 simplex_____________________1_________1 slatex______________________1_________2 sort1_______________________1_________1 tak_________________________1_________1 takl________________________1_________1 takr________________________1_________1 traverse____________________1_________1 travinit____________________1_________1 triangl_____________________1_________1 [1]: 11111_ [2]: 1_____ (Last place is marked as '_') === === minor-gcs === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________1_________1 boyer_______________________1_________1 browse______________________1_________1 conform_____________________1_________1 cpstak______________________1_________1 ctak________________________1_________1 dderiv______________________1_________1 deriv_______________________1_________1 destructive_________________1_________1 dfa_________________________2_________1 div-iter____________________1_________1 div-rec_____________________1_________1 dynamic_____________________1_________1 earley______________________1_________1 fannkuch____________________1_________1 fft_________________________1_________1 fib_________________________1_________1 fibc________________________1_________1 fibfp_______________________1_________1 fprint______________________1_________1 fread_______________________1_________1 gcbench_____________________1_________1 gold________________________1_________1 gold2_______________________1_________1 graphs______________________1_________1 hanoi_______________________1_________1 integ_______________________1_________1 integ2______________________1_________1 integ3______________________1_________1 kanren______________________1_________1 kernwyk-ackermann___________1_________1 kernwyk-array_______________1_________1 kernwyk-cat_________________1_________1 kernwyk-string______________1_________1 kernwyk-sum_________________2_________1 kernwyk-tail________________2_________1 kernwyk-wc__________________1_________1 knucleotide_________________2_________1 lattice_____________________1_________1 matrix______________________1_________1 maze________________________1_________1 mazefun_____________________1_________1 mbrot_______________________1_________1 nbody_______________________1_________1 nboyer______________________1_________1 nestedloop__________________1_________1 nfa_________________________1_________1 nqueens_____________________1_________1 ntakl_______________________1_________1 nucleic2____________________1_________1 paraffins___________________1_________1 parsing_____________________1_________2 pnpoly______________________1_________1 primes______________________1_________1 psyntax_____________________2_________1 puzzle______________________1_________1 ray_________________________1_________1 ray2________________________1_________1 sboyer______________________1_________1 scheme______________________1_________1 sieves-eratosthenes_________1_________1 simplex_____________________1_________1 slatex______________________2_________1 sort1_______________________1_________1 tak_________________________1_________1 takl________________________1_________1 takr________________________1_________1 traverse____________________1_________1 travinit____________________1_________1 triangl_____________________1_________1 [2]: 111111_ [1]: 1______ (Last place is marked as '_') === === major-gcs-time === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________2_________1 boyer_______________________2_________1 browse______________________2_________1 conform_____________________1_________2 cpstak______________________2_________1 ctak________________________2_________1 dderiv______________________1_________2 deriv_______________________1_________2 destructive_________________1_________2 dfa_________________________2_________1 div-iter____________________1_________1 div-rec_____________________2_________1 dynamic_____________________2_________1 earley______________________2_________1 fannkuch____________________1_________2 fft_________________________2_________1 fib_________________________2_________1 fibc________________________2_________1 fibfp_______________________2_________1 fprint______________________1_________1 fread_______________________1_________2 gcbench_____________________2_________1 gold________________________2_________1 gold2_______________________1_________2 graphs______________________1_________2 hanoi_______________________2_________1 integ_______________________2_________1 integ2______________________2_________1 integ3______________________1_________2 kanren______________________2_________1 kernwyk-ackermann___________2_________1 kernwyk-array_______________2_________1 kernwyk-cat_________________1_________1 kernwyk-string______________2_________1 kernwyk-sum_________________1_________2 kernwyk-tail________________1_________2 kernwyk-wc__________________1_________1 knucleotide_________________2_________1 lattice_____________________1_________2 matrix______________________1_________2 maze________________________2_________1 mazefun_____________________2_________1 mbrot_______________________1_________1 nbody_______________________2_________1 nboyer______________________2_________1 nestedloop__________________1_________2 nfa_________________________1_________2 nqueens_____________________1_________2 ntakl_______________________1_________1 nucleic2____________________2_________1 paraffins___________________1_________2 parsing_____________________2_________1 pnpoly______________________2_________1 primes______________________1_________2 psyntax_____________________1_________2 puzzle______________________2_________1 ray_________________________2_________1 ray2________________________2_________1 sboyer______________________2_________1 scheme______________________1_________1 sieves-eratosthenes_________2_________1 simplex_____________________1_________2 slatex______________________1_________2 sort1_______________________2_________1 tak_________________________1_________2 takl________________________1_________1 takr________________________1_________2 traverse____________________2_________1 travinit____________________1_________2 triangl_____________________1_________2 [2]: 1111111111111111111111111111111111111_________________________ [1]: 1111111111111111111111111_____________________________________ (Last place is marked as '_')
no title pasted by megane on Mon Aug 19 15:52:38 2019
+---[1]: |-> installation-prefix: /home/nabe/programs/chicken-5-core |-> csc-options: -O3 |-> runtime-options: |-> repetitions: 10 +---[2]: |-> installation-prefix: /home/nabe/programs/chicken-5-safe-fx |-> csc-options: -O3 |-> runtime-options: |-> repetitions: 10 Displaying normalized results (larger numbers indicate better results) === === cpu-time === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.00 cpstak____________________1.00______1.00 ctak______________________1.00______1.03 dderiv____________________1.00______1.03 deriv_____________________1.00______1.01 destructive_______________1.00______1.18 dfa_______________________1.03______1.00 div-iter__________________1.00______1.03 div-rec___________________1.00______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.00______1.02 fft_______________________1.00______1.00 fib_______________________1.00______1.01 fibc______________________1.01______1.00 fibfp_____________________1.00______1.04 fprint____________________1.00______1.05 fread_____________________1.03______1.00 gcbench___________________1.00______1.00 gold______________________1.01______1.00 gold2_____________________1.05______1.00 graphs____________________1.00______1.00 hanoi_____________________1.00______1.00 integ_____________________1.01______1.00 integ2____________________1.00______1.00 integ3____________________1.00______1.01 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.04 kernwyk-cat_______________1.00______1.03 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.00 kernwyk-tail______________1.00______1.04 kernwyk-wc________________1.02______1.00 knucleotide_______________1.00______1.01 lattice___________________1.00______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.00 mazefun___________________1.00______1.02 mbrot_____________________1.00______1.04 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.00______1.04 nfa_______________________1.00______1.01 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.00 paraffins_________________1.00______1.00 parsing___________________1.00______1.00 pnpoly____________________1.00______1.03 primes____________________1.01______1.00 psyntax___________________1.00______1.00 puzzle____________________1.03______1.00 ray_______________________1.06______1.00 ray2______________________1.00______1.00 sboyer____________________1.00______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.01______1.00 simplex___________________1.00______1.00 slatex____________________1.00______1.00 sort1_____________________1.00______1.00 tak_______________________1.01______1.00 takl______________________1.00______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.02______1.00 triangl___________________1.04______1.00 === === major-gcs === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.00 cpstak____________________1.00______1.00 ctak______________________1.00______1.00 dderiv____________________1.00______1.00 deriv_____________________1.00______1.00 destructive_______________1.00______1.00 dfa_______________________1.00______1.00 div-iter__________________1.00______1.00 div-rec___________________1.00______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.00______1.00 fft_______________________1.00______1.00 fib_______________________1.00______1.00 fibc______________________1.00______1.00 fibfp_____________________1.00______1.00 fprint____________________1.00______1.00 fread_____________________1.00______1.00 gcbench___________________1.00______1.00 gold______________________1.00______1.00 gold2_____________________1.00______1.00 graphs____________________1.00______1.00 hanoi_____________________1.00______1.00 integ_____________________1.00______1.00 integ2____________________1.00______1.00 integ3____________________1.00______1.00 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.08 kernwyk-tail______________1.00______1.33 kernwyk-wc________________1.00______1.00 knucleotide_______________1.03______1.00 lattice___________________1.00______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.00 mazefun___________________1.00______1.00 mbrot_____________________1.00______1.00 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.00______1.00 nfa_______________________1.00______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.00 paraffins_________________1.00______1.00 parsing___________________1.13______1.00 pnpoly____________________1.00______1.00 primes____________________1.00______1.00 psyntax___________________1.00______1.12 puzzle____________________1.00______1.00 ray_______________________1.00______1.00 ray2______________________1.00______1.00 sboyer____________________1.00______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.00 simplex___________________1.00______1.00 slatex____________________1.00______1.11 sort1_____________________1.00______1.00 tak_______________________1.00______1.00 takl______________________1.00______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.00______1.00 triangl___________________1.00______1.00 === === minor-gcs === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.00 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.00______1.00 cpstak____________________1.00______1.00 ctak______________________1.00______1.00 dderiv____________________1.00______1.00 deriv_____________________1.00______1.00 destructive_______________1.00______1.00 dfa_______________________1.00______1.00 div-iter__________________1.00______1.00 div-rec___________________1.00______1.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.00______1.00 fft_______________________1.00______1.00 fib_______________________1.00______1.00 fibc______________________1.00______1.00 fibfp_____________________1.00______1.00 fprint____________________1.00______1.00 fread_____________________1.00______1.00 gcbench___________________1.00______1.00 gold______________________1.00______1.00 gold2_____________________1.00______1.00 graphs____________________1.00______1.00 hanoi_____________________1.00______1.00 integ_____________________1.00______1.00 integ2____________________1.00______1.00 integ3____________________1.00______1.00 kanren____________________1.00______1.00 kernwyk-ackermann_________1.00______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.00 kernwyk-tail______________1.00______1.00 kernwyk-wc________________1.00______1.00 knucleotide_______________1.00______1.00 lattice___________________1.00______1.00 matrix____________________1.00______1.00 maze______________________1.00______1.00 mazefun___________________1.00______1.00 mbrot_____________________1.00______1.00 nbody_____________________1.00______1.00 nboyer____________________1.00______1.00 nestedloop________________1.00______1.00 nfa_______________________1.00______1.00 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.00______1.00 paraffins_________________1.00______1.00 parsing___________________1.00______1.00 pnpoly____________________1.00______1.00 primes____________________1.00______1.00 psyntax___________________1.00______1.00 puzzle____________________1.00______1.00 ray_______________________1.00______1.00 ray2______________________1.00______1.00 sboyer____________________1.00______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.00______1.00 simplex___________________1.00______1.00 slatex____________________1.00______1.00 sort1_____________________1.00______1.00 tak_______________________1.00______1.00 takl______________________1.00______1.00 takr______________________1.00______1.00 traverse__________________1.00______1.00 travinit__________________1.00______1.00 triangl___________________1.00______1.00 === === major-gcs-time === Programs [1] [2] ======================================== 0_________________________1.00______1.00 binarytrees_______________1.00______1.01 boyer_____________________1.00______1.00 browse____________________1.00______1.00 conform___________________1.15______1.00 cpstak____________________1.07______1.00 ctak______________________1.00______1.07 dderiv____________________1.57______1.00 deriv_____________________1.00______1.40 destructive_______________1.00______1.12 dfa_______________________1.14______1.00 div-iter__________________1.00______1.00 div-rec___________________1.00______8.00 dynamic___________________1.00______1.00 earley____________________1.00______1.00 fannkuch__________________1.12______1.00 fft_______________________1.05______1.00 fib_______________________1.66______1.00 fibc______________________1.00______1.00 fibfp_____________________1.27______1.00 fprint____________________1.00______1.00 fread_____________________1.01______1.00 gcbench___________________1.00______1.00 gold______________________1.13______1.00 gold2_____________________1.00______1.03 graphs____________________1.02______1.00 hanoi_____________________1.00______1.03 integ_____________________1.05______1.00 integ2____________________1.04______1.00 integ3____________________1.00______1.02 kanren____________________1.01______1.00 kernwyk-ackermann_________1.01______1.00 kernwyk-array_____________1.00______1.00 kernwyk-cat_______________1.00______1.00 kernwyk-string____________1.00______1.00 kernwyk-sum_______________1.00______1.07 kernwyk-tail______________1.00______1.12 kernwyk-wc________________1.00______1.00 knucleotide_______________1.00______1.01 lattice___________________1.07______1.00 matrix____________________1.00______1.00 maze______________________1.01______1.00 mazefun___________________1.02______1.00 mbrot_____________________1.00______1.00 nbody_____________________1.17______1.00 nboyer____________________1.01______1.00 nestedloop________________1.07______1.00 nfa_______________________1.00______1.06 nqueens___________________1.00______1.00 ntakl_____________________1.00______1.00 nucleic2__________________1.01______1.00 paraffins_________________1.00______1.01 parsing___________________1.15______1.00 pnpoly____________________1.00______1.02 primes____________________1.00______1.04 psyntax___________________1.00______1.01 puzzle____________________9.00______1.00 ray_______________________1.04______1.00 ray2______________________1.01______1.00 sboyer____________________1.01______1.00 scheme____________________1.00______1.00 sieves-eratosthenes_______1.03______1.00 simplex___________________1.06______1.00 slatex____________________1.00______1.11 sort1_____________________1.02______1.00 tak_______________________1.08______1.00 takl______________________1.00______1.00 takr______________________1.00______1.17 traverse__________________1.07______1.00 travinit__________________1.00______1.04 triangl___________________1.00______1.03 === === cpu-time === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________2_________1 boyer_______________________1_________2 browse______________________1_________2 conform_____________________2_________1 cpstak______________________1_________2 ctak________________________2_________1 dderiv______________________2_________1 deriv_______________________2_________1 destructive_________________2_________1 dfa_________________________1_________2 div-iter____________________2_________1 div-rec_____________________2_________1 dynamic_____________________1_________2 earley______________________1_________2 fannkuch____________________2_________1 fft_________________________2_________1 fib_________________________2_________1 fibc________________________1_________2 fibfp_______________________2_________1 fprint______________________2_________1 fread_______________________1_________2 gcbench_____________________2_________1 gold________________________1_________2 gold2_______________________1_________2 graphs______________________1_________2 hanoi_______________________2_________1 integ_______________________1_________2 integ2______________________2_________1 integ3______________________2_________1 kanren______________________1_________2 kernwyk-ackermann___________2_________1 kernwyk-array_______________2_________1 kernwyk-cat_________________2_________1 kernwyk-string______________1_________2 kernwyk-sum_________________1_________2 kernwyk-tail________________2_________1 kernwyk-wc__________________1_________2 knucleotide_________________2_________1 lattice_____________________1_________2 matrix______________________2_________1 maze________________________1_________2 mazefun_____________________2_________1 mbrot_______________________2_________1 nbody_______________________2_________1 nboyer______________________1_________2 nestedloop__________________2_________1 nfa_________________________2_________1 nqueens_____________________2_________1 ntakl_______________________2_________1 nucleic2____________________1_________2 paraffins___________________1_________2 parsing_____________________2_________1 pnpoly______________________2_________1 primes______________________1_________2 psyntax_____________________1_________2 puzzle______________________1_________2 ray_________________________1_________2 ray2________________________1_________2 sboyer______________________2_________1 scheme______________________2_________1 sieves-eratosthenes_________1_________2 simplex_____________________1_________2 slatex______________________2_________1 sort1_______________________1_________2 tak_________________________1_________2 takl________________________2_________1 takr________________________2_________1 traverse____________________1_________2 travinit____________________1_________2 triangl_____________________1_________2 [2]: 1111111111111111111111111111111111111_________________________________ [1]: 111111111111111111111111111111111_____________________________________ (Last place is marked as '_') === === major-gcs === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________1_________1 boyer_______________________1_________1 browse______________________1_________1 conform_____________________1_________1 cpstak______________________1_________1 ctak________________________1_________1 dderiv______________________1_________1 deriv_______________________1_________1 destructive_________________1_________1 dfa_________________________1_________1 div-iter____________________1_________1 div-rec_____________________1_________1 dynamic_____________________1_________1 earley______________________1_________1 fannkuch____________________1_________1 fft_________________________1_________1 fib_________________________1_________1 fibc________________________1_________1 fibfp_______________________1_________1 fprint______________________1_________1 fread_______________________1_________1 gcbench_____________________1_________1 gold________________________1_________1 gold2_______________________1_________1 graphs______________________1_________1 hanoi_______________________1_________1 integ_______________________1_________1 integ2______________________1_________1 integ3______________________1_________1 kanren______________________1_________1 kernwyk-ackermann___________1_________1 kernwyk-array_______________1_________1 kernwyk-cat_________________1_________1 kernwyk-string______________1_________1 kernwyk-sum_________________2_________1 kernwyk-tail________________2_________1 kernwyk-wc__________________1_________1 knucleotide_________________1_________2 lattice_____________________1_________1 matrix______________________1_________1 maze________________________1_________1 mazefun_____________________1_________1 mbrot_______________________1_________1 nbody_______________________1_________1 nboyer______________________1_________1 nestedloop__________________1_________1 nfa_________________________1_________1 nqueens_____________________1_________1 ntakl_______________________1_________1 nucleic2____________________1_________1 paraffins___________________1_________1 parsing_____________________1_________2 pnpoly______________________1_________1 primes______________________1_________1 psyntax_____________________2_________1 puzzle______________________1_________1 ray_________________________1_________1 ray2________________________1_________1 sboyer______________________1_________1 scheme______________________1_________1 sieves-eratosthenes_________1_________1 simplex_____________________1_________1 slatex______________________2_________1 sort1_______________________1_________1 tak_________________________1_________1 takl________________________1_________1 takr________________________1_________1 traverse____________________1_________1 travinit____________________1_________1 triangl_____________________1_________1 [2]: 1111__ [1]: 11____ (Last place is marked as '_') === === minor-gcs === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________1_________1 boyer_______________________1_________1 browse______________________1_________1 conform_____________________1_________1 cpstak______________________1_________1 ctak________________________1_________1 dderiv______________________1_________1 deriv_______________________1_________1 destructive_________________1_________1 dfa_________________________1_________2 div-iter____________________1_________1 div-rec_____________________1_________1 dynamic_____________________1_________1 earley______________________1_________1 fannkuch____________________1_________1 fft_________________________1_________1 fib_________________________1_________1 fibc________________________1_________1 fibfp_______________________1_________1 fprint______________________1_________1 fread_______________________1_________1 gcbench_____________________1_________1 gold________________________1_________1 gold2_______________________1_________1 graphs______________________1_________1 hanoi_______________________1_________1 integ_______________________1_________1 integ2______________________1_________1 integ3______________________1_________1 kanren______________________1_________1 kernwyk-ackermann___________1_________1 kernwyk-array_______________1_________1 kernwyk-cat_________________1_________1 kernwyk-string______________1_________1 kernwyk-sum_________________1_________2 kernwyk-tail________________1_________2 kernwyk-wc__________________1_________1 knucleotide_________________2_________1 lattice_____________________1_________1 matrix______________________1_________1 maze________________________1_________1 mazefun_____________________1_________1 mbrot_______________________1_________1 nbody_______________________1_________1 nboyer______________________1_________1 nestedloop__________________1_________1 nfa_________________________1_________1 nqueens_____________________1_________1 ntakl_______________________1_________1 nucleic2____________________1_________1 paraffins___________________1_________1 parsing_____________________2_________1 pnpoly______________________1_________1 primes______________________1_________1 psyntax_____________________1_________2 puzzle______________________1_________1 ray_________________________1_________1 ray2________________________1_________1 sboyer______________________1_________1 scheme______________________1_________1 sieves-eratosthenes_________1_________1 simplex_____________________1_________1 slatex______________________1_________2 sort1_______________________1_________1 tak_________________________1_________1 takl________________________1_________1 takr________________________1_________1 traverse____________________1_________1 travinit____________________1_________1 triangl_____________________1_________1 [1]: 11111__ [2]: 11_____ (Last place is marked as '_') === === major-gcs-time === Programs [1] [2] ======================================== 0___________________________1_________1 binarytrees_________________2_________1 boyer_______________________2_________1 browse______________________2_________1 conform_____________________1_________2 cpstak______________________1_________2 ctak________________________2_________1 dderiv______________________1_________2 deriv_______________________2_________1 destructive_________________2_________1 dfa_________________________1_________2 div-iter____________________1_________1 div-rec_____________________2_________1 dynamic_____________________2_________1 earley______________________2_________1 fannkuch____________________1_________2 fft_________________________1_________2 fib_________________________1_________2 fibc________________________1_________2 fibfp_______________________1_________2 fprint______________________1_________1 fread_______________________1_________2 gcbench_____________________1_________2 gold________________________1_________2 gold2_______________________2_________1 graphs______________________1_________2 hanoi_______________________2_________1 integ_______________________1_________2 integ2______________________1_________2 integ3______________________2_________1 kanren______________________1_________2 kernwyk-ackermann___________1_________2 kernwyk-array_______________1_________2 kernwyk-cat_________________1_________1 kernwyk-string______________2_________1 kernwyk-sum_________________2_________1 kernwyk-tail________________2_________1 kernwyk-wc__________________1_________1 knucleotide_________________2_________1 lattice_____________________1_________2 matrix______________________1_________2 maze________________________1_________2 mazefun_____________________1_________2 mbrot_______________________1_________1 nbody_______________________1_________2 nboyer______________________1_________2 nestedloop__________________1_________2 nfa_________________________2_________1 nqueens_____________________1_________1 ntakl_______________________1_________1 nucleic2____________________1_________2 paraffins___________________2_________1 parsing_____________________1_________2 pnpoly______________________2_________1 primes______________________2_________1 psyntax_____________________2_________1 puzzle______________________1_________2 ray_________________________1_________2 ray2________________________1_________2 sboyer______________________1_________2 scheme______________________1_________1 sieves-eratosthenes_________1_________2 simplex_____________________1_________2 slatex______________________2_________1 sort1_______________________1_________2 tak_________________________1_________2 takl________________________1_________1 takr________________________2_________1 traverse____________________1_________2 travinit____________________2_________1 triangl_____________________2_________1 [1]: 111111111111111111111111111111111111_________________________ [2]: 1111111111111111111111111____________________________________ (Last place is marked as '_')
fib fx benchmark added by megane on Mon Aug 19 17:18:55 2019
:::::::::::::: test-fx.sh :::::::::::::: #!/usr/bin/env bash set -euo pipefail D="$HOME/programs" reps=10 function doit () { f="$1" opt="$2" echo "################################################## $f $opt" "$D/chicken-5-core/bin/csc" $opt "$f" -o fib-fx-core "$D/chicken-5-safe-fx/bin/csc" $opt "$f" -o fib-fx-safe-fx echo "#################### vanilla" perf stat -r $reps ./fib-fx-core 36 echo "#################### safe-fx" perf stat -r $reps ./fib-fx-safe-fx 36 } more test-fx.sh fib-fx1.scm fib-fx.scm | cat doit "fib-fx1.scm" "-O1" doit "fib-fx.scm" "-O1" doit "fib-fx1.scm" "-O3" doit "fib-fx.scm" "-O3" doit "fib-fx1.scm" "-O4" doit "fib-fx.scm" "-O4" :::::::::::::: fib-fx1.scm :::::::::::::: (import (chicken fixnum) (chicken process-context)) (define (fib n) (if (or (eq? n 0) (eq? n 1)) n (fx+ (fib (fx- n 1)) (fib (fx- n 2))))) (let ([l (string->number (car (command-line-arguments)))]) (let loop ((n 0)) (when (< n l) (fib n) (loop (+ n 1))))) :::::::::::::: fib-fx.scm :::::::::::::: (import (chicken fixnum) (chicken process-context)) (define (fib n) (if (or (fx= n 0) (fx= n 1)) ; <- this is different n (fx+ (fib (fx- n 1)) (fib (fx- n 2))))) (let ([l (string->number (car (command-line-arguments)))]) (let loop ((n 0)) (when (< n l) (fib n) (loop (+ n 1))))) ################################################## fib-fx1.scm -O1 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1935.991241 task-clock (msec) # 0.997 CPUs utilized ( +- 0.17% ) 318 context-switches # 0.164 K/sec ( +- 31.63% ) 0 cpu-migrations # 0.000 K/sec ( +-100.00% ) 715 page-faults # 0.370 K/sec ( +- 0.06% ) 5,793,135,159 cycles # 2.992 GHz ( +- 0.17% ) 2,561,777,103 stalled-cycles-frontend # 44.22% frontend cycles idle ( +- 0.38% ) 10,417,900,595 instructions # 1.80 insn per cycle # 0.25 stalled cycles per insn ( +- 0.01% ) 1,566,097,814 branches # 808.938 M/sec ( +- 0.01% ) 32,342,317 branch-misses # 2.07% of all branches ( +- 0.09% ) 1.941413298 seconds time elapsed ( +- 0.16% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 2414.382300 task-clock (msec) # 0.999 CPUs utilized ( +- 0.24% ) 229 context-switches # 0.095 K/sec ( +- 39.22% ) 0 cpu-migrations # 0.000 K/sec ( +-100.00% ) 715 page-faults # 0.296 K/sec ( +- 0.07% ) 7,225,548,922 cycles # 2.993 GHz ( +- 0.24% ) 2,430,424,842 stalled-cycles-frontend # 33.64% frontend cycles idle ( +- 0.92% ) 12,204,969,776 instructions # 1.69 insn per cycle # 0.20 stalled cycles per insn ( +- 0.00% ) 2,500,947,812 branches # 1035.854 M/sec ( +- 0.00% ) 80,279,543 branch-misses # 3.21% of all branches ( +- 1.13% ) 2.417536785 seconds time elapsed ( +- 0.23% ) ################################################## fib-fx.scm -O1 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1932.742966 task-clock (msec) # 0.998 CPUs utilized ( +- 0.08% ) 276 context-switches # 0.143 K/sec ( +- 35.31% ) 0 cpu-migrations # 0.000 K/sec ( +- 66.67% ) 715 page-faults # 0.370 K/sec ( +- 0.04% ) 5,783,676,896 cycles # 2.992 GHz ( +- 0.09% ) 2,553,242,844 stalled-cycles-frontend # 44.15% frontend cycles idle ( +- 0.15% ) 10,417,744,475 instructions # 1.80 insn per cycle # 0.25 stalled cycles per insn ( +- 0.01% ) 1,566,053,371 branches # 810.275 M/sec ( +- 0.01% ) 32,329,260 branch-misses # 2.06% of all branches ( +- 0.08% ) 1.936866315 seconds time elapsed ( +- 0.07% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 2411.102410 task-clock (msec) # 0.999 CPUs utilized ( +- 0.12% ) 78 context-switches # 0.032 K/sec ( +- 89.85% ) 0 cpu-migrations # 0.000 K/sec ( +- 66.67% ) 716 page-faults # 0.297 K/sec ( +- 0.06% ) 7,216,470,610 cycles # 2.993 GHz ( +- 0.12% ) 2,424,310,089 stalled-cycles-frontend # 33.59% frontend cycles idle ( +- 0.42% ) 12,204,477,279 instructions # 1.69 insn per cycle # 0.20 stalled cycles per insn ( +- 0.00% ) 2,500,847,725 branches # 1037.222 M/sec ( +- 0.00% ) 79,331,545 branch-misses # 3.17% of all branches ( +- 0.09% ) 2.412798036 seconds time elapsed ( +- 0.12% ) ################################################## fib-fx1.scm -O3 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1698.120891 task-clock (msec) # 0.999 CPUs utilized ( +- 0.20% ) 151 context-switches # 0.089 K/sec ( +- 49.87% ) 0 cpu-migrations # 0.000 K/sec ( +- 50.92% ) 715 page-faults # 0.421 K/sec ( +- 0.05% ) 5,082,008,041 cycles # 2.993 GHz ( +- 0.20% ) 2,231,481,324 stalled-cycles-frontend # 43.91% frontend cycles idle ( +- 0.44% ) 8,890,002,633 instructions # 1.75 insn per cycle # 0.25 stalled cycles per insn ( +- 0.01% ) 1,234,673,201 branches # 727.082 M/sec ( +- 0.01% ) 34,976,983 branch-misses # 2.83% of all branches ( +- 0.07% ) 1.700624777 seconds time elapsed ( +- 0.18% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 1813.473111 task-clock (msec) # 0.999 CPUs utilized ( +- 0.16% ) 161 context-switches # 0.089 K/sec ( +- 52.27% ) 0 cpu-migrations # 0.000 K/sec 716 page-faults # 0.395 K/sec ( +- 0.06% ) 5,427,251,115 cycles # 2.993 GHz ( +- 0.16% ) 1,970,262,064 stalled-cycles-frontend # 36.30% frontend cycles idle ( +- 0.40% ) 9,981,767,270 instructions # 1.84 insn per cycle # 0.20 stalled cycles per insn ( +- 0.01% ) 1,859,141,839 branches # 1025.183 M/sec ( +- 0.01% ) 27,096,839 branch-misses # 1.46% of all branches ( +- 0.03% ) 1.815859468 seconds time elapsed ( +- 0.14% ) ################################################## fib-fx.scm -O3 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1699.129310 task-clock (msec) # 0.998 CPUs utilized ( +- 0.18% ) 219 context-switches # 0.129 K/sec ( +- 39.27% ) 0 cpu-migrations # 0.000 K/sec ( +-100.00% ) 716 page-faults # 0.421 K/sec ( +- 0.08% ) 5,084,675,888 cycles # 2.993 GHz ( +- 0.18% ) 2,234,788,662 stalled-cycles-frontend # 43.95% frontend cycles idle ( +- 0.36% ) 8,889,495,782 instructions # 1.75 insn per cycle # 0.25 stalled cycles per insn ( +- 0.00% ) 1,234,592,347 branches # 726.603 M/sec ( +- 0.00% ) 35,025,948 branch-misses # 2.84% of all branches ( +- 0.10% ) 1.702840968 seconds time elapsed ( +- 0.21% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 1700.764298 task-clock (msec) # 0.998 CPUs utilized ( +- 1.30% ) 239 context-switches # 0.140 K/sec ( +- 35.06% ) 0 cpu-migrations # 0.000 K/sec ( +- 66.67% ) 715 page-faults # 0.421 K/sec ( +- 0.07% ) 5,089,496,258 cycles # 2.992 GHz ( +- 1.30% ) 1,964,902,486 stalled-cycles-frontend # 38.61% frontend cycles idle ( +- 0.93% ) 9,433,045,886 instructions # 1.85 insn per cycle # 0.21 stalled cycles per insn ( +- 0.00% ) 1,546,200,236 branches # 909.121 M/sec ( +- 0.00% ) 34,708,955 branch-misses # 2.24% of all branches ( +- 15.84% ) 1.704831741 seconds time elapsed ( +- 1.28% ) ################################################## fib-fx1.scm -O4 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1715.282087 task-clock (msec) # 0.998 CPUs utilized ( +- 0.15% ) 298 context-switches # 0.173 K/sec ( +- 33.13% ) 0 cpu-migrations # 0.000 K/sec 716 page-faults # 0.417 K/sec ( +- 0.08% ) 5,132,687,289 cycles # 2.992 GHz ( +- 0.16% ) 2,143,224,133 stalled-cycles-frontend # 41.76% frontend cycles idle ( +- 0.39% ) 9,046,145,038 instructions # 1.76 insn per cycle # 0.24 stalled cycles per insn ( +- 0.00% ) 1,234,625,556 branches # 719.780 M/sec ( +- 0.01% ) 32,981,217 branch-misses # 2.67% of all branches ( +- 0.13% ) 1.719543647 seconds time elapsed ( +- 0.10% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 1705.130718 task-clock (msec) # 0.999 CPUs utilized ( +- 0.16% ) 122 context-switches # 0.072 K/sec ( +- 52.84% ) 0 cpu-migrations # 0.000 K/sec 716 page-faults # 0.420 K/sec ( +- 0.08% ) 5,103,127,699 cycles # 2.993 GHz ( +- 0.16% ) 2,117,807,787 stalled-cycles-frontend # 41.50% frontend cycles idle ( +- 0.36% ) 9,047,732,319 instructions # 1.77 insn per cycle # 0.23 stalled cycles per insn ( +- 0.01% ) 1,234,880,772 branches # 724.215 M/sec ( +- 0.01% ) 33,016,911 branch-misses # 2.67% of all branches ( +- 0.16% ) 1.707016915 seconds time elapsed ( +- 0.14% ) ################################################## fib-fx.scm -O4 #################### vanilla Performance counter stats for './fib-fx-core 36' (10 runs): 1712.733998 task-clock (msec) # 0.998 CPUs utilized ( +- 0.11% ) 138 context-switches # 0.081 K/sec ( +- 55.21% ) 0 cpu-migrations # 0.000 K/sec ( +- 66.67% ) 716 page-faults # 0.418 K/sec ( +- 0.07% ) 5,125,795,745 cycles # 2.993 GHz ( +- 0.11% ) 2,137,129,186 stalled-cycles-frontend # 41.69% frontend cycles idle ( +- 0.28% ) 9,045,656,591 instructions # 1.76 insn per cycle # 0.24 stalled cycles per insn ( +- 0.00% ) 1,234,528,012 branches # 720.794 M/sec ( +- 0.00% ) 32,990,800 branch-misses # 2.67% of all branches ( +- 0.08% ) 1.715652729 seconds time elapsed ( +- 0.13% ) #################### safe-fx Performance counter stats for './fib-fx-safe-fx 36' (10 runs): 1701.165999 task-clock (msec) # 0.999 CPUs utilized ( +- 0.08% ) 123 context-switches # 0.072 K/sec ( +- 63.52% ) 0 cpu-migrations # 0.000 K/sec 716 page-faults # 0.421 K/sec ( +- 0.05% ) 5,091,280,944 cycles # 2.993 GHz ( +- 0.08% ) 2,108,054,217 stalled-cycles-frontend # 41.41% frontend cycles idle ( +- 0.18% ) 9,045,481,736 instructions # 1.78 insn per cycle # 0.23 stalled cycles per insn ( +- 0.00% ) 1,234,495,976 branches # 725.676 M/sec ( +- 0.00% ) 33,039,643 branch-misses # 2.68% of all branches ( +- 0.08% ) 1.703338879 seconds time elapsed ( +- 0.10% )