| __INSN_BARRIER(3) | Library Functions Manual | __INSN_BARRIER(3) | 
__insn_barrier —
#include <sys/cdefs.h>
void
  
  __insn_barrier();
__insn_barrier() macro prevents GCC from moving code
  across the barrier. In other words, the compiler is not allowed to reorder
  read and write commands below the barrier with the code preceding the barrier.
  Like with the volatile type qualifier,
  __insn_barrier() may be necessary in some corner cases
  to prevent the compiler from misoptimizing.
Paul E. McKenney, Memory Barriers: a Hardware View for Software Hackers, http://www.rdrop.com/users/paulmck/scalability/paper/whymb.2010.06.07c.pdf, June 7, 2010.
__insn_barrier() macro first appeared in
  NetBSD 2.0.
| January 2, 2011 | NetBSD 9.4 |