|
|
|
|
@ -98,7 +98,7 @@ cmake -DWAMR_BUILD_PLATFORM=linux -DWAMR_BUILD_TARGET=ARM
|
|
|
|
|
|
|
|
|
|
#### **Disable boundary check with hardware trap**
|
|
|
|
|
- **WAMR_DISABLE_HW_BOUND_CHECK**=1/0, default to enable if not set and supported by platform
|
|
|
|
|
> Note: by default only platform [linux/darwin/android/windows/vxworks 64-bit](https://github.com/bytecodealliance/wasm-micro-runtime/blob/5fb5119239220b0803e7045ca49b0a29fe65e70e/core/shared/platform/linux/platform_internal.h#L81) will enable the boundary check with hardware trap feature, for 32-bit platforms it's automatically disabled even when the flag set to 0, and the wamrc tool will generate AOT code without boundary check instructions in all 64-bit targets except SGX to improve performance. The boundary check includes linear memory access boundary and native stack access boundary, if `WAMR_DISABLE_STACK_HW_BOUND_CHECK` below isn't set.
|
|
|
|
|
> Note: by default only platform [linux/darwin/android/windows/vxworks 64-bit](https://github.com/bytecodealliance/wasm-micro-runtime/blob/5fb5119239220b0803e7045ca49b0a29fe65e70e/core/shared/platform/linux/platform_internal.h#L81) will enable the boundary check with hardware trap feature, for 32-bit platforms it's automatically disabled even when the flag is set to 0, and the wamrc tool will generate AOT code without boundary check instructions in all 64-bit targets except SGX to improve performance. The boundary check includes linear memory access boundary and native stack access boundary, if `WAMR_DISABLE_STACK_HW_BOUND_CHECK` below isn't set.
|
|
|
|
|
|
|
|
|
|
#### **Disable native stack boundary check with hardware trap**
|
|
|
|
|
- **WAMR_DISABLE_STACK_HW_BOUND_CHECK**=1/0, default to enable if not set and supported by platform, same as `WAMR_DISABLE_HW_BOUND_CHECK`.
|
|
|
|
|
@ -198,6 +198,13 @@ Currently we only profile the memory consumption of module, module_instance and
|
|
|
|
|
- **WAMR_BUILD_STACK_GUARD_SIZE**=n, default to N/A if not set.
|
|
|
|
|
> Note: By default, the stack guard size is 1K (1024) or 24K (if uvwasi enabled).
|
|
|
|
|
|
|
|
|
|
### **Disable the writing linear memory base address to x86 GS segment register
|
|
|
|
|
- **WAMR_DISABLE_WRITE_GS_BASE**=1/0, default to enable if not set and supported by platform
|
|
|
|
|
> Note: by default only platform [linux x86-64](https://github.com/bytecodealliance/wasm-micro-runtime/blob/5fb5119239220b0803e7045ca49b0a29fe65e70e/core/shared/platform/linux/platform_internal.h#L67) will enable this feature, for 32-bit platforms it's automatically disabled even when the flag is set to 0. In linux x86-64, writing the linear memory base address to x86 GS segment register may be used to speedup the linear memory access for LLVM AOT/JIT, when `--enable-segue=[<flags>]` option is added for `wamrc` or `iwasm`.
|
|
|
|
|
|
|
|
|
|
### **Enable running PGO(Profile-Guided Optimization) instrumented AOT file**
|
|
|
|
|
- **WAMR_BUILD_STATIC_PGO**=1/0, default to disable if not set
|
|
|
|
|
|
|
|
|
|
**Combination of configurations:**
|
|
|
|
|
|
|
|
|
|
We can combine the configurations. For example, if we want to disable interpreter, enable AOT and WASI, we can run command:
|
|
|
|
|
|