567 Commits

Author SHA1 Message Date
Nikolas Klauser
7f845cba2c
[libc++] Update the CI to Clang-20 and drop Clang-17 support (#117429) 2025-01-28 12:35:33 +01:00
Tom Stellard
6bb70a94da
workflows/release-binaries: Enable builds on Linux/AArch64 (#120786) 2025-01-25 19:48:46 -08:00
Aiden Grossman
9b6990ff25
[Github][CI] Add Windows Premerge Job for Testing (#122661)
This patch adds a windows premerge job for testing. We plan to enable
this by default soon once we have evaluated stability and have
reasonable reason to believe the system is reliable.
2025-01-25 19:23:12 -08:00
Aiden Grossman
d789915f35
[Github] Bump Runner Version in Containers (#124324)
This patch bumps the runner version to v2.322.0 in the CI containers.
Nothing looks suspicious in the change log, and it is important to keep
the runner up to date or we will end up with containers that cannot
connect to Github due to having a version too old.
2025-01-24 15:32:35 -08:00
Schrodinger ZHU Yifan
acc13dbe4d
[libc][workflow] improve ci coverage with windows-2025 and arm ubuntu (#123745)
Add the following workflows:

- `fullbuild` on aarch64 ubuntu
- `overlay` on windows 2025
- `overlay` on aarch64 ubuntu

`ccache` variant is used on `aarch64` due to
https://github.com/hendrikmuhs/ccache-action/issues/279
2025-01-24 19:52:46 +08:00
Tom Stellard
8f45452c53
workflows/release-binaries: Restrict jobs based on owner instead of repo (#123797)
Not really any functional change, just a clean up that could make it
easier to share snippets with other repos.
2025-01-22 16:29:43 -08:00
Aiden Grossman
ee5d60020f Revert "[CI][Github] Disable premerge workflow on main"
This reverts commit 106f1056991317af7eaaf19239de93942ac37267.

Everything should be in working order now that the container job has been
updated to work properly. This has been tested on an individual job.
2025-01-22 03:37:37 +00:00
Aiden Grossman
76b01875d3 [Github] Move agent container to separate tar archive
This patch makes the build container job save the agent container image to a
separate tar file rather than bundling it in with the existing tar file. For
some reason, running podman save with two container images and then loading
that single tar file gets rid of the agent image and we end up with two
copies of the original image. This means that premerge jobs will fail with
the agent image because they cannot find the run.sh script.
2025-01-22 01:36:42 +00:00
Eric Fiselier
c95d7894c9 Fix incorrect console.print -> console.log to fix libc++ restarter 2025-01-21 16:16:48 -05:00
Aiden Grossman
106f105699 [CI][Github] Disable premerge workflow on main
Trying to switch over to the normal execution mode and running into issues.
Turning this off on main for now while I investigate given my time
availability is a bit sparse today.
2025-01-21 19:19:28 +00:00
Aiden Grossman
1888a5f02f
[Github][CI] Remove premerge container (#123483)
This patch removes the container from the premerge job. We are moving
away from the kubernetes executor back to executing everything in the
same container due to reliability issues. This patch updates everything
in the premerge job to work.

This is part of a temp fix to
https://github.com/llvm/llvm-zorg/issues/362.
2025-01-21 11:01:15 -08:00
Eric
59850c242e
Attempt to fix libc++ actions runner restarter. (#120627)
It appears that introducing docker containers has broken the restarter
job since additional failure messages appear with the preemption
messages.

This should get jobs restarting on preemption again, but may do so
for jobs that also contain unrelated failures
2025-01-21 12:36:04 -05:00
Philipp-Jan Honysz
b4576bba44
Update download and upload artifacts action usage to v4 ahead of deprecation (#123747)
Ahead of GitHub's
[deprecation](https://github.blog/changelog/#artifacts-v3-brownouts) of
v3 versions of both the `upload-artifact` and `download-artifact`
action, I suggest this PR, which bumps the used version of both actions
in all workflows to the newest v4 revision. Additionally, the versions
are hashpinned as suggested in f3524e9aebbfabed0c60d0087b39ce14d8f778da.
2025-01-21 09:22:20 -08:00
Michal Paszkowski
cda81b1ec9
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) (#123733)
This commit promotes the SPIR-V backend from experimental to official
status. As a result, SPIR-V will be built by default, simplifying
integration and increasing accessibility for downstream projects.

Discussion and RFC on Discourse:
https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614

The PR reapplies the original patch
https://github.com/llvm/llvm-project/pull/119653 and consecutive
https://github.com/llvm/llvm-project/pull/123654, reverted due to
buildbot failures.
2025-01-21 12:39:03 +01:00
Aiden Grossman
a0c68119bd [Github] Fix container push job
This patch fixes a typo impacting functionality and also adds the relevant
variables to the step outputs list so they can actually get picked up by the
push container step.
2025-01-21 01:00:34 +00:00
Tom Stellard
a3beb7db36
Workflows: Drop Windows release builds and use more powerful runners for others (#117111)
We have community provided Windows builds that are better than what we
can build on GitHub. For the Linux/X86 builds and Mac/Aarch64 builds we
will use depot runners, for Mac/X86 we will use the larger GitHub
runners.
2025-01-20 16:37:27 -08:00
Michal Paszkowski
3f0ac4653b
Revert "[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply)" (#123674)
Reverts llvm/llvm-project#123654 due to buildbot issue
2025-01-20 15:16:43 -08:00
Michal Paszkowski
f427fef092
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) (#123654)
This commit promotes the SPIR-V backend from experimental to official
status. As a result, SPIR-V will be built by default, simplifying
integration and increasing accessibility for downstream projects.

Discussion and RFC on Discourse:
https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614

The PR reapplies the original patch
https://github.com/llvm/llvm-project/pull/119653, reverted due to
buildbot failures.
2025-01-20 14:57:41 -08:00
Aiden Grossman
d35d7f4b13
[Github] Add Agent Container Image (#123486)
This patch adds an agent container image on top of the normal CI
container image. They are the exact same except that the agent container
image also contains Github Runner binaries. I've split it into a
separate container as only one user of these images (the new premerge)
needs this binary installed, and it bloats the container image size
significantly (900MB->1.3GB or so).
2025-01-20 11:53:25 -08:00
Aiden Grossman
e68d18c34e
[Github] Add Zlib at build time to CI container (#123489)
This patch adds zlib at build time to the CI container. This is needed
to make an lldb test pass that defaults to using the system lld if it is
not explicitly enabled in LLVM_ENABLE_PROJECTS.

Fixes #123479 (by fixing the proximal cause).
2025-01-20 11:50:21 -08:00
Michal Paszkowski
5af7905302
Revert "[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS" (#123532)
Reverts llvm/llvm-project#119653
2025-01-20 00:33:14 +01:00
Michal Paszkowski
c46df85380
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (#119653)
This commit promotes the SPIR-V backend from experimental to official
status. As a result, SPIR-V will be built by default, simplifying
integration and increasing accessibility for downstream projects.

Discussion and RFC on Discourse:
https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614
2025-01-20 00:02:46 +01:00
Aiden Grossman
471cec3b24
[Github] Bump Windows Actions Runner to v2.321.0 (#123508)
The current container is on an old version that can no longer recieve
messages from Github, which causes the runner to just be recreated every
couple seconds rather than performing any useful work.
2025-01-19 09:54:52 -08:00
Aiden Grossman
7a7d12bba9 [Github] Bump max ccache size for premerge
This patch bumps the max ccache size for premerge jobs to 2GB. Doing a manual
invocation against changes in LLVM produces about 1GB of cache. The default
is 500MB, which we feel might be contributing to the very poor cache
utilization.
2025-01-19 08:37:37 +00:00
Vlad Serebrennikov
f9350c9325 [clang][NFC] Update CODEOWNERS 2025-01-15 16:33:52 +04:00
Adam Yang
90eca3f3f4
[Github] Explicitly requesting Ubuntu 22.04 for SPIRV test (#122395)
For the same reason as
[#122221](https://github.com/llvm/llvm-project/pull/122221), this fixes
build failure from missing python3.
2025-01-10 19:32:54 -08:00
Chris B
218f15cd1e
Add pre-merge workflow for HLSL testing (#122184)
This adds a workflow for running HLSL tests on PRs that modify HLSL and
DirectX code.

The tests enabled here are the LLVM & Clang tests and the Offload
execution tests: https://github.com/llvm-beanz/offload-test-suite/
2025-01-09 14:10:44 -06:00
Aiden Grossman
a759176795
[Github] Fix LLVM Project Tests Workflow on Linux (#122221)
This patch fixes the LLVM project tests workflow on Linux. Two changes
were needed. Firstly, some commands need to be performed with sudo now
that the container executes as a non-root user. Second, we needed to
change from `ubuntu-latest` to `ubuntu-22.04` as `ubuntu-latest` not
defaults to `ubuntu-24.04` which causes `setup-python` to install a
python executable linked against a newer version of glibc that is not
found on ubuntu 22.04, which causes failures when CMake cannot execute
the python interpreter that it finds.
2025-01-09 07:58:38 -08:00
Aiden Grossman
459d413b74 [CI][Github] Do not fail premerge job
The postcommit job is currently sending emails on failures. A lot of these
emails are useless noise as there are still some problems with the new
infrastructure that need to be fixed before the results are reliable.
2025-01-09 05:05:34 +00:00
Aiden Grossman
929b90be30
[Github] Add sccache to CI container (#122063)
This patch adds sccache to the CI container so that the
llvm-project-tests workflow does not fail due to missing sccache.
2025-01-08 20:57:33 -08:00
Aiden Grossman
91ab10e8d6
[Github] Add sudo to CI container (#122036)
This patch adds sudo to the CI container and also adds the gha user as a
member of the sudo group along with making any member of the sudo group
able to run commands as root without a password. This is primarily
intended to enable installing new software through apt-get without
having to rebuild the container.
2025-01-08 17:21:40 -08:00
Tom Stellard
2359635457
workflows/commit-access-review: Exclude users who have recently requested access (#119102)
Now that we are accepting commit access requests via GitHub issues, we
can keep track of who has recently requested access.
2025-01-07 15:01:49 -08:00
Louis Dionne
858f025a00
[ci] Bump the version of clang-format used in the CI (#119915)
The version of clang-format we use in the CI to format all PRs is a bit
outdated, leading to some confusion when the CI job produces different
output from what people have locally.
2025-01-07 16:40:22 -05:00
Farzon Lotfi
21edac25f0
[SPIRV] Add Target Builtins using Distance ext as an example (#121598)
- Update pr labeler so new SPIRV files get properly labeled.
- Add distance target builtin to BuiltinsSPIRV.td.
- Update TargetBuiltins.h to account for spirv builtins.
- Update clang basic CMakeLists.txt to build spirv builtin tablegen.
- Hook up sema for SPIRV in Sema.h|cpp, SemaSPIRV.h|cpp, and
SemaChecking.cpp.
- Hookup sprv target builtins to SPIR.h|SPIR.cpp target.
- Update GBuiltin.cpp to emit spirv intrinsics when we get the expected
spirv target builtin.

Consensus was reach in this RFC to add both target builtins and pattern
matching:
https://discourse.llvm.org/t/rfc-add-targetbuiltins-for-spirv-to-support-hlsl/83329.

pattern matching will come in a separate pr this one just sets up the
groundwork to do target builtins for spirv.

partially resolves
[#99107](https://github.com/llvm/llvm-project/issues/99107)
2025-01-06 11:37:20 -05:00
Tom Stellard
dfa4312c9b
workflows/release-binaries: Replace some workflow interpolations with env vars (#120860)
This is recommended by the GitHub Actions security hardening guide:
https://docs.github.com/en/actions/security-for-github-actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
2025-01-03 15:08:40 -08:00
Tom Stellard
06cf4f9704
workflows/new-issues: Use an llvmbot token to add labels (#120840)
There is a separate job that mentions teams based on the label added,
and this job won't run if we use the default github token.
2025-01-03 15:06:35 -08:00
Tom Stellard
1b5deaeb2a
workflows/build-ci-container: Make sure to only test local containers (#120827)
The container test is run before we create the :latest tag, so we should
not try testing this, otherwise it will pull the :latest tag from the
github registry, and won't test the container we just built.
2025-01-03 15:02:16 -08:00
Nikolas Klauser
b9a2658a3e
[libc++][C++03] Use __cxx03/ headers in C++03 mode (#109002)
This patch implements the forwarding to frozen C++03 headers as
discussed in
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc. In the
RFC, we initially proposed selecting the right headers from the Clang
driver, however consensus seemed to steer towards handling this in the
library itself. This patch implements that direction.

At a high level, the changes basically amount to making each public
header look like this:

```
// inside <vector>
#ifdef _LIBCPP_CXX03_LANG
#  include <__cxx03/vector>
#else
  // normal <vector> content
#endif
```

In most cases, public headers are simple umbrella headers so there isn't
much code in the #else branch. In other cases, the #else branch contains
the actual implementation of the header.
2024-12-21 13:01:48 +01:00
Louis Dionne
d56edc14d8
[libc++] Bump the Docker image used in the CI (#120248)
This switches to using a slightly newer CMake version in our CI.
2024-12-19 11:12:05 -05:00
Vladislav Khmelevsky
7e49ada9a3 [github/CODEOWNERS] Add yota9 as BOLT reviewer 2024-12-18 14:03:20 +04:00
Aiden Grossman
8a62104f64
[Github] Use hashed dependencies in docs job (#120319)
This patch forces the docs test build job to use the hashed dpendencies
file rather than the normal requirements.txt. This ensures that we get
the exact transitive closure specified rather than whatever the
dependency solver feels like it should use in the CI job.
2024-12-17 14:46:13 -08:00
Andrei Safronov
75b2d78673
[GitHub] Add Xtensa backend labeler. (#120133)
Add patterns to label Xtensa backend related changes automatically.
2024-12-17 12:51:52 +03:00
Aiden Grossman
4a7673ddf2 [Github] Fix premerge concurrency cancellation
This should actually fix the problem as I validated that github.sha returns an
actual value by running a workflow in a test repo. I'm not sure why the
existing value doesn't work, but it returns nothing.
2024-12-17 06:49:35 +00:00
Aiden Grossman
f0878995c2 [Github] Fix concurrency groups for premerge
According to https://docs.github.com/en/rest/using-the-rest-api/github-event-types?apiVersion=2022-11-28,
When we look at the push event payload, github.event.push.head is a string
containing the SHA. This is currently causing new commits on main to cancel
the premerge pipeline of older commits.
2024-12-17 01:10:46 +00:00
Aiden Grossman
a8456c9a2f [Github] Enable new premerge workflow postcommit
This patch enables the new premerge workflow postcommit so that we can start
testing it at a reasonable scale with minimal disruption.
2024-12-16 23:11:54 +00:00
Aiden Grossman
484a2819de
[CI][Github] Add linux premerge workflow (#119635)
This patch adds a Github Actions workflow for Linux premerge. This
currently just calls into the existing CI scripts as a starting point.
2024-12-16 13:30:51 -08:00
Aiden Grossman
b86a22aa39
[Github] Default to non-root user in linux CI container (#119987)
This patch sets the default user in the linux CI container to a non-root
user, which enables properly testing a couple of features, particularly
in libcxx.
2024-12-16 13:22:34 -08:00
Aiden Grossman
1751914a52
[Github] Add some additional system packages (#119988)
This patch adds some additional system packages to the CI container.
These are necessary for use in the new premerge workflows. The size
increase is not super small, but should be manageable with the size
increase being about 100MB.
2024-12-16 12:30:01 -08:00
Aiden Grossman
af20aff35e
[Github] Fix windows container push (#119916)
The windows container push was not tested in the pull request and had a
couple of typos that prevented it from functioning. This patch fixes
that so we can actually push the container to GHCR.
2024-12-13 19:00:03 -08:00
Tom Stellard
22266bc958
workflows/build-ci-container: Fix typos in variables (#119943)
This was preventing the containers from being pushed to the registry.
2024-12-13 18:59:37 -08:00