<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_ssa/src/traits, branch stable</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=stable</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=stable'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-07-31T05:42:00+00:00</updated>
<entry>
<title>Rollup merge of #144232 - xacrimon:explicit-tail-call, r=WaffleLapkin</title>
<updated>2025-07-31T05:42:00+00:00</updated>
<author>
<name>Stuart Cook</name>
<email>Zalathar@users.noreply.github.com</email>
</author>
<published>2025-07-31T05:42:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8628b78f24c01026d01b82afd3ec91a2019fe647'/>
<id>urn:sha1:8628b78f24c01026d01b82afd3ec91a2019fe647</id>
<content type='text'>
Implement support for `become` and explicit tail call codegen for the LLVM backend

This PR implements codegen of explicit tail calls via `become` in `rustc_codegen_ssa` and support within the LLVM backend. Completes a task on (https://github.com/rust-lang/rust/issues/112788). This PR implements all the necessary bits to make explicit tail calls usable, other backends have received stubs for now and will ICE if you use `become` on them. I suspect there is some bikeshedding to be done on how we should go about implementing this for other backends, but it should be relatively straightforward for GCC after this is merged.

During development I also put together a POC bytecode VM based on tail call dispatch to test these changes out and analyze the codegen to make sure it generates expected assembly. That is available [here](https://github.com/xacrimon/tcvm).
</content>
</entry>
<entry>
<title>Remove support for -Zcombine-cgu</title>
<updated>2025-07-26T13:52:24+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-07-06T18:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=948f7798d70b6adb6a490b8867e155dadebd3f0e'/>
<id>urn:sha1:948f7798d70b6adb6a490b8867e155dadebd3f0e</id>
<content type='text'>
Nobody seems to actually use this, while still adding some extra
complexity to the already rather complex codegen coordinator code.
It is also not supported by any backend other than the LLVM backend.
</content>
</entry>
<entry>
<title>Implement support for explicit tail calls in the MIR block builders and the LLVM codegen backend.</title>
<updated>2025-07-25T23:02:29+00:00</updated>
<author>
<name>Joel Wejdenstål</name>
<email>joel.wejdenstal@gmail.com</email>
</author>
<published>2025-07-25T19:21:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a448837045326d7c33059dc3aa2d1d87529dcf3d'/>
<id>urn:sha1:a448837045326d7c33059dc3aa2d1d87529dcf3d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove each_linked_rlib_for_lto from CodegenContext</title>
<updated>2025-07-21T07:58:44+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-07-06T16:59:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dadc4cae501d9fa515a6cd3b7fe546db13b44a7b'/>
<id>urn:sha1:dadc4cae501d9fa515a6cd3b7fe546db13b44a7b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move exported_symbols_for_lto out of CodegenContext</title>
<updated>2025-07-21T07:58:44+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-07-06T16:06:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=1a6f941d2b1e9f9987518961d3bc49e2691aab2e'/>
<id>urn:sha1:1a6f941d2b1e9f9987518961d3bc49e2691aab2e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge modules and cached_modules for fat LTO</title>
<updated>2025-07-21T07:58:44+00:00</updated>
<author>
<name>bjorn3</name>
<email>17426603+bjorn3@users.noreply.github.com</email>
</author>
<published>2025-07-04T07:42:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=112799e63772988d874287979b5b4cc8b27668ab'/>
<id>urn:sha1:112799e63772988d874287979b5b4cc8b27668ab</id>
<content type='text'>
The modules vec can already contain serialized modules and there is no
need to distinguish between cached and non-cached cgus at LTO time.
</content>
</entry>
<entry>
<title>Rollup merge of #143388 - bjorn3:lto_refactors, r=compiler-errors</title>
<updated>2025-07-17T01:58:28+00:00</updated>
<author>
<name>León Orell Valerian Liehr</name>
<email>me@fmease.dev</email>
</author>
<published>2025-07-17T01:58:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=be5f8f299dce5c04e2a644546e780d8a07b0b14f'/>
<id>urn:sha1:be5f8f299dce5c04e2a644546e780d8a07b0b14f</id>
<content type='text'>
Various refactors to the LTO handling code

In particular reducing the sharing of code paths between fat and thin-LTO and making the fat LTO implementation more self-contained. This also moves some autodiff handling out of cg_ssa into cg_llvm given that Enzyme only works with LLVM anyway and an implementation for another backend may do things entirely differently. This will also make it a bit easier to split LTO handling out of the coordinator thread main loop into a separate loop, which should reduce the complexity of the coordinator thread.
</content>
</entry>
<entry>
<title>Eliminate all direct uses of LLVMMDStringInContext2</title>
<updated>2025-07-14T08:27:08+00:00</updated>
<author>
<name>Oli Scherer</name>
<email>github333195615777966@oli-obk.de</email>
</author>
<published>2025-07-09T09:48:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7f95f042677f86df55da58cdebe9ce31a1e928a8'/>
<id>urn:sha1:7f95f042677f86df55da58cdebe9ce31a1e928a8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #143810 - matthiaskrgr:rollup-iw7a23z, r=matthiaskrgr</title>
<updated>2025-07-12T10:46:43+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-12T10:46:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=915e5352448afb3c24f89117468935283bc7d2cf'/>
<id>urn:sha1:915e5352448afb3c24f89117468935283bc7d2cf</id>
<content type='text'>
Rollup of 9 pull requests

Successful merges:

 - rust-lang/rust#143403 (Port several trait/coherence-related attributes the new attribute system)
 - rust-lang/rust#143633 (fix: correct assertion to check for 'noinline' attribute presence before removal)
 - rust-lang/rust#143647 (Clarify and expand documentation for std::sys_common dependency structure)
 - rust-lang/rust#143716 (compiler: doc/comment some codegen-for-functions interfaces)
 - rust-lang/rust#143747 (Add target maintainer information for aarch64-unknown-linux-musl)
 - rust-lang/rust#143759 (Fix typos in function names in the `target_feature` test)
 - rust-lang/rust#143767 (Bump `src/tools/x` to Edition 2024 and some cleanups)
 - rust-lang/rust#143769 (Remove support for SwitchInt edge effects in backward dataflow)
 - rust-lang/rust#143770 (build-helper: clippy fixes)

r? `@ghost`
`@rustbot` modify labels: rollup
</content>
</entry>
<entry>
<title>Auto merge of #143766 - matthiaskrgr:rollup-0x7t69s, r=matthiaskrgr</title>
<updated>2025-07-12T07:44:04+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-12T07:44:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=2f9c9cede68be26774ea44efc79d0391f1c58af2'/>
<id>urn:sha1:2f9c9cede68be26774ea44efc79d0391f1c58af2</id>
<content type='text'>
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#142391 (rust: library: Add `setsid` method to `CommandExt` trait)
 - rust-lang/rust#143302 (`tests/ui`: A New Order [27/N])
 - rust-lang/rust#143303 (`tests/ui`: A New Order [28/28] FINAL PART)
 - rust-lang/rust#143568 (std: sys: net: uefi: tcp4: Add timeout support)
 - rust-lang/rust#143611 (Mention more APIs in `ParseIntError` docs)
 - rust-lang/rust#143661 (chore: Improve how the other suggestions message gets rendered)
 - rust-lang/rust#143708 (fix: Include frontmatter in -Zunpretty output )
 - rust-lang/rust#143718 (Make UB transmutes really UB in LLVM)

r? `@ghost`
`@rustbot` modify labels: rollup

try-job: i686-gnu-nopt-1
try-job: test-various
</content>
</entry>
</feed>
