NAME
__insn_barrier —
compiler reorder
barrier
SYNOPSIS
#include <sys/cdefs.h>
void
__insn_barrier();
DESCRIPTION
The
__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.
SEE ALSO
gcc(1),
cdefs(3),
mb(9)
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.
HISTORY
The
__insn_barrier() macro first appeared in
NetBSD 2.0.