wasm-micro-runtime/core/iwasm/common
Wenyong Huang 8d88471c46
Implement AOT static PGO (#2243)
LLVM PGO (Profile-Guided Optimization) allows the compiler to better optimize code
for how it actually runs. This PR implements the AOT static PGO, and is tested on
Linux x86-64 and x86-32. The basic steps are:

1. Use `wamrc --enable-llvm-pgo -o <aot_file_of_pgo> <wasm_file>`
   to generate an instrumented aot file.
2. Compile iwasm with `cmake -DWAMR_BUILD_STATIC_PGO=1` and run
      `iwasm --gen-prof-file=<raw_profile_file> <aot_file_of_pgo>`
    to generate the raw profile file.
3. Run `llvm-profdata merge -output=<profile_file> <raw_profile_file>`
    to merge the raw profile file into the profile file.
4. Run `wamrc --use-prof-file=<profile_file> -o <aot_file> <wasm_file>`
    to generate the optimized aot file.
5. Run the optimized aot_file: `iwasm <aot_file>`.

The test scripts are also added for each benchmark, run `test_pgo.sh` under
each benchmark's folder to test the AOT static pgo.
2023-06-05 09:17:39 +08:00
..
arch Add support for universal binaries on OSX (#2060) 2023-03-30 09:53:07 +08:00
iwasm_common.cmake Add support for universal binaries on OSX (#2060) 2023-03-30 09:53:07 +08:00
SConscript Add ia32 support and fix compiling issue for RT-Thread (#730) 2021-09-07 10:20:14 +08:00
wasm_application.c Use pre-created exec_env for instantiation and module_malloc/free (#2047) 2023-03-23 19:19:47 +08:00
wasm_c_api_internal.h wasm-c-api: Fix init/destroy thread env multiple times issue (#1766) 2022-12-05 11:16:14 +08:00
wasm_c_api.c Fix three multi-threading and wasm-c-api-imports issues (#2173) 2023-05-05 10:01:58 +08:00
wasm_exec_env.c Fix multi-threading issues (#2013) 2023-03-08 10:57:22 +08:00
wasm_exec_env.h Merge branch main into dev/wasi_threads 2023-02-17 08:46:12 +08:00
wasm_memory.c Implement the segue optimization for LLVM AOT/JIT (#2230) 2023-05-26 10:13:33 +08:00
wasm_memory.h Add/reorganize locks for thread synchronization (#1995) 2023-03-04 08:15:26 +08:00
wasm_native.c Merge branch main into dev/wasi_threads 2023-02-17 08:46:12 +08:00
wasm_native.h Add wasm_runtime_unregister_natives (#1647) 2022-10-28 11:03:39 +08:00
wasm_runtime_common.c Implement AOT static PGO (#2243) 2023-06-05 09:17:39 +08:00
wasm_runtime_common.h Implement the segue optimization for LLVM AOT/JIT (#2230) 2023-05-26 10:13:33 +08:00
wasm_shared_memory.c Fix compile warnings on windows platform (#2208) 2023-05-15 13:48:48 +08:00
wasm_shared_memory.h Fix atomic.wait, get wasi_ctx exit code and thread mgr issues (#2024) 2023-03-15 07:47:36 +08:00