@@ -9,6 +9,7 @@ fn fibo_5_wasm_bench(c: &mut Criterion) {
99 } ) ;
1010}
1111
12+ #[ cfg( feature = "baseline_benches" ) ]
1213fn fibo_5_orig_bench ( c : & mut Criterion ) {
1314 c. bench_function ( "fib 5 plain rust" , |b| b. iter ( || fibo_orig ( black_box ( 5 ) ) ) ) ;
1415}
@@ -20,6 +21,7 @@ fn fibo_20_wasm_bench(c: &mut Criterion) {
2021 } ) ;
2122}
2223
24+ #[ cfg( feature = "baseline_benches" ) ]
2325fn fibo_20_orig_bench ( c : & mut Criterion ) {
2426 c. bench_function ( "fib 20 plain rust" , |b| b. iter ( || fibo_orig ( black_box ( 20 ) ) ) ) ;
2527}
@@ -33,6 +35,7 @@ fn memsort_100_wasm_bench(c: &mut Criterion) {
3335 } ) ;
3436}
3537
38+ #[ cfg( feature = "baseline_benches" ) ]
3639fn memsort_100_orig_bench ( c : & mut Criterion ) {
3740 c. bench_function ( "memsort 100 plain rust" , |b| {
3841 b. iter ( || mem_fill_sort_sum_orig ( black_box ( 100 ) , black_box ( 42 ) ) )
@@ -48,6 +51,7 @@ fn collatz_27_wasm_bench(c: &mut Criterion) {
4851 } ) ;
4952}
5053
54+ #[ cfg( feature = "baseline_benches" ) ]
5155fn collatz_27_orig_bench ( c : & mut Criterion ) {
5256 c. bench_function ( "collatz 27 plain rust" , |b| {
5357 b. iter ( || collatz_steps_orig ( black_box ( 27 ) ) )
@@ -61,6 +65,7 @@ fn collatz_871_wasm_bench(c: &mut Criterion) {
6165 } ) ;
6266}
6367
68+ #[ cfg( feature = "baseline_benches" ) ]
6469fn collatz_871_orig_bench ( c : & mut Criterion ) {
6570 c. bench_function ( "collatz 871 plain rust" , |b| {
6671 b. iter ( || collatz_steps_orig ( black_box ( 871 ) ) )
@@ -76,6 +81,7 @@ fn isqrt_wasm_bench(c: &mut Criterion) {
7681 } ) ;
7782}
7883
84+ #[ cfg( feature = "baseline_benches" ) ]
7985fn isqrt_orig_bench ( c : & mut Criterion ) {
8086 c. bench_function ( "isqrt 1000000 plain rust" , |b| {
8187 b. iter ( || isqrt_orig ( black_box ( 1_000_000 ) ) )
@@ -89,6 +95,7 @@ fn gcd_wasm_bench(c: &mut Criterion) {
8995 } ) ;
9096}
9197
98+ #[ cfg( feature = "baseline_benches" ) ]
9299fn gcd_orig_bench ( c : & mut Criterion ) {
93100 c. bench_function ( "gcd(46368,28657) plain rust" , |b| {
94101 b. iter ( || gcd_orig ( black_box ( 46368 ) , black_box ( 28657 ) ) )
@@ -104,6 +111,7 @@ fn popcount_wasm_bench(c: &mut Criterion) {
104111 } ) ;
105112}
106113
114+ #[ cfg( feature = "baseline_benches" ) ]
107115fn popcount_orig_bench ( c : & mut Criterion ) {
108116 c. bench_function ( "popcount 0xDEADBEEF plain rust" , |b| {
109117 b. iter ( || popcount_orig ( black_box ( 0xDEADBEEFu32 as i32 ) ) )
@@ -119,12 +127,35 @@ fn sum_recursive_100_wasm_bench(c: &mut Criterion) {
119127 } ) ;
120128}
121129
130+ #[ cfg( feature = "baseline_benches" ) ]
122131fn sum_recursive_100_orig_bench ( c : & mut Criterion ) {
123132 c. bench_function ( "sum_recursive 100 plain rust" , |b| {
124133 b. iter ( || sum_recursive_orig ( black_box ( 100 ) ) )
125134 } ) ;
126135}
127136
137+ #[ cfg( not( feature = "baseline_benches" ) ) ]
138+ criterion_group ! (
139+ benches,
140+ // Fibonacci (pure computation)
141+ fibo_5_wasm_bench,
142+ fibo_20_wasm_bench,
143+ // Memory-intensive (bounds-checking overhead)
144+ memsort_100_wasm_bench,
145+ // Branchy control flow (division + conditionals)
146+ collatz_27_wasm_bench,
147+ collatz_871_wasm_bench,
148+ // Binary search loop (multiplication + comparison)
149+ isqrt_wasm_bench,
150+ // Euclidean algorithm (modular arithmetic loop)
151+ gcd_wasm_bench,
152+ // Bitwise tight loop
153+ popcount_wasm_bench,
154+ // Recursive function call overhead
155+ sum_recursive_100_wasm_bench,
156+ ) ;
157+
158+ #[ cfg( feature = "baseline_benches" ) ]
128159criterion_group ! (
129160 benches,
130161 // Fibonacci (pure computation)
@@ -153,4 +184,5 @@ criterion_group!(
153184 sum_recursive_100_wasm_bench,
154185 sum_recursive_100_orig_bench,
155186) ;
187+
156188criterion_main ! ( benches) ;
0 commit comments