Skip to content

Update the minimum external LLVM to 21#153684

Open
cuviper wants to merge 1 commit intorust-lang:mainfrom
cuviper:min-llvm-21
Open

Update the minimum external LLVM to 21#153684
cuviper wants to merge 1 commit intorust-lang:mainfrom
cuviper:min-llvm-21

Conversation

@cuviper
Copy link
Member

@cuviper cuviper commented Mar 11, 2026

With this change, we'll have stable support for LLVM 21 and 22.
For reference, the previous increase to LLVM 20 was #145071.

cc @rust-lang/wg-llvm
r? nikic

@rustbot
Copy link
Collaborator

rustbot commented Mar 11, 2026

Some changes occurred in tests/codegen-llvm/sanitizer

cc @rcvalle

Some changes occurred in tests/ui/sanitizer

cc @rcvalle

@rustbot rustbot added A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Mar 11, 2026
Copy link
Contributor

@nikic nikic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

attrs.push(llattr.create_attr(cx.llcx));
break;
}
for (attr, llattr) in CAPTURES_ATTRIBUTES {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can include these in OPTIMIZATION_ATTRIBUTES now? They were only separate due to the versioning.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, there's a difference that the captures loop has an early break -- I guess because we only want the "strongest" captures to apply? AFAICS they are deduced separately.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We definitely don't want to break after applying one of the other optimization attributes, and I get test failures if I merge the captures into the non-breaking loop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc PG-exploit-mitigations Project group: Exploit mitigations S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants