<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_codegen_ssa/src/mir/operand.rs, branch 1.90.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.90.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.90.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-07-27T06:37:55+00:00</updated>
<entry>
<title>Auto merge of #144347 - scottmcm:ssa-enums-v0, r=WaffleLapkin</title>
<updated>2025-07-27T06:37:55+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-27T06:37:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=86ef32029427cfc4161a3fd7a51992302f7c5552'/>
<id>urn:sha1:86ef32029427cfc4161a3fd7a51992302f7c5552</id>
<content type='text'>
No longer need `alloca`s for consuming `Result&lt;!, i32&gt;` and similar

In optimized builds GVN gets rid of these already, but in `opt-level=0` we actually make `alloca`s for this, which particularly impacts `?`-style things that use actually-only-one-variant types like this.

While doing so, rewrite `LocalAnalyzer::process_place` to be non-recursive, solving a 6+ year old FIXME.

r? codegen
</content>
</entry>
<entry>
<title>Auto merge of #143860 - scottmcm:transmute-always-rvalue, r=WaffleLapkin</title>
<updated>2025-07-26T22:45:18+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-26T22:45:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=283a0746a244a88503fed61844f44df925ccdbb6'/>
<id>urn:sha1:283a0746a244a88503fed61844f44df925ccdbb6</id>
<content type='text'>
Let `codegen_transmute_operand` just handle everything

When combined with rust-lang/rust#143720, this means `rvalue_creates_operand` can just return `true` for *every* `Rvalue`.  (A future PR could consider removing it, though just letting it optimize out is fine for now.)

It's nicer anyway, IMHO, because it avoids needing the layout checks to be consistent in the two places, and thus is an overall reduction in code.  Plus it's a more helpful building block when used in other places this way.

(TBH, it probably would have been better to have it this way the whole time, but I clearly didn't understand `rvalue_creates_operand` when I originally wrote rust-lang/rust#109843.)
</content>
</entry>
<entry>
<title>Remove useless lifetime parameter.</title>
<updated>2025-07-23T23:54:37+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2025-07-03T18:41:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0460c92d527dbada3fde227d3f01e6d1e132a186'/>
<id>urn:sha1:0460c92d527dbada3fde227d3f01e6d1e132a186</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Give an AllocId to ConstValue::Slice.</title>
<updated>2025-07-23T23:54:37+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2023-10-13T20:20:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9ff071219bca913e45235568defadd5ab840c50a'/>
<id>urn:sha1:9ff071219bca913e45235568defadd5ab840c50a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Let `codegen_transmute_operand` just handle everything</title>
<updated>2025-07-23T15:25:13+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-07-12T23:38:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=231dddde3e686c0903a28ce605b8c5d505a2ba21'/>
<id>urn:sha1:231dddde3e686c0903a28ce605b8c5d505a2ba21</id>
<content type='text'>
When combined with 143720, this means `rvalue_creates_operand` can just return `true` for *every* `Rvalue`.  (A future PR could consider removing it, though just letting it optimize out is fine for now.)

It's nicer anyway, IMHO, because it avoids needing the layout checks to be consistent in the two places, and thus is an overall reduction in code.  Plus it's a more helpful building block when used in other places this way.

</content>
</entry>
<entry>
<title>No longer need `alloca`s for consuming `Result&lt;!, i32&gt;` and similar</title>
<updated>2025-07-23T07:09:36+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-07-23T06:23:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6a5c7e04156125cb8c1ff78eae95e6ff076f51ed'/>
<id>urn:sha1:6a5c7e04156125cb8c1ff78eae95e6ff076f51ed</id>
<content type='text'>
In optimized builds GVN gets rid of these already, but in `opt-level=0` we actually make `alloca`s for this, which particularly impacts `?`-style things that use actually-only-one-variant types like this.

</content>
</entry>
<entry>
<title>Ban projecting into SIMD types [MCP838]</title>
<updated>2025-07-20T17:22:09+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-03-07T03:13:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=41ce1ed252f194756fb2f3e3e92bbdfb3940088d'/>
<id>urn:sha1:41ce1ed252f194756fb2f3e3e92bbdfb3940088d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve comments inside `codegen_get_discr`</title>
<updated>2025-07-16T05:30:46+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-07-16T05:28:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4fa23d96bc9334716b8f50511f5a920b46d349dd'/>
<id>urn:sha1:4fa23d96bc9334716b8f50511f5a920b46d349dd</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify codegen for niche-encoded variant tests</title>
<updated>2025-07-12T11:53:24+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2025-07-11T12:07:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=d5bcfb334b616e01c3589ba7b1697c7ebc47a024'/>
<id>urn:sha1:d5bcfb334b616e01c3589ba7b1697c7ebc47a024</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #142911 - mejrs:unsized, r=compiler-errors</title>
<updated>2025-07-11T05:27:32+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-07-11T05:27:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=855e0fe46e68d94e9f6147531b75ac2d488c548e'/>
<id>urn:sha1:855e0fe46e68d94e9f6147531b75ac2d488c548e</id>
<content type='text'>
Remove support for dynamic allocas

Followup to rust-lang/rust#141811
</content>
</entry>
</feed>
