Acts as a barrier to compiler optimizations that involve code motion, or reordering of machine instructions. Compiler optimizations will not move machine instructions past the location of the __fence call.
void __fence (void);
This function is useful to guarantee the ordering of instructions in the object code generated by the compiler when optimization is enabled.