wasm-micro-runtime/core/iwasm/compilation
Marcin Kolny cbc2078898
AOT call stack optimizations (#3773)
- Implement TINY / STANDARD frame modes - tiny mode is only able to keep track on the IP
  and func idx, STANDARD mode provides more capabilities (parameters, stack pointer etc.).
- Implement FRAME_PER_FUNCTION / FRAME_PER_CALL modes - frame per function adds
  code at the beginning and at the end of each function for allocating / deallocating stack frame,
  whereas in per-call mode the frame is allocated before each call. The exception is call to
  the imported function, where frame-per-function mode also allocates the stack before the
  `call` instruction (as it can't instrument the imported function).

At the moment TINY + FRAME_PER_FUNCTION is automatically enabled in case GC and perf
profiling are disabled and `values` call stack feature is not requested. In all the other cases
STANDARD + FRAME_PER_CALL is used.

STANDARD + FRAME_PER_FUNCTION and TINY + FRAME_PER_CALL are currently not
implemented but possible, and might be enabled in the future.

ps. https://github.com/bytecodealliance/wasm-micro-runtime/issues/3758
2024-09-10 09:05:23 +08:00
..
debug dwarf_extractor.cpp: Try to preserve link name (#3542) 2024-06-19 16:51:44 +08:00
simd Fix compile warnings/error reported in Windows (#3616) 2024-07-12 16:43:22 +08:00
aot_compiler.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_compiler.h AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_emit_aot_file.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_emit_aot_file.h Expose more functions related to emitting AOT files (#3520) 2024-06-14 15:57:45 +08:00
aot_emit_compare.c Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_compare.h Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_const.c aot compiler: Fix NaN handling for opcode f32/f64.const in XIP mode (#3721) 2024-08-16 14:04:41 +08:00
aot_emit_const.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_emit_control.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_emit_control.h Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_conversion.c Simplify fcmp intrinsic logic for AOT/XIP (#1881) 2023-01-12 12:05:53 +08:00
aot_emit_conversion.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_emit_exception.c Add wamrc parameter to configure stack frame features (#3763) 2024-09-05 21:44:06 +08:00
aot_emit_exception.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_emit_function.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_emit_function.h Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_gc.c Fix some more spelling issues (#3393) 2024-05-08 09:30:29 +08:00
aot_emit_gc.h Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_memory.c Add support for multi-memory proposal in classic interpreter (#3742) 2024-08-21 12:22:23 +08:00
aot_emit_memory.h aot compiler: Use larger alignment for load/store when possible (#3552) 2024-06-22 10:32:52 +08:00
aot_emit_numberic.c aot compiler: Fix a type mismatch in compile_op_float_min_max (#3423) 2024-05-14 10:06:48 +08:00
aot_emit_numberic.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_emit_parametric.c Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_parametric.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_emit_stringref.c Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_stringref.h Implement GC (Garbage Collection) feature for interpreter, AOT and LLVM-JIT (#3125) 2024-02-06 20:47:11 +08:00
aot_emit_table.c Fix some more spelling issues (#3393) 2024-05-08 09:30:29 +08:00
aot_emit_table.h Refine AOT/JIT code call wasm-c-api import process (#2982) 2024-01-10 18:37:02 +08:00
aot_emit_variable.c Add wasm module global type information APIs (#3406) 2024-05-10 09:15:58 +08:00
aot_emit_variable.h Apply clang-format for core/iwasm compilation and libraries (#784) 2021-10-13 15:13:00 +08:00
aot_llvm_extra.cpp Update std atomic check and simd compatibility check for arc compiler (#3716) 2024-08-16 10:12:23 +08:00
aot_llvm_extra2.cpp aot: Fix LLVMSetTailCallKind check (#3099) 2024-01-30 20:50:33 +08:00
aot_llvm_extra2.h aot: Fix LLVMSetTailCallKind check (#3099) 2024-01-30 20:50:33 +08:00
aot_llvm.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_llvm.h AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_orc_extra.cpp Fix compile warnings/error reported in Windows (#3616) 2024-07-12 16:43:22 +08:00
aot_orc_extra.h Fix some more spelling issues (#3393) 2024-05-08 09:30:29 +08:00
aot_orc_extra2.cpp Fix some more spelling issues (#3393) 2024-05-08 09:30:29 +08:00
aot_stack_frame_comp.c AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_stack_frame_comp.h AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot_stack_frame.h AOT call stack optimizations (#3773) 2024-09-10 09:05:23 +08:00
aot.c Add support for multi-memory proposal in classic interpreter (#3742) 2024-08-21 12:22:23 +08:00
aot.h aot compiler: Enlarge AOTNativeSymbol->symbol (#3662) 2024-07-25 11:21:07 +08:00
iwasm_compl.cmake Implement atomic and memset/memmove/memcpy intrinsic for riscv (#841) 2021-11-30 17:10:14 +08:00