Update frozen toolchain
* tools/java e505a6d3bb...5b0e274f12 (1):
> Merge 'build.xml: install and use java-11 when building' from Kefu Chai
Updates to clang 18.1.8 + LLVM patch to match Fedora 40.
New optimized clang build generated and stored in
https://devpkg.scylladb.com/clang/clang-18.1.8-x86_64.tar.gz
https://devpkg.scylladb.com/clang/clang-18.1.8-aarch64.tar.gz
Due to the loss of the jmx submodule, we no longer install java-11-openjdk.
We add it in install-dependencies.sh here to compensate, pending a better
solution.
tools/java submodule updated to remove build failure where Java 8
was selected instead of Java 11.
The scylla_gdb test suite was disabled due to a regression in gdb 15,
which is brought in by the toolchain update [1].
[1] https://github.com/scylladb/scylladb/issues/20741.
This commit is contained in:
@@ -111,6 +111,7 @@ fedora_packages=(
|
||||
wabt
|
||||
binaryen
|
||||
lcov
|
||||
java-11-openjdk-devel # for tools/java
|
||||
)
|
||||
|
||||
# lld is not available on s390x, see
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
type: Run
|
||||
disable: # https://github.com/scylladb/scylladb/issues/20741
|
||||
- run
|
||||
run_in_release:
|
||||
- run
|
||||
|
||||
Submodule tools/java updated: e505a6d3bb...5b0e274f12
@@ -0,0 +1,90 @@
|
||||
From 46a4132e167aa44d8ec7776262ce2a0e6d47de59 Mon Sep 17 00:00:00 2001
|
||||
From: Avi Kivity <avi@scylladb.com>
|
||||
Date: Mon, 26 Aug 2024 17:56:45 +0300
|
||||
Subject: [PATCH] [Instrumentation] Fix EdgeCounts vector size in
|
||||
SetBranchWeights (#99064)
|
||||
|
||||
---
|
||||
---
|
||||
.../Instrumentation/PGOInstrumentation.cpp | 14 +++++--
|
||||
.../Coroutines/coro-pgo-setbranchweights.ll | 42 +++++++++++++++++++
|
||||
2 files changed, 52 insertions(+), 4 deletions(-)
|
||||
create mode 100644 test/Transforms/Coroutines/coro-pgo-setbranchweights.ll
|
||||
|
||||
diff --git a/lib/Transforms/Instrumentation/PGOInstrumentation.cpp b/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
|
||||
index c20fc942e..41025b296 100644
|
||||
--- a/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
|
||||
+++ b/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
|
||||
@@ -1571,11 +1571,17 @@ void PGOUseFunc::setBranchWeights() {
|
||||
|
||||
// We have a non-zero Branch BB.
|
||||
const PGOUseBBInfo &BBCountInfo = getBBInfo(&BB);
|
||||
- unsigned Size = BBCountInfo.OutEdges.size();
|
||||
- SmallVector<uint64_t, 2> EdgeCounts(Size, 0);
|
||||
+
|
||||
+ // SuccessorCount can be greater than OutEdgesCount, because
|
||||
+ // removed edges don't appear in OutEdges.
|
||||
+ unsigned OutEdgesCount = BBCountInfo.OutEdges.size();
|
||||
+ unsigned SuccessorCount = BB.getTerminator()->getNumSuccessors();
|
||||
+ assert(OutEdgesCount <= SuccessorCount);
|
||||
+
|
||||
+ SmallVector<uint64_t, 2> EdgeCounts(SuccessorCount, 0);
|
||||
uint64_t MaxCount = 0;
|
||||
- for (unsigned s = 0; s < Size; s++) {
|
||||
- const PGOUseEdge *E = BBCountInfo.OutEdges[s];
|
||||
+ for (unsigned It = 0; It < OutEdgesCount; It++) {
|
||||
+ const PGOUseEdge *E = BBCountInfo.OutEdges[It];
|
||||
const BasicBlock *SrcBB = E->SrcBB;
|
||||
const BasicBlock *DestBB = E->DestBB;
|
||||
if (DestBB == nullptr)
|
||||
diff --git a/test/Transforms/Coroutines/coro-pgo-setbranchweights.ll b/test/Transforms/Coroutines/coro-pgo-setbranchweights.ll
|
||||
new file mode 100644
|
||||
index 000000000..4f5f93660
|
||||
--- /dev/null
|
||||
+++ b/test/Transforms/Coroutines/coro-pgo-setbranchweights.ll
|
||||
@@ -0,0 +1,42 @@
|
||||
+; RUN: rm -rf %t && split-file %s %t
|
||||
+
|
||||
+; RUN: llvm-profdata merge %t/a.proftext -o %t/a.profdata
|
||||
+; RUN: opt < %t/a.ll --passes=pgo-instr-use -pgo-test-profile-file=%t/a.profdata
|
||||
+
|
||||
+;--- a.ll
|
||||
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
|
||||
+target triple = "x86_64-redhat-linux-gnu"
|
||||
+
|
||||
+define void @_bar() presplitcoroutine personality ptr null {
|
||||
+ %1 = call token @llvm.coro.save(ptr null)
|
||||
+ %2 = call i8 @llvm.coro.suspend(token none, i1 false)
|
||||
+ switch i8 %2, label %5 [
|
||||
+ i8 0, label %3
|
||||
+ i8 1, label %4
|
||||
+ ]
|
||||
+
|
||||
+3: ; preds = %0
|
||||
+ ret void
|
||||
+
|
||||
+4: ; preds = %0
|
||||
+ ret void
|
||||
+
|
||||
+5: ; preds = %0
|
||||
+ ret void
|
||||
+}
|
||||
+
|
||||
+declare token @llvm.coro.save(ptr)
|
||||
+
|
||||
+declare i8 @llvm.coro.suspend(token, i1)
|
||||
+
|
||||
+;--- a.proftext
|
||||
+# IR level Instrumentation Flag
|
||||
+:ir
|
||||
+
|
||||
+_bar
|
||||
+# Func Hash:
|
||||
+1063705160175073211
|
||||
+# Num Counters:
|
||||
+2
|
||||
+1
|
||||
+0
|
||||
--
|
||||
2.46.0
|
||||
|
||||
@@ -1 +1 @@
|
||||
docker.io/scylladb/scylla-toolchain:fedora-40-20240710
|
||||
docker.io/scylladb/scylla-toolchain:fedora-40-20240920
|
||||
|
||||
@@ -57,7 +57,7 @@ SCYLLA_BUILD_DIR_FULLPATH="${SCYLLA_DIR}"/"${SCYLLA_BUILD_DIR}"
|
||||
SCYLLA_NINJA_FILE_FULLPATH="${SCYLLA_DIR}"/"${SCYLLA_NINJA_FILE}"
|
||||
|
||||
# Which LLVM release to build in order to compile Scylla
|
||||
LLVM_CLANG_TAG=18.1.6
|
||||
LLVM_CLANG_TAG=18.1.8
|
||||
CLANG_SUFFIX=18
|
||||
|
||||
CLANG_ARCHIVE=$(cd "${SCYLLA_DIR}" && realpath -m "${CLANG_ARCHIVE}")
|
||||
@@ -122,8 +122,12 @@ if [[ "${CLANG_BUILD}" = "INSTALL" ]]; then
|
||||
rm -rf "${CLANG_BUILD_DIR}"
|
||||
git clone https://github.com/llvm/llvm-project --branch llvmorg-"${LLVM_CLANG_TAG}" --depth=1 "${CLANG_BUILD_DIR}"
|
||||
|
||||
patch="$PWD/tools/toolchain/0001-Instrumentation-Fix-EdgeCounts-vector-size-in-SetBra.patch"
|
||||
|
||||
echo "[clang-stage1] build the compiler for collecting PGO profile"
|
||||
cd "${CLANG_BUILD_DIR}"
|
||||
git apply "$patch"
|
||||
|
||||
rm -rf build
|
||||
cmake -B build -S llvm "${CLANG_OPTS[@]}" -DLLVM_BUILD_INSTRUMENTED=IR
|
||||
DISTRIBUTION_COMPONENTS=$(cd build && _get_distribution_components | paste -sd\;)
|
||||
|
||||
Reference in New Issue
Block a user