Skip to content

Commit 348f92b

Browse files
authored
Merge pull request #294 from cpc/llvm-22
[LLVM 22] Support for the RISC-V-patched LLVM
2 parents f4b9893 + 4706705 commit 348f92b

File tree

3 files changed

+78
-3
lines changed

3 files changed

+78
-3
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-24.04
1515

1616
env:
17-
LLVM_VERSION: 21
17+
LLVM_VERSION: 22
1818

1919
steps:
2020
- name: Checkout code

openasip/configure.ac

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,9 +561,9 @@ case "$LLVM_VERSION" in
561561
22.*)
562562
AC_DEFINE([LLVM_22], [], "Using LLVM 22 (git)")
563563
LLVM_VERSION=22
564-
LLVM_LIBRARYVERSION=22git
564+
LLVM_LIBRARYVERSION=22-rc1
565565
LLVM_SHARED_LIB_FILE=$LLVM_LIBDIR/libLLVM-$LLVM_LIBRARYVERSION$LIBRARY_SUFFIX
566-
LLVM_SHARED_LIB=-lLLVM-22git
566+
LLVM_SHARED_LIB=-lLLVM-${LLVM_LIBRARYVERSION}
567567
LLVM_LDFLAGS="$($llvmConf --ldflags) $LLVM_SHARED_LIB"
568568
# The upstream LLVM doesn't (yet) have the RISC-V customization support.
569569
ENABLE_RISCV=false
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
#!/bin/bash
2+
3+
TARGET_DIR=${1:?"Missing installation directory argument"}
4+
ON_PATCH_FAIL="exit 1"
5+
6+
if test "x$2" == "x--debug-build";
7+
then
8+
LLVM_BUILD_MODE="-DCMAKE_BUILD_TYPE=Debug -DLLVM_ENABLE_ASSERTIONS=ON"
9+
export CFLAGS=-O0
10+
export CPPFLAGS=-O0
11+
export CXXFLAGS=-O0
12+
build_dir=llvm-build-Debug
13+
else
14+
export CFLAGS=-O3
15+
export CPPFLAGS=-O3
16+
export CXXFLAGS=-O3
17+
LLVM_BUILD_MODE="-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON"
18+
build_dir=llvm-build-Release
19+
fi
20+
21+
echo "### LLVM build mode: "$LLVM_BUILD_MODE
22+
23+
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
24+
patch_dir=$script_dir/../patches
25+
llvm_co_dir=release_21
26+
llvm_branch=openasip-llvm-22-patched
27+
28+
mkdir -p $build_dir
29+
cd $build_dir
30+
31+
function eexit {
32+
echo "$1"
33+
exit 1
34+
}
35+
36+
function fetch_llvm {
37+
REV_TO_FETCH=$1
38+
if [ -n "$REV_TO_FETCH" ]; then
39+
REV_TO_FETCH="-r$REV_TO_FETCH"
40+
fi
41+
42+
if ! test -d $llvm_co_dir;
43+
then
44+
git clone --single-branch --depth=1 --branch $llvm_branch https://github.com/cpc/llvmtce.git $llvm_co_dir\
45+
|| eexit "Git clone $REV_TOFETCH from llvm failed"
46+
else
47+
cd $llvm_co_dir;
48+
git checkout $llvm_branch || eexit "checking out git branch failed"
49+
git fetch
50+
git reset --hard $llvm_branch || eexit "resetting --hard HEAD failed"
51+
cd ..;
52+
fi
53+
}
54+
55+
fetch_llvm
56+
57+
cd $llvm_co_dir
58+
mkdir -p build
59+
cd build
60+
61+
# -DLLVM_ENABLE_Z3_SOLVER=OFF due to the issue described in
62+
# https://reviews.llvm.org/D54978#1390652
63+
# You might also need to delete libz3-dev.
64+
# This appears at least with Ubuntu 18.04.
65+
cmake ../llvm/ -DLLVM_ENABLE_PROJECTS="clang;lld" \
66+
-G "Unix Makefiles" \
67+
$LLVM_BUILD_MODE\
68+
-DCMAKE_INSTALL_PREFIX=$TARGET_DIR \
69+
-DLLVM_TARGETS_TO_BUILD="X86" \
70+
-DLLVM_LINK_LLVM_DYLIB=TRUE \
71+
-DLLVM_ENABLE_RTTI=TRUE \
72+
-DLLVM_ENABLE_Z3_SOLVER=OFF \
73+
|| eexit "Configuring LLVM/Clang failed."
74+
make -j$(nproc) || eexit "Building LLVM/Clang failed."
75+
make install || eexit "Installation of LLVM/Clang failed."

0 commit comments

Comments
 (0)