Skip to content

Commit a215dab

Browse files
authored
Merge branch 'main' into block-ldst-csr
2 parents e982f21 + dd3de59 commit a215dab

File tree

8,053 files changed

+694674
-261742
lines changed

Some content is hidden

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

8,053 files changed

+694674
-261742
lines changed

.ci/compute_projects.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
"clang": {"clang-tools-extra", "compiler-rt", "cross-project-tests"},
5353
"clang-tools-extra": {"libc"},
5454
"mlir": {"flang"},
55+
# Test everything if ci scripts are changed.
56+
# FIXME: Figure out what is missing and add here.
57+
".ci": {"llvm", "clang", "lld", "lldb"},
5558
}
5659

5760
DEPENDENT_RUNTIMES_TO_TEST = {"clang": {"libcxx", "libcxxabi", "libunwind"}}
@@ -130,12 +133,11 @@ def _add_dependencies(projects: Set[str]) -> Set[str]:
130133
def _compute_projects_to_test(modified_projects: Set[str], platform: str) -> Set[str]:
131134
projects_to_test = set()
132135
for modified_project in modified_projects:
133-
# Skip all projects where we cannot run tests.
134-
if modified_project not in PROJECT_CHECK_TARGETS:
135-
continue
136136
if modified_project in RUNTIMES:
137137
continue
138-
projects_to_test.add(modified_project)
138+
# Skip all projects where we cannot run tests.
139+
if modified_project in PROJECT_CHECK_TARGETS:
140+
projects_to_test.add(modified_project)
139141
if modified_project not in DEPENDENTS_TO_TEST:
140142
continue
141143
for dependent_project in DEPENDENTS_TO_TEST[modified_project]:
@@ -200,6 +202,11 @@ def _get_modified_projects(modified_files: list[str]) -> Set[str]:
200202
# documentation builds.
201203
if len(path_parts) > 2 and path_parts[1] == "docs":
202204
continue
205+
# Exclude files for the gn build. We do not test it within premerge
206+
# and changes occur often enough that they otherwise take up
207+
# capacity.
208+
if len(path_parts) > 3 and path_parts[:3] == ("llvm", "utils", "gn"):
209+
continue
203210
modified_projects.add(pathlib.Path(modified_file).parts[0])
204211
return modified_projects
205212

.ci/compute_projects_test.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,32 @@ def test_exclude_docs(self):
179179
self.assertEqual(env_variables["runtimes_to_build"], "")
180180
self.assertEqual(env_variables["runtimes_check_targets"], "")
181181

182+
def test_exclude_gn(self):
183+
env_variables = compute_projects.get_env_variables(
184+
["llvm/utils/gn/build/BUILD.gn"], "Linux"
185+
)
186+
self.assertEqual(env_variables["projects_to_build"], "")
187+
self.assertEqual(env_variables["project_check_targets"], "")
188+
self.assertEqual(env_variables["runtimes_to_build"], "")
189+
self.assertEqual(env_variables["runtimes_check_targets"], "")
190+
191+
def test_ci(self):
192+
env_variables = compute_projects.get_env_variables(
193+
[".ci/compute_projects.py"], "Linux"
194+
)
195+
self.assertEqual(env_variables["projects_to_build"], "clang;lld;llvm;lldb")
196+
self.assertEqual(
197+
env_variables["project_check_targets"],
198+
"check-clang check-lld check-llvm check-lldb",
199+
)
200+
self.assertEqual(
201+
env_variables["runtimes_to_build"], "libcxx;libcxxabi;libunwind"
202+
)
203+
self.assertEqual(
204+
env_variables["runtimes_check_targets"],
205+
"check-cxx check-cxxabi check-unwind",
206+
)
207+
182208

183209
if __name__ == "__main__":
184210
unittest.main()

.ci/generate_test_report_lib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ def plural(num_tests):
9292
]
9393
)
9494
elif failures:
95-
report.extend(["", "## Failed Tests", "(click to see output)"])
95+
report.extend(["", "## Failed Tests", "(click on a test name to see its output)"])
9696

9797
for testsuite_name, failures in failures.items():
9898
report.extend(["", f"### {testsuite_name}"])

.ci/generate_test_report_lib_test.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
# See https://llvm.org/LICENSE.txt for license information.
33
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
44

5+
# To run these tests:
6+
# python -m unittest generate_test_report_lib_test.py
7+
58
import unittest
69
from io import StringIO
710
from textwrap import dedent
@@ -150,7 +153,7 @@ def test_report_single_file_single_testsuite(self):
150153
* 2 tests failed
151154
152155
## Failed Tests
153-
(click to see output)
156+
(click on a test name to see its output)
154157
155158
### Bar
156159
<details>
@@ -182,7 +185,7 @@ def test_report_single_file_single_testsuite(self):
182185
* 2 tests failed
183186
184187
## Failed Tests
185-
(click to see output)
188+
(click on a test name to see its output)
186189
187190
### ABC
188191
<details>

