File tree 1 file changed +7
-6
lines changed
1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -477,12 +477,13 @@ func (b *B) loopSlowPath() bool {
477
477
// toward the benchmark measurement. Likewise, when it returns false, it stops
478
478
// the timer so cleanup code is not measured.
479
479
//
480
- // The compiler never optimizes away calls to functions within the body of a
481
- // "for b.Loop() { ... }" loop. This prevents surprises that can otherwise occur
482
- // if the compiler determines that the result of a benchmarked function is
483
- // unused. The loop condition must be written in exactly as "b.Loop()", and this
484
- // only applies to calls syntactically between the curly braces of the loop.
485
- // Optimizations are performed as usual in any functions called by the loop.
480
+ // Within the body of a "for b.Loop() { ... }" loop, arguments to and
481
+ // results from function calls within the loop are kept alive, preventing
482
+ // the compiler from fully optimizing away the loop body. Currently, this is
483
+ // implemented by disabling inlining of functions called in a b.Loop loop.
484
+ // This applies only to calls syntactically between the curly braces of the loop,
485
+ // and the loop condition must be written exactly as "b.Loop()". Optimizations
486
+ // are performed as usual in any functions called by the loop.
486
487
//
487
488
// After Loop returns false, b.N contains the total number of iterations that
488
489
// ran, so the benchmark may use b.N to compute other average metrics.
You can’t perform that action at this time.
0 commit comments