On 22/4/25 07:27, Kohei Tokunaga wrote:
Although __builtin___clear_cache is used to flush the instruction cache for
a specified memory region[1], this operation doesn't apply to wasm, as its
memory isn't executable. Moreover, Emscripten does not support this builtin
and fails to compile it with the following error.

fatal error: error in backend: llvm.clear_cache is not supported on wasm

Note, you mix LLVM error ...


To resolve this, this commit removes the call to __builtin___clear_cache for
Emscripten build.

[1] 
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005f_005f_005fclear_005fcache

... with this GCC documentation:

  If the target does not require instruction cache flushes,
  __builtin___clear_cache has no effect.

I'd expect __builtin___clear_cache() to be OK, having no effect on a GCC
WASM implementation.


Signed-off-by: Kohei Tokunaga <ktokunaga.m...@gmail.com>
---
  include/qemu/cacheflush.h | 7 +++++++
  util/cacheflush.c         | 4 ++++
  2 files changed, 11 insertions(+)


Reply via email to