.ci/metrics/metrics.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,13 @@ def github_get_metrics(
282282
queued_count = collections.Counter()
283283
running_count = collections.Counter()
284284

285+
# Initialize all the counters to 0 so we report 0 when no job is queued
286+
# or running.
287+
for wf_name, wf_metric_name in GITHUB_WORKFLOW_TO_TRACK.items():
288+
for job_name, job_metric_name in GITHUB_JOB_TO_TRACK[wf_metric_name].items():
289+
queued_count[wf_metric_name + "_" + job_metric_name] = 0
290+
running_count[wf_metric_name + "_" + job_metric_name] = 0
291+
285292
# The list of workflows this iteration will process.
286293
# MaxSize = GITHUB_WORKFLOWS_MAX_PROCESS_COUNT
287294
workflow_seen_as_completed = set()

.ci/monolithic-linux.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,16 @@ if [[ -n "${CLEAR_CACHE:-}" ]]; then
2828
ccache --clear
2929
fi
3030

31+
mkdir -p artifacts/reproducers
32+
33+
# Make sure any clang reproducers will end up as artifacts.
34+
export CLANG_CRASH_DIAGNOSTICS_DIR=`realpath artifacts/reproducers`
35+
3136
function at-exit {
3237
retcode=$?
3338

34-
mkdir -p artifacts
3539
ccache --print-stats > artifacts/ccache_stats.txt
40+
cp "${BUILD_DIR}"/.ninja_log artifacts/.ninja_log
3641

3742
# If building fails there will be no results files.
3843
shopt -s nullglob
@@ -53,12 +58,22 @@ targets="${2}"
5358
lit_args="-v --xunit-xml-output ${BUILD_DIR}/test-results.xml --use-unique-output-file-name --timeout=1200 --time-tests"
5459

5560
echo "--- cmake"
61+
export PIP_BREAK_SYSTEM_PACKAGES=1
5662
pip install -q -r "${MONOREPO_ROOT}"/mlir/python/requirements.txt
5763
pip install -q -r "${MONOREPO_ROOT}"/lldb/test/requirements.txt
5864
pip install -q -r "${MONOREPO_ROOT}"/.ci/requirements.txt
65+
66+
# Set the system llvm-symbolizer as preferred.
67+
export LLVM_SYMBOLIZER_PATH=`which llvm-symbolizer`
68+
[[ ! -f "${LLVM_SYMBOLIZER_PATH}" ]] && echo "llvm-symbolizer not found!"
69+
70+
# Set up all runtimes either way. libcxx is a dependency of LLDB.
71+
# It will not be built unless it is used.
5972
cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
6073
-D LLVM_ENABLE_PROJECTS="${projects}" \
74+
-D LLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;libunwind" \
6175
-G Ninja \
76+
-D CMAKE_PREFIX_PATH="${HOME}/.local" \
6277
-D CMAKE_BUILD_TYPE=Release \
6378
-D LLVM_ENABLE_ASSERTIONS=ON \
6479
-D LLVM_BUILD_EXAMPLES=ON \
@@ -67,7 +82,10 @@ cmake -S "${MONOREPO_ROOT}"/llvm -B "${BUILD_DIR}" \
6782
-D LLVM_ENABLE_LLD=ON \
6883
-D CMAKE_CXX_FLAGS=-gmlt \
6984
-D LLVM_CCACHE_BUILD=ON \
85+
-D LIBCXX_CXX_ABI=libcxxabi \
7086
-D MLIR_ENABLE_BINDINGS_PYTHON=ON \
87+
-D LLDB_ENABLE_PYTHON=ON \
88+
-D LLDB_ENFORCE_STRICT_TEST_REQUIREMENTS=ON \
7189
-D CMAKE_INSTALL_PREFIX="${INSTALL_DIR}"
7290

7391
echo "--- ninja"

.ci/monolithic-windows.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ function at-exit {
3232

3333
mkdir -p artifacts
3434
sccache --show-stats >> artifacts/sccache_stats.txt
35+
cp "${BUILD_DIR}"/.ninja_log artifacts/.ninja_log
3536

3637
# If building fails there will be no results files.
3738
shopt -s nullglob

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
/mlir/**/Transforms/SROA.* @moxinilian
129129

130130
# BOLT
131-
/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @dcci @yota9
131+
/bolt/ @aaupov @maksfb @rafaelauler @ayermolo @yota9
132132

133133
# Bazel build system.
134134
/utils/bazel/ @rupprecht @keith @aaronmondal

.github/new-prs-labeler.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ ClangIR:
77
- clang/tools/cir-*/**/*
88
- clang/test/CIR/**/*
99

10+
clang:bytecode:
11+
- clang/docs/ConstantInterpreter.rst
12+
- clang/lib/AST/ByteCode/**/*
13+
- clang/test/AST/ByteCode/**/*
14+
- clang/unittests/AST/ByteCode/**/*
15+
1016
clang:dataflow:
1117
- clang/include/clang/Analysis/FlowSensitive/**/*
1218
- clang/lib/Analysis/FlowSensitive/**/*
@@ -660,6 +666,12 @@ backend:DirectX:
660666
- '**/*dxil*/**'
661667
- '**/*DXContainer*'
662668
- '**/*DXContainer*/**'
669+
- clang/lib/Sema/SemaDirectX.cpp
670+
- clang/include/clang/Sema/SemaDirectX.h
671+
- clang/include/clang/Basic/BuiltinsDirectX.td
672+
- clang/lib/CodeGen/TargetBuiltins/DirectX.cpp
673+
- clang/test/CodeGenDirectX/**
674+
- clang/test/SemaDirectX/**
663675

664676
backend:SPIR-V:
665677
- clang/lib/Driver/ToolChains/SPIRV.*

0 commit comments

Comments
 (0)