forked from bytecodealliance/wasm-micro-runtime
-
Notifications
You must be signed in to change notification settings - Fork 1
LLVM 13 #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
LLVM 13 #2
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Initial integration of WASI-NN based on bytecodealliance#1225: - Implement the library core/iwasm/libraries/wasi-nn - Support TensorFlow, CPU, F32 at the first stage - Add cmake variable `-DWAMR_BUILD_WASI_NN` - Add test case based on Docker image and update document Refer to bytecodealliance#1573
Fix wasi_socket_ext library failed to link with cxx project
Nothing wrong with passing structures and function pointers as far as the native code is aware of and careful about the ABI used in the wasm module.
…odealliance#1588) And add some clarifications
…lliance#1578) 1. Support cross building wamrc and installing it 2. Remove PIE flag for Windows to fix compilation error when compiled by clang 3. Support linking LLVM shared libs to help build with system default or custom LLVM installation and reduce binary size.
And fix a code format issue introduced by last commit.
It is unused and the same functionality is provided by `wasm_runtime_find_module_registered`.
Fix build socket api error introduced by bytecodealliance#1590
Generate `xcodeproj`, that could build iwasm shared library for iOS or iOS Simulator Signed-off-by: HangedFish <bravohangedman@outlook.com>
Refactor the layout of interpreter and AOT module instance: - Unify the interp/AOT module instance, use the same WASMModuleInstance/ WASMMemoryInstance/WASMTableInstance data structures for both interpreter and AOT - Make the offset of most fields the same in module instance for both interpreter and AOT, append memory instance structure, global data and table instances to the end of module instance for interpreter mode (like AOT mode) - For extra fields in WASM module instance, use WASMModuleInstanceExtra to create a field `e` for interpreter - Change the LLVM JIT module instance creating process, LLVM JIT uses the WASM module and module instance same as interpreter/Fast-JIT mode. So that Fast JIT and LLVM JIT can access the same data structures, and make it possible to implement the Multi-tier JIT (tier-up from Fast JIT to LLVM JIT) in the future - Unify some APIs: merge some APIs for module instance and memory instance's related operations (only implement one copy) Note that the AOT ABI is same, the AOT file format, AOT relocation types, how AOT code accesses the AOT module instance and so on are kept unchanged. Refer to: bytecodealliance#1384
… RSS (bytecodealliance#1608) With hardware boundary checking enabled, the app heap memory comes from `os_mmap()`. Clearing the whole heap in the memory allocator causes process RSS to reach maximum app heap size immediately and wastes lots of memory, so we had better remove the unnecessary memory clean operations in the memory allocator.
Refactor LLVM JIT for some purposes: - To simplify the source code of JIT compilation - To simplify the JIT modes - To align with LLVM latest changes - To prepare for the Multi-tier JIT compilation, refer to bytecodealliance#1302 The changes mainly include: - Remove the MCJIT mode, replace it with ORC JIT eager mode - Remove the LLVM legacy pass manager (only keep the LLVM new pass manager) - Change the lazy mode's LLVM module/function binding: change each function in an individual LLVM module into all functions in a single LLVM module - Upgraded ORC JIT to ORCv2 JIT to enable lazy compilation Refer to bytecodealliance#1468
…ytecodealliance#1598) This fixes unused option warnings on -pie for macOS. (On macOS cmake produces "-fPIE -Xlinker -pie") Bump required cmake version to 3.14 for CheckPIESupported. References: https://cmake.org/cmake/help/latest/prop_tgt/POSITION_INDEPENDENT_CODE.html https://cmake.org/cmake/help/latest/module/CheckPIESupported.html#module:CheckPIESupported
…#1616) Since `memory` is not NULL, memory_instantiate will return non-null value when failed.
…ce#1620) Translate call_indirect opcode by calling wasm functions with Fast JIT IRs instead of calling jit_call_indirect runtime API, so as to improve the performance. Translate call native function process with Fast JIT IRs to validate each pointer argument and convert it into native address, and then call the native function directly instead of calling jit_invoke_native runtime API, so as to improve the performance.
NuttX doesn't have SO_REUSEPORT.
…ce#1679) Improve the documentation for setting up SGX-RA using WAMR, based on the feedback in bytecodealliance#1670. This notably highlights the dependency on Intel PCS and PCCS and how to install/configure them.
* Vote for new introduced TSC members * Correct the TSC member github ID
…nce#1684) Update runtest.py of wamr-test-suites to support both python2 and python3
…liance#1682) Add a new options to control the native stack hw bound check feature: - Besides the original option `cmake -DWAMR_DISABLE_HW_BOUND_CHECK=1/0`, add a new option `cmake -DWAMR_DISABLE_STACK_HW_BOUND_CHECK=1/0` - When the linear memory hw bound check is disabled, the stack hw bound check will be disabled automatically, no matter what the input option is - When the linear memory hw bound check is enabled, the stack hw bound check is enabled/disabled according to the value of input option - Besides the original option `--bounds-checks=1/0`, add a new option `--stack-bounds-checks=1/0` for wamrc Refer to: bytecodealliance#1677
…ing IPFS (bytecodealliance#1685) A limitation of the current implementation of SGX IPFS in WAMR is that it prevents to open files which are not in the current directory. This restriction is lifted and can now open files in paths, similarly to the WASI openat call, which takes into account the sandbox of the file system.
…nce#1687) Enable spec test option on Nuttx platform. Register sqrt/sqrtf in aot global symbol map and _fixdfdi/__floatundidf in xtensa symbol map.
Also add support for wasm_shared_module_t, and add lock for wasm_module_t related operations. And add wasm-c-api sample threads, update sample clone.
Clear warnings like below when building LLVM JIT and wamrc: llvm-project/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h:73:25: warning: redundant move in return statement [-Wredundant-move] 73 | return std::move(Err);
Refine the generated LLVM IRs at the beginning of each LLVM AOT/JIT function to fasten the LLVM IR optimization: - Only create argv_buf if there are func calls in this function - Only create native stack bound if stack bound check is enabled - Only create aux stack info if there is opcode set_global_aux_stack - Only create native symbol if indirect_mode is enabled - Only create memory info if there are memory operations - Only create func_type_indexes if there is opcode call_indirect
…ealliance#1700) Directly download wabt binary and use it in spec test instead of building it from source to fasten the spec test.
…bytecodealliance#1702) Fix build error in sample ref-types and wasm-c-api caused by the version of wat2wasm: refine makefile to auto detect the wat2wasm version and add the compile flag accordingly.
Update build wasm app document, add how to set buildflags for Rust project to reduce the footprint. Clear Windows warnings and a shadow warning in aot_emit_numberic.c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.