<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_llvm/src, branch cargo_update</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=cargo_update</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=cargo_update'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-09-26T16:11:11+00:00</updated>
<entry>
<title>Rollup merge of #146778 - nikic:allocator-shim-attributes, r=jackh726</title>
<updated>2025-09-26T16:11:11+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-09-26T16:11:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=35f443d31822c0f36e5033561f716d84b484c1db'/>
<id>urn:sha1:35f443d31822c0f36e5033561f716d84b484c1db</id>
<content type='text'>
Use standard attribute logic for allocator shim

Use llfn_attrs_from_instance() to generate the attributes for the allocator shim. This ensures that we generate all the usual attributes (and don't get to find out one-by-one that a certain attribute is important for a certain target). Additionally this will enable emitting the allocator-specific attributes (not included here).

This change is quite awkward because the allocator shim uses SimpleCx, while llfn_attrs_from_instance uses CodegenCx. I've switched it to use SimpleCx plus tcx/sess arguments where necessary. If there's a simpler way to do this, I'd love to know about it...
</content>
</entry>
<entry>
<title>Rollup merge of #146704 - jdonszelmann:port-debug-visualizer, r=petrochenkov</title>
<updated>2025-09-26T16:11:09+00:00</updated>
<author>
<name>Matthias Krüger</name>
<email>476013+matthiaskrgr@users.noreply.github.com</email>
</author>
<published>2025-09-26T16:11:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d09bb02eb50c5b7137eb9a14f546540fa24083cf'/>
<id>urn:sha1:d09bb02eb50c5b7137eb9a14f546540fa24083cf</id>
<content type='text'>
port `#[debugger_visualizer]` to the new attribute system
</content>
</entry>
<entry>
<title>Rollup merge of #147015 - Zalathar:dispose-tm, r=lqd</title>
<updated>2025-09-25T10:32:00+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-25T10:32:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=59866ef3058654a81a44e2869d6647d8ba39c0fe'/>
<id>urn:sha1:59866ef3058654a81a44e2869d6647d8ba39c0fe</id>
<content type='text'>
Use `LLVMDisposeTargetMachine`

After bumping the minimum LLVM version to 20 (rust-lang/rust#145071), we no longer need to run any custom code when disposing of a TargetMachine, so we can just use the upstream LLVM-C function.
</content>
</entry>
<entry>
<title>Rollup merge of #146667 - calebzulawski:simd-mono-lane-limit, r=lcnr,RalfJung</title>
<updated>2025-09-25T10:31:53+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-25T10:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=fab06469ee33664739620ede53ed18b8c3c40644'/>
<id>urn:sha1:fab06469ee33664739620ede53ed18b8c3c40644</id>
<content type='text'>
Add an attribute to check the number of lanes in a SIMD vector after monomorphization

Allows std::simd to drop the `LaneCount&lt;N&gt;: SupportedLaneCount` trait and maintain good error messages.

Also, extends rust-lang/rust#145967 by including spans in layout errors for all ADTs.

r? ``@RalfJung``

cc ``@workingjubilee`` ``@programmerjake``
</content>
</entry>
<entry>
<title>Use `LLVMDisposeTargetMachine`</title>
<updated>2025-09-25T08:10:55+00:00</updated>
<author>
<name>Zalathar</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-09-25T08:10:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=85018f09f67bd54868fe12a4632bbd637a474853'/>
<id>urn:sha1:85018f09f67bd54868fe12a4632bbd637a474853</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use standard attribute logic for allocator shim</title>
<updated>2025-09-25T08:04:40+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-09-19T12:53:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d226e7aa93425ba2090f423642341a99ab047838'/>
<id>urn:sha1:d226e7aa93425ba2090f423642341a99ab047838</id>
<content type='text'>
Use llfn_attrs_from_instance() to generate the attributes for the
allocator shim. This ensures that we generate all the usual
attributes (and don't get to find out one-by-one that a certain
attribute is important for a certain target). Additionally this
will enable emitting the allocator-specific attributes (not
included here).

This change is quite awkward because the allocator shim uses
SimpleCx, while llfn_attrs_from_instance uses CodegenCx. I've
switched it to use SimpleCx plus tcx/sess arguments where necessary.
If there's a simpler way to do this, I'd love to know about it...
</content>
</entry>
<entry>
<title>Auto merge of #146338 - CrooseGit:dev/reucru01/AArch64-enable-GCS, r=Urgau,davidtwco</title>
<updated>2025-09-24T13:04:19+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-24T13:04:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=15283f6fe95e5b604273d13a428bab5fc0788f5a'/>
<id>urn:sha1:15283f6fe95e5b604273d13a428bab5fc0788f5a</id>
<content type='text'>
Extends AArch64 branch protection support to include GCS

Extends existing support for AArch64 branch protection to include support for [Guarded Control Stacks](https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/arm-a-profile-architecture-2022#guarded-control-stack-gcs:~:text=Extraction%20or%20tracking.-,Guarded%20Control%20Stack%20(GCS),-With%20the%202022).
</content>
</entry>
<entry>
<title>Including spans in layout errors for all ADTs</title>
<updated>2025-09-24T02:15:06+00:00</updated>
<author>
<name>Caleb Zulawski</name>
<email>caleb.zulawski@gmail.com</email>
</author>
<published>2025-09-24T02:14:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=60548ffaa3dafec019e52f39ab7a075d3f11e24e'/>
<id>urn:sha1:60548ffaa3dafec019e52f39ab7a075d3f11e24e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add an attribute to check the number of lanes in a SIMD vector after monomorphization</title>
<updated>2025-09-24T00:47:34+00:00</updated>
<author>
<name>Caleb Zulawski</name>
<email>caleb.zulawski@gmail.com</email>
</author>
<published>2025-09-16T06:23:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f5c6c9542ecfab74e654f9b7f1150d486560ae43'/>
<id>urn:sha1:f5c6c9542ecfab74e654f9b7f1150d486560ae43</id>
<content type='text'>
Unify zero-length and oversized SIMD errors
</content>
</entry>
<entry>
<title>Auto merge of #146317 - saethlin:panic=immediate-abort, r=nnethercote</title>
<updated>2025-09-23T06:37:03+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-09-23T06:37:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=40560823602064f4c726aea3e15e104449e1a392'/>
<id>urn:sha1:40560823602064f4c726aea3e15e104449e1a392</id>
<content type='text'>
Add panic=immediate-abort

MCP: https://github.com/rust-lang/compiler-team/issues/909

This adds a new panic strategy, `-Cpanic=immediate-abort`. This panic strategy essentially just codifies use of `-Zbuild-std-features=panic_immediate_abort`. This PR is intended to just set up infrastructure, and while it will change how the compiler is invoked for users of the feature, there should be no other impacts.

In many parts of the compiler, `PanicStrategy::ImmediateAbort` behaves just like `PanicStrategy::Abort`, because actually most parts of the compiler just mean to ask "can this unwind?" so I've added a helper function so we can say `sess.panic_strategy().unwinds()`.

The panic and unwind strategies have some level of compatibility, which mostly means that we can pre-compile the sysroot with unwinding panics then the sysroot can be linked with aborting panics later. The immediate-abort strategy is all-or-nothing, enforced by `compiler/rustc_metadata/src/dependency_format.rs` and this is tested for in `tests/ui/panic-runtime/`. We could _technically_ be more compatible with the other panic strategies, but immediately-aborting panics primarily exist for users who want to eliminate all the code size responsible for the panic runtime. I'm open to other use cases if people want to present them, but not right now. This PR is already large.

`-Cpanic=immediate-abort` sets both `cfg(panic = "immediate-abort")` _and_ `cfg(panic = "abort")`. bjorn3 pointed out that people may be checking for the abort cfg to ask if panics will unwind, and also the sysroot feature this is replacing used to require `-Cpanic=abort` so this seems like a good back-compat step. At least for the moment. Unclear if this is a good idea indefinitely. I can imagine this being confusing.

The changes to the standard library attributes are purely mechanical. Apart from that, I removed an `unsafe` we haven't needed for a while since the `abort` intrinsic became safe, and I've added a helpful diagnostic for people trying to use the old feature.

To test that `-Cpanic=immediate-abort` conflicts with other panic strategies, I've beefed up the core-stubs infrastructure a bit. There is now a separate attribute to set flags on it.

I've added a test that this produces the desired codegen, called `tests/run-make-cargo/panic-immediate-abort-codegen/` and also a separate run-make-cargo test that checks that we can build a binary.
</content>
</entry>
</feed>
