<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_ty_utils/src, branch 1.86.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.86.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.86.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2025-03-07T20:53:23+00:00</updated>
<entry>
<title>Don't infer unwinding of virtual calls based on the function attributes</title>
<updated>2025-03-07T20:53:23+00:00</updated>
<author>
<name>DianQK</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2025-02-27T01:22:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e3e34e3d8a43742a79b2a010ffeda1d06090de23'/>
<id>urn:sha1:e3e34e3d8a43742a79b2a010ffeda1d06090de23</id>
<content type='text'>
(cherry picked from commit fbe0075a86601e490ae217f3b291768759c39930)
</content>
</entry>
<entry>
<title>Don't infer attributes of virtual calls based on the function body</title>
<updated>2025-03-07T20:53:23+00:00</updated>
<author>
<name>DianQK</name>
<email>dianqk@dianqk.net</email>
</author>
<published>2025-02-26T11:54:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8f9c7df8e6fe5510dfd8a5a5e4a94ec822871629'/>
<id>urn:sha1:8f9c7df8e6fe5510dfd8a5a5e4a94ec822871629</id>
<content type='text'>
(cherry picked from commit 8089fce101f4ac2ed68c8df080c61102b0210429)
</content>
</entry>
<entry>
<title>Auto merge of #136593 - lukas-code:ty-value-perf, r=oli-obk</title>
<updated>2025-02-13T15:27:30+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-02-13T15:27:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c241e146506600f5ab7f4026ff015df8a658400e'/>
<id>urn:sha1:c241e146506600f5ab7f4026ff015df8a658400e</id>
<content type='text'>
valtree performance tuning

Summary: This PR makes type checking of code with many type-level constants faster.

After https://github.com/rust-lang/rust/pull/136180 was merged, we observed a small perf regression (https://github.com/rust-lang/rust/pull/136318#issuecomment-2635562821). This happened because that PR introduced additional copies in the fast reject code path for consts, which is very hot for certain crates: https://github.com/rust-lang/rust/blob/6c1d960d88dd3755548b3818630acb63fa98187e/compiler/rustc_type_ir/src/fast_reject.rs#L486-L487

This PR improves the performance again by properly interning the valtrees so that copying and comparing them becomes faster. This will become especially useful with `feature(adt_const_params)`, so the fast reject code doesn't have to do a deep compare of the valtrees.

