Previous: , Up: Utilities Reference   [Contents][Index]


4.7.2 Optimization Utilities Reference

The following macros are meant to avoid certain optimizations the compiler might perform on your test code.

C Optimization Macro: MICRO_BENCHMARK_DO_NOT_OPTIMIZE (lvalue)

Preconditions:

  1. Function scope macro.

Effects:

  1. Simulate read+write on lvalue.

Postconditions:

  1. The compiler should not optimize lvalue away.
C Optimization Macro: MICRO_BENCHMARK_COMPILER_BARRIER ()

Preconditions:

  1. Function scope macro.

Effects:

  1. Memory fence.

Postconditions:

  1. The compiler should treat all memory as clobbered.
C Utility Function: void micro_benchmark_do_not_optimize (const void *dummy)

Preconditions:

  1. None.

Effects:

  1. “Compatibility” implementation of the previous macros.

Postconditions:

  1. A wish of hope and not much more.