mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-20 16:01:24 +00:00 
			
		
		
		
	 76be848ec3
			
		
	
	
		76be848ec3
		
			
		
	
	
	
	
		
			
			Segue is an optimization technology which uses x86 segment register to store the WebAssembly linear memory base address, so as to remove most of the cost of SFI (Software-based Fault Isolation) base addition and free up a general purpose register, by this way it may: - Improve the performance of JIT/AOT - Reduce the footprint of JIT/AOT, the JIT/AOT code generated is smaller - Reduce the compilation time of JIT/AOT This PR uses the x86-64 GS segment register to apply the optimization, currently it supports linux and linux-sgx platforms on x86-64 target. By default it is disabled, developer can use the option below to enable it for wamrc and iwasm(with LLVM JIT enabled): ```bash wamrc --enable-segue=[<flags>] -o output_file wasm_file iwasm --enable-segue=[<flags>] wasm_file [args...] ``` `flags` can be: i32.load, i64.load, f32.load, f64.load, v128.load, i32.store, i64.store, f32.store, f64.store, v128.store Use comma to separate them, e.g. `--enable-segue=i32.load,i64.store`, and `--enable-segue` means all flags are added. Acknowledgement: Many thanks to Intel Labs, UC San Diego and UT Austin teams for introducing this technology and the great support and guidance! Signed-off-by: Wenyong Huang <wenyong.huang@intel.com> Co-authored-by: Vahldiek-oberwagner, Anjo Lucas <anjo.lucas.vahldiek-oberwagner@intel.com>
		
			
				
	
	
		
			24 lines
		
	
	
		
			595 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			595 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Copyright (C) 2019 Intel Corporation.  All rights reserved.
 | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| 
 | |
| PLATFORM=$(uname -s | tr A-Z a-z)
 | |
| 
 | |
| IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
 | |
| WAMRC="../../../wamr-compiler/build/wamrc"
 | |
| 
 | |
| echo "Run coremark with native .."
 | |
| ./coremark.exe
 | |
| 
 | |
| echo "Run coremark with iwasm aot mode .."
 | |
| ${IWASM} coremark.aot
 | |
| 
 | |
| if [[ ${PLATFORM} == "linux" ]]; then
 | |
|     echo "Run coremark with iwasm aot-segue mode .."
 | |
|     ${IWASM} coremark_segue.aot
 | |
| fi
 | |
| 
 | |
| echo "Run coremark with iwasm interpreter mode .."
 | |
| ${IWASM} coremark.wasm
 |