Skip to content

Commit 2c89c50

Browse files
committed
Merge remote-tracking branch 'origin/main' into runtimes-clang-resource-dir-triple
2 parents eb24598 + 62d44fb commit 2c89c50

File tree

18,327 files changed

+1275439
-469569
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

18,327 files changed

+1275439
-469569
lines changed

.ci/generate-buildkite-pipeline-premerge

Lines changed: 48 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ echo "Directories modified:" >&2
5353
echo "$modified_dirs" >&2
5454

5555
function compute-projects-to-test() {
56+
isForWindows=$1
57+
shift
5658
projects=${@}
5759
for project in ${projects}; do
5860
echo "${project}"
@@ -63,20 +65,44 @@ function compute-projects-to-test() {
6365
done
6466
;;
6567
llvm)
66-
for p in bolt clang clang-tools-extra flang lld lldb mlir polly; do
68+
for p in bolt clang clang-tools-extra lld lldb mlir polly; do
6769
echo $p
6870
done
71+
# Flang is not stable in Windows CI at the moment
72+
if [[ $isForWindows == 0 ]]; then
73+
echo flang
74+
fi
6975
;;
7076
clang)
71-
for p in clang-tools-extra compiler-rt flang lldb cross-project-tests; do
77+
# lldb is temporarily removed to alleviate Linux pre-commit CI waiting times
78+
for p in clang-tools-extra compiler-rt cross-project-tests; do
7279
echo $p
7380
done
7481
;;
7582
clang-tools-extra)
7683
echo libc
7784
;;
7885
mlir)
79-
echo flang
86+
# Flang is not stable in Windows CI at the moment
87+
if [[ $isForWindows == 0 ]]; then
88+
echo flang
89+
fi
90+
;;
91+
*)
92+
# Nothing to do
93+
;;
94+
esac
95+
done
96+
}
97+
98+
function compute-runtimes-to-test() {
99+
projects=${@}
100+
for project in ${projects}; do
101+
case ${project} in
102+
clang)
103+
for p in libcxx libcxxabi libunwind; do
104+
echo $p
105+
done
80106
;;
81107
*)
82108
# Nothing to do
@@ -91,7 +117,7 @@ function add-dependencies() {
91117
echo "${project}"
92118
case ${project} in
93119
bolt)
94-
for p in lld llvm; do
120+
for p in clang lld llvm; do
95121
echo $p
96122
done
97123
;;
@@ -128,7 +154,6 @@ function exclude-linux() {
128154
for project in ${projects}; do
129155
case ${project} in
130156
cross-project-tests) ;; # tests failing
131-
lldb) ;; # tests failing
132157
openmp) ;; # https://github.com/google/llvm-premerge-checks/issues/410
133158
*)
134159
echo "${project}"
@@ -145,7 +170,7 @@ function exclude-windows() {
145170
compiler-rt) ;; # tests taking too long
146171
openmp) ;; # TODO: having trouble with the Perl installation
147172
libc) ;; # no Windows support
148-
lldb) ;; # tests failing
173+
lldb) ;; # custom environment requirements (https://github.com/llvm/llvm-project/pull/94208#issuecomment-2146256857)
149174
bolt) ;; # tests are not supported yet
150175
*)
151176
echo "${project}"
@@ -178,8 +203,17 @@ function check-targets() {
178203
cross-project-tests)
179204
echo "check-cross-project"
180205
;;
206+
libcxx)
207+
echo "check-cxx"
208+
;;
209+
libcxxabi)
210+
echo "check-cxxabi"
211+
;;
212+
libunwind)
213+
echo "check-unwind"
214+
;;
181215
lldb)
182-
echo "check-all" # TODO: check-lldb may not include all the LLDB tests?
216+
echo "check-lldb"
183217
;;
184218
pstl)
185219
echo "check-all"
@@ -207,17 +241,6 @@ if echo "$modified_dirs" | grep -q -E "^(libcxx|libcxxabi|libunwind|runtimes|cma
207241
EOF
208242
fi
209243

