mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 06:55:07 +00:00
document: Update description about segue opt, update README (#3338)
This commit is contained in:
parent
67dc2ae0b2
commit
a6e008bca7
10
README.md
10
README.md
|
@ -10,12 +10,12 @@
|
||||||
[Build WAMR](./doc/build_wamr.md) | [Build AOT Compiler](./wamr-compiler/README.md) | [Embed WAMR](./doc/embed_wamr.md) | [Export Native API](./doc/export_native_api.md) | [Build Wasm Apps](./doc/build_wasm_app.md) | [Samples](./samples/README.md)
|
[Build WAMR](./doc/build_wamr.md) | [Build AOT Compiler](./wamr-compiler/README.md) | [Embed WAMR](./doc/embed_wamr.md) | [Export Native API](./doc/export_native_api.md) | [Build Wasm Apps](./doc/build_wasm_app.md) | [Samples](./samples/README.md)
|
||||||
|
|
||||||
WebAssembly Micro Runtime (WAMR) is a lightweight standalone WebAssembly (Wasm) runtime with small footprint, high performance and highly configurable features for applications cross from embedded, IoT, edge to Trusted Execution Environment (TEE), smart contract, cloud native and so on. It includes a few parts as below:
|
WebAssembly Micro Runtime (WAMR) is a lightweight standalone WebAssembly (Wasm) runtime with small footprint, high performance and highly configurable features for applications cross from embedded, IoT, edge to Trusted Execution Environment (TEE), smart contract, cloud native and so on. It includes a few parts as below:
|
||||||
- [**VMcore**](./core/iwasm/): A set of runtime libraries for loading and running Wasm modules. It supports several execution modes including interpreter, Ahead-of-Time compilation(AoT) and Just-in-Time compilation (JIT). The WAMR supports two JIT tiers - Fast JIT, LLVM JIT, and dynamic tier-up from Fast JIT to LLVM JIT.
|
- [**VMcore**](./core/iwasm/): A set of runtime libraries for loading and running Wasm modules. It supports rich running modes including interpreter, Ahead-of-Time compilation(AoT) and Just-in-Time compilation (JIT). WAMR supports two JIT tiers - Fast JIT, LLVM JIT, and dynamic tier-up from Fast JIT to LLVM JIT.
|
||||||
- [**iwasm**](./product-mini/): The executable binary built with WAMR VMcore supports WASI and command line interface.
|
- [**iwasm**](./product-mini/): The executable binary built with WAMR VMcore which supports WASI and command line interface.
|
||||||
- [**wamrc**](./wamr-compiler/): The AOT compiler to compile Wasm file into AOT file
|
- [**wamrc**](./wamr-compiler/): The AOT compiler to compile Wasm file into AOT file
|
||||||
- Useful components and tools for building real solutions with WAMR vmcore:
|
- Useful components and tools for building real solutions with WAMR vmcore:
|
||||||
- [App-framework](https://github.com/bytecodealliance/wamr-app-framework/blob/main/app-framework/README.md): A framework for supporting APIs for the Wasm applications
|
- [App-framework](https://github.com/bytecodealliance/wamr-app-framework/blob/main/app-framework/README.md): A framework for supporting APIs for the Wasm applications
|
||||||
- [App-manager](https://github.com/bytecodealliance/wamr-app-framework/blob/main/app-mgr/README.md): a framework for dynamical loading the Wasm module remotely
|
- [App-manager](https://github.com/bytecodealliance/wamr-app-framework/blob/main/app-mgr/README.md): A framework for dynamical loading the Wasm module remotely
|
||||||
- [WAMR-IDE](./test-tools/wamr-ide): An experimental VSCode extension for developping WebAssembly applications with C/C++
|
- [WAMR-IDE](./test-tools/wamr-ide): An experimental VSCode extension for developping WebAssembly applications with C/C++
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ The following platforms are supported, click each link below for how to build iw
|
||||||
## Getting started
|
## Getting started
|
||||||
- [Build VM core](./doc/build_wamr.md) and [Build wamrc AOT compiler](./wamr-compiler/README.md)
|
- [Build VM core](./doc/build_wamr.md) and [Build wamrc AOT compiler](./wamr-compiler/README.md)
|
||||||
- [Build iwasm (mini product)](./product-mini/README.md): [Linux](./product-mini/README.md#linux), [SGX](./doc/linux_sgx.md), [MacOS](./product-mini/README.md#macos) and [Windows](./product-mini/README.md#windows)
|
- [Build iwasm (mini product)](./product-mini/README.md): [Linux](./product-mini/README.md#linux), [SGX](./doc/linux_sgx.md), [MacOS](./product-mini/README.md#macos) and [Windows](./product-mini/README.md#windows)
|
||||||
- [Embed into C/C++](./doc/embed_wamr.md), [Embed into Python](./language-bindings/python), [Embed into Go](./language-bindings/go)
|
- [Embed into C/C++](./doc/embed_wamr.md), [Embed into Python](./language-bindings/python), [Embed into Go](./language-bindings/go), [Embed in Rust](./language-bindings/rust)
|
||||||
- [Register native APIs for Wasm applications](./doc/export_native_api.md)
|
- [Register native APIs for Wasm applications](./doc/export_native_api.md)
|
||||||
- [Build wamrc AOT compiler](./wamr-compiler/README.md)
|
- [Build wamrc AOT compiler](./wamr-compiler/README.md)
|
||||||
- [Build Wasm applications](./doc/build_wasm_app.md)
|
- [Build Wasm applications](./doc/build_wasm_app.md)
|
||||||
|
@ -70,7 +70,6 @@ The following platforms are supported, click each link below for how to build iw
|
||||||
- [End-user APIs documentation](https://bytecodealliance.github.io/wamr.dev/apis/)
|
- [End-user APIs documentation](https://bytecodealliance.github.io/wamr.dev/apis/)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Performance and memory
|
### Performance and memory
|
||||||
- [Blog: The WAMR memory model](https://bytecodealliance.github.io/wamr.dev/blog/the-wamr-memory-model/)
|
- [Blog: The WAMR memory model](https://bytecodealliance.github.io/wamr.dev/blog/the-wamr-memory-model/)
|
||||||
- [Blog: Understand WAMR heaps](https://bytecodealliance.github.io/wamr.dev/blog/understand-the-wamr-heaps/) and [stacks](https://bytecodealliance.github.io/wamr.dev/blog/understand-the-wamr-stacks/)
|
- [Blog: Understand WAMR heaps](https://bytecodealliance.github.io/wamr.dev/blog/understand-the-wamr-heaps/) and [stacks](https://bytecodealliance.github.io/wamr.dev/blog/understand-the-wamr-stacks/)
|
||||||
|
@ -82,7 +81,6 @@ The following platforms are supported, click each link below for how to build iw
|
||||||
- [Performance and footprint data](https://github.com/bytecodealliance/wasm-micro-runtime/wiki/Performance): the performance and footprint data
|
- [Performance and footprint data](https://github.com/bytecodealliance/wasm-micro-runtime/wiki/Performance): the performance and footprint data
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Project Technical Steering Committee
|
Project Technical Steering Committee
|
||||||
====================================
|
====================================
|
||||||
The [WAMR PTSC Charter](./TSC_Charter.md) governs the operations of the project TSC.
|
The [WAMR PTSC Charter](./TSC_Charter.md) governs the operations of the project TSC.
|
||||||
|
|
|
@ -89,7 +89,7 @@ Each letter in the "()" represents a parameter type, and the one following after
|
||||||
- '**I**': i64
|
- '**I**': i64
|
||||||
- '**f**': f32
|
- '**f**': f32
|
||||||
- '**F**': f64
|
- '**F**': f64
|
||||||
- '**r**': externref (has to be the value of a `uintptr_t` variable)
|
- '**r**': externref (has to be the value of a `uintptr_t` variable), or all kinds of GC reference types when GC feature is enabled
|
||||||
- '**\***': the parameter is a buffer address in WASM application
|
- '**\***': the parameter is a buffer address in WASM application
|
||||||
- '**~**': the parameter is the byte length of WASM buffer as referred by preceding argument "\*". It must follow after '*', otherwise, registration will fail
|
- '**~**': the parameter is the byte length of WASM buffer as referred by preceding argument "\*". It must follow after '*', otherwise, registration will fail
|
||||||
- '**$**': the parameter is a string in WASM application
|
- '**$**': the parameter is a string in WASM application
|
||||||
|
|
|
@ -28,7 +28,7 @@ emcc -msimd128 -O3 -o <wasm_file> <c/c++ source files>
|
||||||
- Reduce the footprint of JIT/AOT, the JIT/AOT code generated is smaller
|
- Reduce the footprint of JIT/AOT, the JIT/AOT code generated is smaller
|
||||||
- Reduce the compilation time of JIT/AOT
|
- Reduce the compilation time of JIT/AOT
|
||||||
|
|
||||||
Currently it is supported on linux x86-64, developer can use `--enable-segue=[<flags>]` for wamrc:
|
Currently it is only supported on linux x86-64, developer can use `--enable-segue=[<flags>]` for wamrc:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
wamrc --enable-segue -o aot_file wasm_file
|
wamrc --enable-segue -o aot_file wasm_file
|
||||||
|
@ -50,6 +50,8 @@ iwasm --enable-segue wasm_file (iwasm is built with llvm-jit enabled)
|
||||||
iwasm --enable-segue=[<flags>] wasm_file
|
iwasm --enable-segue=[<flags>] wasm_file
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> Note: Currently it is only supported on linux x86-64.
|
||||||
|
|
||||||
## 5. Use the AOT static PGO method
|
## 5. Use the AOT static PGO method
|
||||||
|
|
||||||
LLVM PGO (Profile-Guided Optimization) allows the compiler to better optimize code for how it actually runs. WAMR supports AOT static PGO, currently it is tested on Linux x86-64 and x86-32. The basic steps are:
|
LLVM PGO (Profile-Guided Optimization) allows the compiler to better optimize code for how it actually runs. WAMR supports AOT static PGO, currently it is tested on Linux x86-64 and x86-32. The basic steps are:
|
||||||
|
|
|
@ -176,7 +176,7 @@ print_help()
|
||||||
printf(" Enable the specified LLVM passes, using comma to separate\n");
|
printf(" Enable the specified LLVM passes, using comma to separate\n");
|
||||||
printf(" --use-prof-file=<file> Use profile file collected by LLVM PGO (Profile-Guided Optimization)\n");
|
printf(" --use-prof-file=<file> Use profile file collected by LLVM PGO (Profile-Guided Optimization)\n");
|
||||||
printf(" --enable-segue[=<flags>] Enable using segment register GS as the base address of linear memory,\n");
|
printf(" --enable-segue[=<flags>] Enable using segment register GS as the base address of linear memory,\n");
|
||||||
printf(" only available on linux/linux-sgx x86-64, which may improve performance,\n");
|
printf(" only available on linux x86-64, which may improve performance,\n");
|
||||||
printf(" flags can be: i32.load, i64.load, f32.load, f64.load, v128.load,\n");
|
printf(" flags can be: i32.load, i64.load, f32.load, f64.load, v128.load,\n");
|
||||||
printf(" i32.store, i64.store, f32.store, f64.store, v128.store\n");
|
printf(" i32.store, i64.store, f32.store, f64.store, v128.store\n");
|
||||||
printf(" Use comma to separate, e.g. --enable-segue=i32.load,i64.store\n");
|
printf(" Use comma to separate, e.g. --enable-segue=i32.load,i64.store\n");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user