The idea is to offer the builtin procedure
__builtin__clear_cache (void *begin, void *end),
which is provided at least by gcc and clang, in a portable manner. From the documentation of gcc's version:
"This function is used to flush the processor’s instruction cache for
the region of memory between begin inclusive and end
exclusive. Some targets require that the instruction cache be
flushed, after modifying memory containing code, in order to obtain
deterministic behavior."
Clients for such a procedure are, in particular, JIT compilers. GNU lightning currently calls libgcc's `__clear_cache' directly ([1]), but this will fail on systems that do not have libgcc.
Having a Gnulib module that tests for the builtin analogous to the module `builtin-expect' ([2]) would be great.
Marc
--