mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 05:11:19 +00:00 
			
		
		
		
	 2f01cb7b7a
			
		
	
	
		2f01cb7b7a
		
			
		
	
	
	
	
		
			
			Enable static PGO for Linux SGX and update the related benchmarks test scripts and documents.
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| 
 | |
| # 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)
 | |
| 
 | |
| if [ "$1" = "--sgx" ] && [ "$PLATFORM" = "linux" ]; then
 | |
|     IWASM="../../../product-mini/platforms/${PLATFORM}-sgx/enclave-sample/iwasm"
 | |
|     WAMRC="../../../wamr-compiler/build/wamrc -sgx"
 | |
| else
 | |
|     IWASM="../../../product-mini/platforms/${PLATFORM}/build/iwasm"
 | |
|     WAMRC="../../../wamr-compiler/build/wamrc"
 | |
| fi
 | |
| 
 | |
| if [ ! -e "dhrystone.wasm" ]; then
 | |
|     echo "dhrystone.wasm doesn't exist, please run build.sh first"
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| echo ""
 | |
| echo "Compile dhrystone.wasm to dhrystone.aot .."
 | |
| ${WAMRC} -o dhrystone.aot dhrystone.wasm
 | |
| 
 | |
| echo ""
 | |
| echo "Compile dhrystone.wasm to dhrystone_pgo.aot .."
 | |
| ${WAMRC} --enable-llvm-pgo -o dhrystone_pgo.aot dhrystone.wasm
 | |
| 
 | |
| echo ""
 | |
| echo "Run dhrystone_pgo.aot to generate the raw profile data .."
 | |
| ${IWASM} --gen-prof-file=dhrystone.profraw dhrystone_pgo.aot
 | |
| 
 | |
| echo ""
 | |
| echo "Merge the raw profile data to dhrystone.profdata .."
 | |
| rm -f dhrystone.profdata && llvm-profdata merge -output=dhrystone.profdata dhrystone.profraw
 | |
| 
 | |
| echo ""
 | |
| echo "Compile dhrystone.wasm to dhrystone_opt.aot with the profile data .."
 | |
| ${WAMRC} --use-prof-file=dhrystone.profdata -o dhrystone_opt.aot dhrystone.wasm
 | |
| 
 | |
| echo ""
 | |
| echo "Run the dhrystone native"
 | |
| ./dhrystone_native
 | |
| 
 | |
| echo ""
 | |
| echo "Run the original aot file dhrystone.aot"
 | |
| ${IWASM} dhrystone.aot
 | |
| 
 | |
| echo ""
 | |
| echo "Run the PGO optimized aot file dhrystone_opt.aot"
 | |
| ${IWASM} dhrystone_opt.aot
 | |
| 
 | |
| # Show the profile data:
 | |
| # llvm-profdata show --all-functions --detailed-summary --binary-ids --counts \
 | |
| # --hot-func-list --memop-sizes --show-prof-sym-list dhrystone.profraw
 |