Skip to content

Shared heap enhancements for Interpreter and AOT#4400

Merged
lum1n0us merged 24 commits intomainfrom
dev/shared_heap
Jul 4, 2025
Merged

Shared heap enhancements for Interpreter and AOT#4400
lum1n0us merged 24 commits intomainfrom
dev/shared_heap

Conversation

@TianlongLiang
Copy link
Copy Markdown
Contributor

For interpreter and AOT mode:

  • Added a new type of shared heap, which can be initialized from a preallocated buffer.
  • Introduced shared heap chain, allowing multiple shared heaps to be chained together; and added new export APIs to create/disconnect a shared heap chain.
  • Updated related document and sample code, added more unit test cases.

TianlongLiang and others added 23 commits February 5, 2025 10:12
- preallocated shared heap and shared heap chain
- update preallocated shared heap and shared heap chain sample and document
- shared heap unit test and sample
- update document and build script

Co-authored-by: liang.he <liang.he@intel.com>
…shared_heap_from_main

From 68e4534 Iterate callstack API
to 7f968f5 wasi_socket_ext.c: avoid tls to make this library-friendly
…_from_main

merge commits into dev/shared_heap from main

From 68e4534 Iterate callstack API
to 7f968f5 wasi_socket_ext.c: avoid tls to make this library-friendly
* shared heap enhancement: modify memory check for aot_check_memory_overflow to accomodate shared heap chain
* shared heap enhancement in AOT
* use alloca for func ctx shared heap cache value
* use correct alloca for func ctx shared heap cache value
* enable shared heap chain aot test and bug fix
* Fix a missing argument on 32bits platform, still has the shared heap chain iteration problem
* Fix shared heap chain iteration problem on 32bits platform
* fix AOT bulk memory bounds checks compliation issue
* fix AOT bulk memory bounds checks on 64 bits platform
* refactor aot memory check
* refactor AOT bulk memory bounds checks
* add more unit test for shared heap
* finished organizing unit test for shared heap and enable x86_32 for shared heap unit test
* cover a corner case for bulk memory overflow check
* try func call to replace shared heap chain traverse
* fix compilation error in JIT and potentially load nullptr
* add option for wamrc to enable single shared heap/multi shared heap, and update shared heap unit tests and sample
* cr suggestions: 1. check potiential underflow 2. refactor and use separate function for bulk memory and normal memroy 3. static assert 4. add more comments 5. remove unused code
Copy link
Copy Markdown
Contributor Author

@TianlongLiang TianlongLiang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review checkpoint 1/2

Comment thread core/iwasm/common/wasm_memory.c
Comment thread core/iwasm/common/wasm_memory.c
Comment thread core/iwasm/common/wasm_memory.c
Comment thread core/iwasm/common/wasm_memory.c Outdated
Comment thread core/iwasm/common/wasm_memory.c Outdated
Comment thread core/iwasm/common/wasm_memory.c Outdated
Comment thread core/iwasm/common/wasm_memory.c Outdated
Comment thread core/iwasm/common/wasm_memory.c
Comment thread core/iwasm/common/wasm_memory.c Outdated
Comment thread samples/shared-heap/src/shared_heap_chain.c Outdated
Comment thread samples/shared-heap/src/shared_heap_chain.c
Comment thread samples/shared-heap/wasm-apps/test2.c
Comment thread tests/unit/shared-heap/shared_heap_test.cc Outdated
Comment thread tests/unit/shared-heap/shared_heap_test.cc
Comment thread tests/unit/shared-heap/shared_heap_test.cc
Comment thread tests/unit/shared-heap/shared_heap_test.cc
Comment thread tests/unit/shared-heap/shared_heap_test.cc
Comment thread tests/unit/shared-heap/wasm-apps/test_addr_conv.c Outdated
Copy link
Copy Markdown
Contributor Author

@TianlongLiang TianlongLiang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review 2/2

Comment thread core/iwasm/common/wasm_runtime_common.c Outdated
Comment thread core/iwasm/compilation/aot_emit_memory.c Outdated
Comment thread core/iwasm/common/wasm_runtime_common.c Outdated
Comment thread core/iwasm/compilation/aot_llvm.c
Comment thread core/iwasm/compilation/aot_llvm.c Outdated
@lum1n0us lum1n0us linked an issue Jul 4, 2025 that may be closed by this pull request
@lum1n0us lum1n0us merged commit 8a55a1e into main Jul 4, 2025
826 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RFC] Shared heap enhancements

3 participants