Skip to content

Commit 87c50e8

Browse files
frabertNinja3047
andauthored
Migrate to LLVM15 (#308)
* Migrate to LLVM15 * Update CI * Update build script * Remove vcpkg helper (#314) * remove vcpkg_helper.cmake * fix build instruction in README * fix build script perms * fix diff ci build * fix typo, should be VCPKG_TARGET_TRIPLET * update anghabench CI scripts for llvm 15 * miss comma Co-authored-by: William Tan <1284324+Ninja3047@users.noreply.github.com>
1 parent cca037e commit 87c50e8

File tree

15 files changed

+254
-53
lines changed

15 files changed

+254
-53
lines changed

.github/workflows/anghabench-after-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
llvm: [ '14' ]
15+
llvm: [ '15' ]
1616
run_size: [ '1k' ]
1717

1818
name: Run AnghaBench CI (AMD64)

.github/workflows/anghabench-cron-jobs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
strategy:
1111
fail-fast: false
1212
matrix:
13-
llvm: [ '14' ]
13+
llvm: [ '15' ]
1414
run_size: [ '1k' ]
1515

1616
name: Run AnghaBench CI (AMD64)

.github/workflows/ci.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
image:
2525
- { name: 'ubuntu', tag: '20.04' }
2626
llvm: [
27-
'14'
27+
'15'
2828
]
2929

3030
name: Rellic CI
@@ -48,8 +48,8 @@ jobs:
4848
run: |
4949
# TODO some of these should probably live in the Docker build image
5050
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
51-
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list
52-
echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main" >> /etc/apt/sources.list
51+
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main" >> /etc/apt/sources.list
52+
echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-${{ matrix.llvm }} main" >> /etc/apt/sources.list
5353
apt-get update
5454
apt-get install -y ninja-build pixz xz-utils make rpm python3.8
5555
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 100
@@ -129,7 +129,7 @@ jobs:
129129
'macos-11'
130130
]
131131
llvm: [
132-
'14'
132+
'15'
133133
]
134134

135135
runs-on: ${{ matrix.os }}
@@ -246,7 +246,7 @@ jobs:
246246
runs-on: ubuntu-latest
247247
strategy:
248248
matrix:
249-
llvm: ["14"]
249+
llvm: ["15"]
250250
ubuntu: ["20.04"]
251251
steps:
252252
- uses: actions/checkout@v2

.github/workflows/diff_tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
matrix:
1313
image:
1414
- { name: 'ubuntu', tag: '20.04', codename: 'focal' }
15-
llvm: [ '14' ]
15+
llvm: [ '15' ]
1616
common_base: [ 'https://github.com/lifting-bits/cxx-common/releases/latest/download' ]
1717

1818
env:
@@ -62,21 +62,21 @@ jobs:
6262
- name: Build old rellic
6363
shell: bash
6464
run: |
65-
cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake
65+
cmake -G Ninja -S old -B rellic-build-old -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET="x64-linux-rel"
6666
cmake --build rellic-build-old
6767
6868
- name: Build new rellic
6969
shell: bash
7070
run: |
71-
cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake
71+
cmake -G Ninja -S . -B rellic-build -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/vcpkg_${{ matrix.image.name }}-${{ matrix.image.tag }}_llvm-${{ matrix.llvm }}_amd64/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET="x64-linux-rel"
7272
cmake --build rellic-build
7373
7474
- name: Print job summary
7575
shell: bash
7676
run: |
7777
echo "# Test diffs" >> $GITHUB_STEP_SUMMARY
7878
cd $GITHUB_WORKSPACE/tests/tools/decomp
79-
env CLANG=clang-14 \
79+
env CLANG=clang-${{ matrix.llvm }} \
8080
OLD_RELLIC=$GITHUB_WORKSPACE/rellic-build-old/tools/rellic-decomp \
8181
NEW_RELLIC=$GITHUB_WORKSPACE/rellic-build/tools/rellic-decomp \
8282
make -s -j1 -f diff_outputs.mk >> $GITHUB_STEP_SUMMARY
@@ -86,7 +86,7 @@ jobs:
8686
id: md
8787
run: |
8888
cd $GITHUB_WORKSPACE/tests/tools/decomp
89-
env CLANG=clang-14 \
89+
env CLANG=clang-${{ matrix.llvm }} \
9090
OLD_RELLIC=$GITHUB_WORKSPACE/rellic-build-old/tools/rellic-decomp \
9191
NEW_RELLIC=$GITHUB_WORKSPACE/rellic-build/tools/rellic-decomp \
9292
make -s -j1 -f diff_outputs.mk >> $GITHUB_WORKSPACE/test-diff.md

lib/AST/ASTBuilder.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#include <clang/AST/ASTContext.h>
1212
#include <clang/AST/Decl.h>
13+
#include <clang/Basic/LangOptions.h>
1314
#include <clang/Basic/SourceLocation.h>
1415
#include <clang/Basic/TargetInfo.h>
1516
#include <clang/Sema/Lookup.h>
@@ -33,11 +34,13 @@ enum CExprPrecedence : unsigned {
3334
namespace {
3435

3536
static unsigned GetOperatorPrecedence(clang::UnaryOperatorKind opc) {
36-
return static_cast<unsigned>(CExprPrecedence::UnaryOp) + static_cast<unsigned>(opc);
37+
return static_cast<unsigned>(CExprPrecedence::UnaryOp) +
38+
static_cast<unsigned>(opc);
3739
}
3840

3941
static unsigned GetOperatorPrecedence(clang::BinaryOperatorKind opc) {
40-
return static_cast<unsigned>(CExprPrecedence::BinaryOp) + static_cast<unsigned>(opc);
42+
return static_cast<unsigned>(CExprPrecedence::BinaryOp) +
43+
static_cast<unsigned>(opc);
4144
}
4245

4346
static unsigned GetOperatorPrecedence(clang::Expr *op) {
@@ -186,7 +189,7 @@ clang::CharacterLiteral *ASTBuilder::CreateCharLit(unsigned val) {
186189
clang::StringLiteral *ASTBuilder::CreateStrLit(std::string val) {
187190
auto type{ctx.getStringLiteralArrayType(ctx.CharTy, val.size())};
188191
return clang::StringLiteral::Create(
189-
ctx, val, clang::StringLiteral::StringKind::Ascii,
192+
ctx, val, clang::StringLiteral::StringKind::Ordinary,
190193
/*Pascal=*/false, type, clang::SourceLocation());
191194
}
192195

@@ -459,7 +462,8 @@ clang::CompoundStmt *ASTBuilder::CreateCompoundStmt(
459462
// sema.ActOnFinishOfCompoundStmt();
460463
// CHECK(sr.isUsable());
461464
// return sr.getAs<clang::CompoundStmt>();
462-
return clang::CompoundStmt::Create(ctx, stmts, clang::SourceLocation(),
465+
return clang::CompoundStmt::Create(ctx, stmts, clang::FPOptionsOverride{},
466+
clang::SourceLocation(),
463467
clang::SourceLocation());
464468
}
465469

lib/AST/DebugInfoCollector.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#include <gflags/gflags.h>
1313
#include <glog/logging.h>
14+
#include <llvm/BinaryFormat/Dwarf.h>
1415
#include <llvm/IR/DebugInfoMetadata.h>
1516
#include <llvm/IR/DerivedTypes.h>
1617
#include <llvm/Support/Casting.h>

lib/AST/StructGenerator.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include <clang/Basic/TargetInfo.h>
1616
#include <gflags/gflags.h>
1717
#include <glog/logging.h>
18+
#include <llvm/BinaryFormat/Dwarf.h>
1819

1920
#include <string>
2021
#include <unordered_set>

lib/BC/Util.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
#include <llvm/IR/BasicBlock.h>
1515
#include <llvm/IR/Function.h>
1616
#include <llvm/IR/IRBuilder.h>
17+
#include <llvm/IR/InstIterator.h>
1718
#include <llvm/IR/Instructions.h>
1819
#include <llvm/IR/IntrinsicInst.h>
1920
#include <llvm/IR/LLVMContext.h>

scripts/build.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ DOWNLOAD_DIR="$( cd "$( dirname "${SRC_DIR}" )" && pwd )/lifting-bits-downloads"
1818
CURR_DIR=$( pwd )
1919
BUILD_DIR="${CURR_DIR}/rellic-build"
2020
INSTALL_DIR=/usr/local
21-
LLVM_VERSION=llvm-14
22-
CXX_COMMON_VERSION=v0.2.16
21+
LLVM_VERSION=llvm-15
22+
CXX_COMMON_VERSION=v0.2.19
2323
OS_VERSION=unknown
2424
ARCH_VERSION=unknown
2525
BUILD_FLAGS=
@@ -334,6 +334,10 @@ function GetLLVMVersion
334334
LLVM_VERSION=llvm-14
335335
return 0
336336
;;
337+
15)
338+
LLVM_VERSION=llvm-15
339+
return 0
340+
;;
337341
*)
338342
# unknown option
339343
echo "[x] Unknown or unsupported LLVM version ${1}. You may be able to manually build it with cxx-common."

tools/decomp/Decomp.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,6 @@ int main(int argc, char* argv[]) {
111111
}
112112

113113
std::unique_ptr<llvm::LLVMContext> llvm_ctx(new llvm::LLVMContext);
114-
llvm_ctx->enableOpaquePointers();
115-
116114
auto module{std::unique_ptr<llvm::Module>(
117115
rellic::LoadModuleFromFile(llvm_ctx.get(), FLAGS_input))};
118116

0 commit comments

Comments
 (0)