mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 15:05:19 +00:00
db695fada4
Implement XIP (Execution In Place) feature for AOT mode to enable running the AOT code inside AOT file directly, without memory mapping the executable memory for AOT code and applying relocations for text section. Developer can use wamrc with "--enable-indirect-mode --disable-llvm-intrinsics" flags to generate the AOT file and run iwasm with "--xip" flag. Known issues: there might still be some relocations in the text section which access the ".rodata" like sections. And also enable ARC target support for both interpreter mode and AOT mode. Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
48 lines
1.1 KiB
Bash
Executable File
48 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Copyright (C) 2020 Intel Corporation. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
DEPS_DIR=${PWD}/../core/deps
|
|
|
|
cd ${DEPS_DIR}
|
|
if [ ! -d "llvm" ]; then
|
|
echo "Clone llvm to core/deps/ .."
|
|
git clone https://github.com/llvm/llvm-project.git llvm
|
|
fi
|
|
|
|
cd llvm
|
|
mkdir -p build
|
|
cd build
|
|
|
|
if [ ! -f bin/llvm-lto ]; then
|
|
|
|
CORE_NUM=$(nproc --all)
|
|
if [ -z "${CORE_NUM}" ]; then
|
|
CORE_NUM=1
|
|
fi
|
|
|
|
echo "Build llvm with" ${CORE_NUM} "cores"
|
|
|
|
cmake ../llvm \
|
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
|
-DCMAKE_BUILD_TYPE:STRING="Release" \
|
|
-DLLVM_TARGETS_TO_BUILD:STRING="X86" \
|
|
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD:STRING="ARC" \
|
|
-DLLVM_BUILD_LLVM_DYLIB:BOOL=OFF \
|
|
-DLLVM_OPTIMIZED_TABLEGEN:BOOL=ON \
|
|
-DLLVM_ENABLE_ZLIB:BOOL=OFF \
|
|
-DLLVM_INCLUDE_DOCS:BOOL=OFF \
|
|
-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF \
|
|
-DLLVM_INCLUDE_TESTS:BOOL=OFF \
|
|
-DLLVM_INCLUDE_BENCHMARKS:BOOL=OFF \
|
|
-DLLVM_APPEND_VC_REV:BOOL=OFF
|
|
make -j ${CORE_NUM}
|
|
|
|
else
|
|
echo "llvm has already been built"
|
|
fi
|
|
|
|
cd ${PWD}
|
|
|