From 1571d7195ea13e517835a20dde16577e99d548e0 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Thu, 2 Nov 2023 22:28:26 +0200 Subject: [PATCH] fix(tvix/eval/benches): use black_box properly The purpose of black_box is to actually prevent the compiler from being able to optimize computation of the benchmarked function away. To accomplish this, we need to actually *use* black_box to blackbox the input data away, rather than the return type. Change-Id: I5438982f57509fbf7b85034346a2739d76aef1fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/9902 Autosubmit: flokli Reviewed-by: tazjin Tested-by: BuildkiteCI --- tvix/eval/benches/eval.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tvix/eval/benches/eval.rs b/tvix/eval/benches/eval.rs index f85e3585f..fecf0db1b 100644 --- a/tvix/eval/benches/eval.rs +++ b/tvix/eval/benches/eval.rs @@ -8,8 +8,7 @@ fn interpret(code: &str) { fn eval_literals(c: &mut Criterion) { c.bench_function("int", |b| { b.iter(|| { - interpret("42"); - black_box(()) + interpret(black_box("42")); }) }); } @@ -17,8 +16,7 @@ fn eval_literals(c: &mut Criterion) { fn eval_merge_attrs(c: &mut Criterion) { c.bench_function("merge small attrs", |b| { b.iter(|| { - interpret("{ a = 1; b = 2; } // { c = 3; }"); - black_box(()) + interpret(black_box("{ a = 1; b = 2; } // { c = 3; }")); }) }); @@ -29,8 +27,7 @@ fn eval_merge_attrs(c: &mut Criterion) { ); let expr = format!("{large_attrs} // {{ c = 3; }}"); b.iter(move || { - interpret(&expr); - black_box(()) + interpret(black_box(&expr)); }) }); }