Skip to content

Commit 9d2069a

Browse files
authored
Merge branch 'main' into change-lldb-breakpoint-hit-behaviors
2 parents 9c7916b + 62f6d63 commit 9d2069a

File tree

26,963 files changed

+2617158
-848140
lines changed

Some content is hidden

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

26,963 files changed

+2617158
-848140
lines changed

.ci/compute-projects.sh

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
#!/usr/bin/env bash
2+
#===----------------------------------------------------------------------===##
3+
#
4+
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5+
# See https://llvm.org/LICENSE.txt for license information.
6+
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7+
#
8+
#===----------------------------------------------------------------------===##
9+
10+
#
11+
# This file contains functions to compute which projects should be built by CI
12+
# systems and is intended to provide common functionality applicable across
13+
# multiple systems during a transition period.
14+
#
15+
16+
function compute-projects-to-test() {
17+
isForWindows=$1
18+
shift
19+
projects=${@}
20+
for project in ${projects}; do
21+
echo "${project}"
22+
case ${project} in
23+
lld)
24+
for p in bolt cross-project-tests; do
25+
echo $p
26+
done
27+
;;
28+
llvm)
29+
for p in bolt clang clang-tools-extra lld lldb mlir polly; do
30+
echo $p
31+
done
32+
# Flang is not stable in Windows CI at the moment
33+
if [[ $isForWindows == 0 ]]; then
34+
echo flang
35+
fi
36+
;;
37+
clang)
38+
# lldb is temporarily removed to alleviate Linux pre-commit CI waiting times
39+
for p in clang-tools-extra compiler-rt cross-project-tests; do
40+
echo $p
41+
done
42+
;;
43+
clang-tools-extra)
44+
echo libc
45+
;;
46+
mlir)
47+
# Flang is not stable in Windows CI at the moment
48+
if [[ $isForWindows == 0 ]]; then
49+
echo flang
50+
fi
51+
;;
52+
*)
53+
# Nothing to do
54+
;;
55+
esac
56+
done
57+
}
58+
59+
function compute-runtimes-to-test() {
60+
projects=${@}
61+
for project in ${projects}; do
62+
case ${project} in
63+
clang)
64+
for p in libcxx libcxxabi libunwind; do
65+
echo $p
66+
done
67+
;;
68+
*)
69+
# Nothing to do
70+
;;
71+
esac
72+
done
73+
}
74+
75+
function add-dependencies() {
76+
projects=${@}
77+
for project in ${projects}; do
78+
echo "${project}"
79+
case ${project} in
80+
bolt)
81+
for p in clang lld llvm; do
82+
echo $p
83+
done
84+
;;
85+
cross-project-tests)
86+
for p in lld clang; do
87+
echo $p
88+
done
89+
;;
90+
clang-tools-extra)
91+
for p in llvm clang; do
92+
echo $p
93+
done
94+
;;
95+
compiler-rt|libc|openmp)
96+
echo clang lld
97+
;;
98+
flang|lldb|libclc)
99+
for p in llvm clang; do
100+
echo $p
101+
done
102+
;;
103+
lld|mlir|polly)
104+
echo llvm
105+
;;
106+
*)
107+
# Nothing to do
108+
;;
109+
esac
110+
done
111+
}
112+
113+
function exclude-linux() {
114+
projects=${@}
115+
for project in ${projects}; do
116+
case ${project} in
117+
cross-project-tests) ;; # tests failing
118+
openmp) ;; # https://github.com/google/llvm-premerge-checks/issues/410
119+
*)
120+
echo "${project}"
121+
;;
122+
esac
123+
done
124+
}
125+
126+
function exclude-windows() {
127+
projects=${@}
128+
for project in ${projects}; do
129+
case ${project} in
130+
cross-project-tests) ;; # tests failing
131+
compiler-rt) ;; # tests taking too long
132+
openmp) ;; # TODO: having trouble with the Perl installation
133+
libc) ;; # no Windows support
134+
lldb) ;; # custom environment requirements (https://github.com/llvm/llvm-project/pull/94208#issuecomment-2146256857)
135+
bolt) ;; # tests are not supported yet
136+
*)
137+
echo "${project}"
138+
;;
139+
esac
140+
done
141+
}
142+
143+
# Prints only projects that are both present in $modified_dirs and the passed
144+
# list.
145+
function keep-modified-projects() {
146+
projects=${@}
147+
for project in ${projects}; do
148+
if echo "$modified_dirs" | grep -q -E "^${project}$"; then
149+
echo "${project}"
150+
fi
151+
done
152+
}
153+
154+
function check-targets() {
155+
# Do not use "check-all" here because if there is "check-all" plus a
156+
# project specific target like "check-clang", that project's tests
157+
# will be run twice.
158+
projects=${@}
159+
for project in ${projects}; do
160+
case ${project} in
161+
clang-tools-extra)
162+
echo "check-clang-tools"
163+
;;
164+
compiler-rt)
165+
echo "check-compiler-rt"
166+
;;
167+
cross-project-tests)
168+
echo "check-cross-project"
169+
;;
170+
libcxx)
171+
echo "check-cxx"
172+
;;
173+
libcxxabi)
174+
echo "check-cxxabi"
175+
;;
176+
libunwind)
177+
echo "check-unwind"
178+
;;
179+
lldb)
180+
echo "check-lldb"
181+
;;
182+
pstl)
183+
# Currently we do not run pstl tests in CI.
184+
;;
185+
libclc)
186+
# Currently there is no testing for libclc.
187+
;;
188+
*)
189+
echo "check-${project}"
190+
;;
191+
esac
192+
done
193+
}
194+

0 commit comments

Comments
 (0)