<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src/errors.rs, branch 1.88.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.88.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.88.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-04-05T04:05:04+00:00</updated>
<entry>
<title>KCFI: Add KCFI arity indicator support</title>
<updated>2025-04-05T04:05:04+00:00</updated>
<author>
<name>Ramon de C Valle</name>
<email>rcvalle@users.noreply.github.com</email>
</author>
<published>2025-03-11T19:04:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a98546b961a7fc707155aecbde094fbcecce81fd'/>
<id>urn:sha1:a98546b961a7fc707155aecbde094fbcecce81fd</id>
<content type='text'>
Adds KCFI arity indicator support to the Rust compiler (see rust-lang/rust#138311,
https://github.com/llvm/llvm-project/pull/121070, and
https://lore.kernel.org/lkml/CANiq72=3ghFxy8E=AU9p+0imFxKr5iU3sd0hVUXed5BA+KjdNQ@mail.gmail.com/).
</content>
</entry>
<entry>
<title>update autodiff flags</title>
<updated>2025-02-22T02:51:20+00:00</updated>
<author>
<name>Manuel Drehwald</name>
<email>git@manuel.drehwald.info</email>
</author>
<published>2025-02-22T02:51:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e2d250c3f63d14e068e92ab3048817af6e1770c2'/>
<id>urn:sha1:e2d250c3f63d14e068e92ab3048817af6e1770c2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[cg_llvm] Remove dead error message</title>
<updated>2025-02-13T23:04:39+00:00</updated>
<author>
<name>Daniel Paoliello</name>
<email>danpao@microsoft.com</email>
</author>
<published>2025-02-13T23:04:39+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bfdc96114c4b591025dd6ec18b4282f0b21e641c'/>
<id>urn:sha1:bfdc96114c4b591025dd6ec18b4282f0b21e641c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #134794 - RalfJung:abi-required-target-features, r=workingjubilee</title>
<updated>2025-01-05T23:21:06+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-01-05T23:21:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=feb32c654619e50eda8408f9241d4cb7b948fea5'/>
<id>urn:sha1:feb32c654619e50eda8408f9241d4cb7b948fea5</id>
<content type='text'>
Add a notion of "some ABIs require certain target features"

I think I finally found the right shape for the data and checks that I recently added in https://github.com/rust-lang/rust/pull/133099, https://github.com/rust-lang/rust/pull/133417, https://github.com/rust-lang/rust/pull/134337: we have a notion of "this ABI requires the following list of target features, and it is incompatible with the following list of target features". Both `-Ctarget-feature` and `#[target_feature]` are updated to ensure we follow the rules of the ABI.  This removes all the "toggleability" stuff introduced before, though we do keep the notion of a fully "forbidden" target feature -- this is needed to deal with target features that are actual ABI switches, and hence are needed to even compute the list of required target features.

We always explicitly (un)set all required and in-conflict features, just to avoid potential trouble caused by the default features of whatever the base CPU is. We do this *before* applying `-Ctarget-feature` to maintain backward compatibility; this poses a slight risk of missing some implicit feature dependencies in LLVM but has the advantage of not breaking users that deliberately toggle ABI-relevant target features. They get a warning but the feature does get toggled the way they requested.

For now, our logic supports x86, ARM, and RISC-V (just like the previous logic did). Unsurprisingly, RISC-V is the nicest. ;)

As a side-effect this also (unstably) allows *enabling* `x87` when that is harmless. I used the opportunity to mark SSE2 as required on x86-64, to better match the actual logic in LLVM and because all x86-64 chips do have SSE2. This infrastructure also prepares us for requiring SSE on x86-32 when we want to use that for our ABI (and for float semantics sanity), see https://github.com/rust-lang/rust/issues/133611, but no such change is happening in this PR.

r? `@workingjubilee`
</content>
</entry>
<entry>
<title>upstream rustc_codegen_llvm changes for enzyme/autodiff</title>
<updated>2025-01-01T20:42:45+00:00</updated>
<author>
<name>Manuel Drehwald</name>
<email>git@manuel.drehwald.info</email>
</author>
<published>2025-01-01T20:42:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d753cbf7793f20229ed7a151d060456a9e1396e9'/>
<id>urn:sha1:d753cbf7793f20229ed7a151d060456a9e1396e9</id>
<content type='text'>
</content>
</entry>
<entry>
<title>explicitly model that certain ABIs require/forbid certain target features</title>
<updated>2024-12-31T11:41:20+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-12-26T17:32:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2bf27e09beb4cd1c5f01369e7086e36b3de04f5c'/>
<id>urn:sha1:2bf27e09beb4cd1c5f01369e7086e36b3de04f5c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>mark some target features as 'forbidden' so they cannot be (un)set</title>
<updated>2024-11-04T21:56:47+00:00</updated>
<author>
<name>Ralf Jung</name>
<email>post@ralfj.de</email>
</author>
<published>2024-09-02T09:45:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ffad9aac27ff8a78f5d751bf88250470e2e9d790'/>
<id>urn:sha1:ffad9aac27ff8a78f5d751bf88250470e2e9d790</id>
<content type='text'>
For now, this is just a warning, but should become a hard error in the future
</content>
</entry>
<entry>
<title>codegen_ssa: consolidate tied feature checking</title>
<updated>2024-09-24T14:48:49+00:00</updated>
<author>
<name>David Wood</name>
<email>david.wood2@arm.com</email>
</author>
<published>2024-09-11T12:57:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=207bc77e15acc9444bf6c3e74fa46607490a8e8a'/>
<id>urn:sha1:207bc77e15acc9444bf6c3e74fa46607490a8e8a</id>
<content type='text'>
`rustc_codegen_llvm` and `rustc_codegen_gcc` duplicated logic for
checking if tied target features were partially enabled. This commit
consolidates these checks into `rustc_codegen_ssa` in the
`codegen_fn_attrs` query, which also is run pre-monomorphisation for
each function, which ensures that this check is run for unused functions,
as would be expected.
</content>
</entry>
<entry>
<title>Rollup merge of #126013 - nnethercote:unreachable_pub, r=Urgau</title>
<updated>2024-08-26T22:41:57+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>matthias.krueger@famsik.de</email>
</author>
<published>2024-08-26T22:41:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=110c3df7fd48904bf714d02201bccb80695fc690'/>
<id>urn:sha1:110c3df7fd48904bf714d02201bccb80695fc690</id>
<content type='text'>
Add `#[warn(unreachable_pub)]` to a bunch of compiler crates

By default `unreachable_pub` identifies things that need not be `pub` and tells you to make them `pub(crate)`. But sometimes those things don't need any kind of visibility. So they way I did these was to remove the visibility entirely for each thing the lint identifies, and then add `pub(crate)` back in everywhere the compiler said it was necessary. (Or occasionally `pub(super)` when context suggested that was appropriate.) Tedious, but results in more `pub` removal.

There are plenty more crates to do but this seems like enough for a first PR.

r? `@compiler-errors`
</content>
</entry>
<entry>
<title>Always use ar_archive_writer for import libs</title>
<updated>2024-08-17T19:10:46+00:00</updated>
<author>
<name>Chris Denton</name>
<email>chris@chrisdenton.dev</email>
</author>
<published>2024-08-16T19:32:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0156eb57a152003c0c82552229747b3d04e1fddc'/>
<id>urn:sha1:0156eb57a152003c0c82552229747b3d04e1fddc</id>
<content type='text'>
</content>
</entry>
</feed>
