mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-03-12 17:05:38 +00:00

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
|