Note that we can't just compare the interned consts themselves in the fast reject, because sometimes `'static` lifetimes in the type are be replaced with inference variables (due to canonicalization) on one side but not the other.

A less invasive alternative that I considered is simply avoiding copies introduced by https://github.com/rust-lang/rust/pull/136180 and comparing the valtrees it in-place (see commit: https://github.com/rust-lang/rust/commit/9e91e50ac5920f0b9b4a3b1e0880c85336ba5c64 / perf results: https://github.com/rust-lang/rust/pull/136593#issuecomment-2642303245), however that was still measurably slower than interning.

There are some minor regressions in secondary benchmarks: These happen due to changes in memory allocations and seem acceptable to me. The crates that make heavy use of valtrees show no significant changes in memory usage.
</content>
</entry>
<entry>
<title>Auto merge of #136954 - jhpratt:rollup-koefsot, r=jhpratt</title>
<updated>2025-02-13T02:13:24+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-02-13T02:13:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9fcc9cf4a202aadfe1f44722b39c83536eba3dba'/>
<id>urn:sha1:9fcc9cf4a202aadfe1f44722b39c83536eba3dba</id>
<content type='text'>
Rollup of 12 pull requests

Successful merges:

 - #134090 (Stabilize target_feature_11)
 - #135025 (Cast allocas to default address space)
 - #135841 (Reject `?Trait` bounds in various places where we unconditionally warned since 1.0)
 - #136217 (Mark condition/carry bit as clobbered in C-SKY inline assembly)
 - #136699 (std: replace the `FromInner` implementation for addresses with private conversion functions)
 - #136806 (Fix cycle when debug-printing opaque types from RPITIT)
 - #136807 (compiler: internally merge `PtxKernel` into `GpuKernel`)
 - #136818 (Implement `read*_exact` for `std:io::repeat`)
 - #136927 (Correctly escape hashtags when running `invalid_rust_codeblocks` lint)
 - #136937 (Update books)
 - #136945 (Add diagnostic item for `std::io::BufRead`)
 - #136947 (Reinstate nnethercote in the review rotation.)

r? `@ghost`
`@rustbot` modify labels: rollup
</content>
</entry>
<entry>
<title>Rollup merge of #136807 - workingjubilee:merge-gpus-to-get-the-arcradeongeforce, r=bjorn3</title>
<updated>2025-02-13T01:10:00+00:00</updated>
<author>
<name>Jacob Pratt</name>
<email>jacob@jhpratt.dev</email>
</author>
<published>2025-02-13T01:10:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=33c186baf7f06ea7a5e7470b8a441af399d82a56'/>
<id>urn:sha1:33c186baf7f06ea7a5e7470b8a441af399d82a56</id>
<content type='text'>
compiler: internally merge `PtxKernel` into `GpuKernel`

r? ``@bjorn3`` for review
</content>
</entry>
<entry>
<title>intern valtrees</title>
<updated>2025-02-12T23:38:17+00:00</updated>
<author>
<name>Lukas Markeffsky</name>
<email>@</email>
</author>
<published>2025-02-07T18:33:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=885e0f1b96112aae9fbdd97d08b69ddc8eb01b1e'/>
<id>urn:sha1:885e0f1b96112aae9fbdd97d08b69ddc8eb01b1e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #135994 - 1c3t3a:rename-unsafe-ptr, r=oli-obk</title>
<updated>2025-02-12T23:18:14+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2025-02-12T23:18:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6dce9f8c2d8dde4c9ea20bab981cd70229c37fdc'/>
<id>urn:sha1:6dce9f8c2d8dde4c9ea20bab981cd70229c37fdc</id>
<content type='text'>
Rename rustc_middle::Ty::is_unsafe_ptr to is_raw_ptr

The wording unsafe pointer is less common and not mentioned in a lot of places, instead this is usually called a "raw pointer". For the sake of uniformity, we rename this method.
This came up during the review of
https://github.com/rust-lang/rust/pull/134424.

r? `@Noratrieb`
</content>
</entry>
<entry>
<title>compiler: die immediately instead of handling unknown target codegen</title>
<updated>2025-02-10T19:04:31+00:00</updated>
<author>
<name>Jubilee Young</name>
<email>workingjubilee@gmail.com</email>
</author>
<published>2025-02-10T18:30:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=17716be86e36720885a9918a1e08da7a5669ceca'/>
<id>urn:sha1:17716be86e36720885a9918a1e08da7a5669ceca</id>
<content type='text'>
We cannot produce anything useful if asked to compile unknown targets.
We should handle the error immediately at the point of discovery instead
of propagating it upward, and preferably in the simplest way: Die.

This allows cleaning up our "error-handling" spread across 5 crates.
</content>
</entry>
<entry>
<title>Rename rustc_middle::Ty::is_unsafe_ptr to is_raw_ptr</title>
<updated>2025-02-10T12:49:18+00:00</updated>
<author>
<name>Bastian Kersting</name>
<email>bkersting@google.com</email>
</author>
<published>2025-01-24T14:08:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f842ee824534e2dbf3c2976f8007890b2238e3c5'/>
<id>urn:sha1:f842ee824534e2dbf3c2976f8007890b2238e3c5</id>
<content type='text'>
The wording unsafe pointer is less common and not mentioned in a lot of
places, instead this is usually called a "raw pointer". For the sake of
uniformity, we rename this method.
This came up during the review of
https://github.com/rust-lang/rust/pull/134424.
</content>
</entry>
<entry>
<title>compiler: internally merge `Conv::PtxKernel` into `GpuKernel`</title>
<updated>2025-02-10T07:14:55+00:00</updated>
<author>
<name>Jubilee Young</name>
<email>workingjubilee@gmail.com</email>
</author>
<published>2025-02-10T07:05:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e11e2b4d091635fad78d25c9ba444627ca094677'/>
<id>urn:sha1:e11e2b4d091635fad78d25c9ba444627ca094677</id>
<content type='text'>
It is speculated that these two can be conceptually merged, and it can
start by ripping out rustc's notion of the PtxKernel call convention.
Leave the ExternAbi for now, but the nvptx target now should see it as
just a different way to spell Conv::GpuKernel.
</content>
</entry>
</feed>