210-
# If clang changed.
211-
if echo "$modified_dirs" | grep -q -E "^(clang)$"; then
212-
cat <<EOF
213-
- trigger: "clang-ci"
214-
build:
215-
message: "${buildMessage}"
216-
commit: "${BUILDKITE_COMMIT}"
217-
branch: "${BUILDKITE_BRANCH}"
218-
EOF
219-
fi
220-
221244
# Generic pipeline for projects that have not defined custom steps.
222245
#
223246
# Individual projects should instead define the pre-commit CI tests that suits their
@@ -227,11 +250,15 @@ fi
227250
all_projects="bolt clang clang-tools-extra compiler-rt cross-project-tests flang libc libclc lld lldb llvm mlir openmp polly pstl"
228251
modified_projects="$(keep-modified-projects ${all_projects})"
229252

230-
linux_projects_to_test=$(exclude-linux $(compute-projects-to-test ${modified_projects}))
253+
linux_projects_to_test=$(exclude-linux $(compute-projects-to-test 0 ${modified_projects}))
231254
linux_check_targets=$(check-targets ${linux_projects_to_test} | sort | uniq)
232255
linux_projects=$(add-dependencies ${linux_projects_to_test} | sort | uniq)
233256

234-
windows_projects_to_test=$(exclude-windows $(compute-projects-to-test ${modified_projects}))
257+
linux_runtimes_to_test=$(compute-runtimes-to-test ${linux_projects_to_test})
258+
linux_runtime_check_targets=$(check-targets ${linux_runtimes_to_test} | sort | uniq)
259+
linux_runtimes=$(echo ${linux_runtimes_to_test} | sort | uniq)
260+
261+
windows_projects_to_test=$(exclude-windows $(compute-projects-to-test 1 ${modified_projects}))
235262
windows_check_targets=$(check-targets ${windows_projects_to_test} | sort | uniq)
236263
windows_projects=$(add-dependencies ${windows_projects_to_test} | sort | uniq)
237264

@@ -255,7 +282,7 @@ if [[ "${linux_projects}" != "" ]]; then
255282
CC: 'clang'
256283
CXX: 'clang++'
257284
commands:
258-
- './.ci/monolithic-linux.sh "$(echo ${linux_projects} | tr ' ' ';')" "$(echo ${linux_check_targets})"'
285+
- './.ci/monolithic-linux.sh "$(echo ${linux_projects} | tr ' ' ';')" "$(echo ${linux_check_targets})" "$(echo ${linux_runtimes} | tr ' ' ';')" "$(echo ${linux_runtime_check_targets})"'
259286
EOF
260287
fi
261288

.ci/monolithic-linux.sh

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ set -o pipefail
1818

1919
MONOREPO_ROOT="${MONOREPO_ROOT:="$(git rev-parse --show-toplevel)"}"
2020
BUILD_DIR="${BUILD_DIR:=${MONOREPO_ROOT}/build}"
21+
INSTALL_DIR="${BUILD_DIR}/install"
2122
rm -rf "${BUILD_DIR}"
2223

2324
ccache --zero-stats
@@ -38,6 +39,7 @@ targets="${2}"
3839

3940
echo "--- cmake"
4041
pip install -q -r "${MONOREPO_ROOT}"/mlir/python/requirements.txt
42+
pip install -q -r "${MONOREPO_ROOT}"/lldb/test/requirements.txt
4143
cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
4244
-D LLVM_ENABLE_PROJECTS="${projects}" \
4345
-G Ninja \
@@ -48,10 +50,80 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
4850
-D LLVM_LIT_ARGS="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --timeout=1200 --time-tests" \
4951
-D LLVM_ENABLE_LLD=ON \
5052
-D CMAKE_CXX_FLAGS=-gmlt \
51-
-D BOLT_CLANG_EXE=/usr/bin/clang \
5253
-D LLVM_CCACHE_BUILD=ON \
53-
-D MLIR_ENABLE_BINDINGS_PYTHON=ON
54+
-D MLIR_ENABLE_BINDINGS_PYTHON=ON \
55+
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
5456

