Compiler memory barriers has the effect among other things to force the compiler to make sure all stack variables that are cached in registers are written t
Recollecting one of the threads on lkml, one of the methods for single variable compiler-only barrier is:
#define forget(x) __asm__ __volatile__("":"=m"(x):"m"(x))