5557
echo "--- ninja"
5658
# Targets are not escaped as they are passed as separate arguments.
5759
ninja -C "${BUILD_DIR}" -k 0 ${targets}
60+
61+
runtimes="${3}"
62+
runtime_targets="${4}"
63+
64+
# Compiling runtimes with just-built Clang and running their tests
65+
# as an additional testing for Clang.
66+
if [[ "${runtimes}" != "" ]]; then
67+
if [[ "${runtime_targets}" == "" ]]; then
68+
echo "Runtimes to build are specified, but targets are not."
69+
exit 1
70+
fi
71+
72+
echo "--- ninja install-clang"
73+
74+
ninja -C ${BUILD_DIR} install-clang install-clang-resource-headers
75+
76+
RUNTIMES_BUILD_DIR="${MONOREPO_ROOT}/build-runtimes"
77+
INSTALL_DIR="${BUILD_DIR}/install"
78+
mkdir -p ${RUNTIMES_BUILD_DIR}
79+
80+
echo "--- cmake runtimes C++03"
81+
82+
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
83+
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
84+
-D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \
85+
-D LLVM_ENABLE_RUNTIMES="${runtimes}" \
86+
-D LIBCXX_CXX_ABI=libcxxabi \
87+
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
88+
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
89+
-D LIBCXX_TEST_PARAMS="std=c++03" \
90+
-D LIBCXXABI_TEST_PARAMS="std=c++03"
91+
92+
echo "--- ninja runtimes C++03"
93+
94+
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
95+
96+
echo "--- cmake runtimes C++26"
97+
98+
rm -rf "${RUNTIMES_BUILD_DIR}"
99+
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
100+
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
101+
-D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \
102+
-D LLVM_ENABLE_RUNTIMES="${runtimes}" \
103+
-D LIBCXX_CXX_ABI=libcxxabi \
104+
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
105+
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
106+
-D LIBCXX_TEST_PARAMS="std=c++26" \
107+
-D LIBCXXABI_TEST_PARAMS="std=c++26"
108+
109+
echo "--- ninja runtimes C++26"
110+
111+
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
112+
113+
echo "--- cmake runtimes clang modules"
114+
115+
rm -rf "${RUNTIMES_BUILD_DIR}"
116+
cmake -S "${MONOREPO_ROOT}/runtimes" -B "${RUNTIMES_BUILD_DIR}" -GNinja \
117+
-D CMAKE_C_COMPILER="${INSTALL_DIR}/bin/clang" \
118+
-D CMAKE_CXX_COMPILER="${INSTALL_DIR}/bin/clang++" \
119+
-D LLVM_ENABLE_RUNTIMES="${runtimes}" \
120+
-D LIBCXX_CXX_ABI=libcxxabi \
121+
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
122+
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
123+
-D LIBCXX_TEST_PARAMS="enable_modules=clang" \
124+
-D LIBCXXABI_TEST_PARAMS="enable_modules=clang"
125+
126+
echo "--- ninja runtimes clang modules"
127+
128+
ninja -vC "${RUNTIMES_BUILD_DIR}" ${runtime_targets}
129+
fi

.ci/monolithic-windows.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ pip install -q -r "${MONOREPO_ROOT}"/mlir/python/requirements.txt
4444
# see https://github.com/llvm/llvm-project/pull/82393 and
4545
# https://discourse.llvm.org/t/rfc-future-of-windows-pre-commit-ci/76840/40
4646
# for further information.
47+
# We limit the number of parallel compile jobs to 24 control memory
48+
# consumption and improve build reliability.
4749
cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
4850
-D LLVM_ENABLE_PROJECTS="${projects}" \
4951
-G Ninja \
@@ -58,7 +60,9 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
5860
-D MLIR_ENABLE_BINDINGS_PYTHON=ON \
5961
-D CMAKE_EXE_LINKER_FLAGS="/MANIFEST:NO" \
6062
-D CMAKE_MODULE_LINKER_FLAGS="/MANIFEST:NO" \
61-
-D CMAKE_SHARED_LINKER_FLAGS="/MANIFEST:NO"
63+
-D CMAKE_SHARED_LINKER_FLAGS="/MANIFEST:NO" \
64+
-D LLVM_PARALLEL_COMPILE_JOBS=16 \
65+
-D LLVM_PARALLEL_LINK_JOBS=4
6266

6367
echo "--- ninja"
6468
# Targets are not escaped as they are passed as separate arguments.

.git-blame-ignore-revs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,6 @@ f6d557ee34b6bbdb1dc32f29e34b4a4a8ad35e81
8181

8282
# [NFC] clang-format utils/TableGen (#80973)
8383
b9079baaddfed5e604fbfaa1d81a7a1c38e78c26
84+
85+
# [libc++][NFC] Run clang-format on libcxx/include again (#95874)
86+
e2c2ffbe7a1b5d9e32a2ce64279475b50c4cba5b

.github/CODEOWNERS

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
/llvm/lib/Analysis/ScalarEvolution.cpp @nikic
2424
/llvm/lib/Analysis/ValueTracking.cpp @nikic
2525
/llvm/lib/IR/ConstantRange.cpp @nikic
26+
/llvm/lib/IR/Core.cpp @nikic
2627
/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @nikic
2728
/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp @nikic
2829
/llvm/lib/Transforms/InstCombine/ @nikic
@@ -35,6 +36,10 @@
3536
clang/lib/AST/Interp/ @tbaederr
3637
clang/test/AST/Interp/ @tbaederr
3738

39+
/clang/include/clang/CIR @lanza @bcardosolopes
40+
/clang/lib/CIR @lanza @bcardosolopes
41+
/clang/tools/cir-* @lanza @bcardosolopes
42+
3843
/lldb/ @JDevlieghere
3944

4045
# MLIR Interfaces.
@@ -59,8 +64,8 @@ clang/test/AST/Interp/ @tbaederr
5964
/mlir/Dialect/*/Transforms/Bufferize.cpp @matthias-springer
6065

6166
# Linalg Dialect in MLIR.
62-
/mlir/include/mlir/Dialect/Linalg/* @dcaballe @nicolasvasilache
63-
/mlir/lib/Dialect/Linalg/* @dcaballe @nicolasvasilache
67+
/mlir/include/mlir/Dialect/Linalg/* @dcaballe @nicolasvasilache @rengolin
68+
/mlir/lib/Dialect/Linalg/* @dcaballe @nicolasvasilache @rengolin
6469
/mlir/lib/Dialect/Linalg/Transforms/DecomposeLinalgOps.cpp @MaheshRavishankar @nicolasvasilache
6570
/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @MaheshRavishankar @nicolasvasilache
6671
/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @MaheshRavishankar @nicolasvasilache
@@ -119,11 +124,15 @@ clang/test/AST/Interp/ @tbaederr
119124
/mlir/test/python/ @ftynse @makslevental @stellaraccident
120125
/mlir/python/ @ftynse @makslevental @stellaraccident
121126

127+
# MLIR Mem2Reg/SROA
128+
/mlir/**/Transforms/Mem2Reg.* @moxinilian
129+
/mlir/**/Transforms/SROA.* @moxinilian
130+
122131
# BOLT
123132
/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @dcci
124133

125134
# Bazel build system.
126-
/utils/bazel/ @rupprecht
135+
/utils/bazel/ @rupprecht @keith
127136

128137
# InstallAPI and TextAPI
129138
/llvm/**/TextAPI/ @cyndyishida
@@ -132,3 +141,8 @@ clang/test/AST/Interp/ @tbaederr
132141

133142
# ExtractAPI
134143
/clang/**/ExtractAPI @daniel-grumberg
144+
145+
# DWARFLinker, dwarfutil, dsymutil
146+
/llvm/**/DWARFLinker/ @JDevlieghere
147+
/llvm/**/dsymutil/ @JDevlieghere
148+
/llvm/**/llvm-dwarfutil/ @JDevlieghere

0 commit comments

Comments
 (0)