<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_mir_dataflow, branch 1.71.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.71.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.71.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-06-03T16:17:46+00:00</updated>
<entry>
<title>unique borrows are mutating uses</title>
<updated>2023-06-03T16:17:46+00:00</updated>
<author>
<name>lcnr</name>
<email>rust@lcnr.de</email>
</author>
<published>2023-05-29T15:15:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=29b922d5232c32da11623518606b4285961a19f1'/>
<id>urn:sha1:29b922d5232c32da11623518606b4285961a19f1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #111952 - cjgillot:drop-replace, r=WaffleLapkin</title>
<updated>2023-05-27T11:38:31+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2023-05-27T11:38:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ddb5424569b1d598adf9010cece8d49968c357e6'/>
<id>urn:sha1:ddb5424569b1d598adf9010cece8d49968c357e6</id>
<content type='text'>
Remove DesugaringKind::Replace.

A simple boolean flag is enough.
</content>
</entry>
<entry>
<title>Ensure Fluent messages are in alphabetical order</title>
<updated>2023-05-25T23:49:35+00:00</updated>
<author>
<name>clubby789</name>
<email>jamie@hill-daniel.co.uk</email>
</author>
<published>2023-05-23T01:51:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f97fddab91fbf290ea5b691fe355d6f915220b6e'/>
<id>urn:sha1:f97fddab91fbf290ea5b691fe355d6f915220b6e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove DesugaringKind::Replace.</title>
<updated>2023-05-25T17:40:46+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2023-05-25T17:30:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=844c1cc5fec38f691a2ffb53ef3366f25cf7b02b'/>
<id>urn:sha1:844c1cc5fec38f691a2ffb53ef3366f25cf7b02b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #110930 - b-naber:normalize-elaborate-drops, r=cjgillot</title>
<updated>2023-05-17T13:41:53+00:00</updated>
<author>
<name>Dylan DPC</name>
<email>99973273+Dylan-DPC@users.noreply.github.com</email>
</author>
<published>2023-05-17T13:41:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=828caa80a942e9e923b75e4806da93c6e85f9752'/>
<id>urn:sha1:828caa80a942e9e923b75e4806da93c6e85f9752</id>
<content type='text'>
Don't expect normalization to succeed in elaborate_drops

Fixes https://github.com/rust-lang/rust/issues/110682

This was exposed through the changes in https://github.com/rust-lang/rust/pull/109247, which causes more things to be inlined. Inlining can happen before monomorphization, so we can't expect normalization to succeed. In the elaborate_drops analysis we currently have [this call](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_mir_dataflow/src/elaborate_drops.rs#L278) to `normalize_erasing_regions`, which ICEs when normalization fails. The types are used to infer [whether the type needs a drop](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_mir_dataflow/src/elaborate_drops.rs#L374), where `needs_drop` itself [uses `try_normalize_erasing_regions`](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_middle/src/ty/util.rs#L1121).

~[`instance_mir`](https://doc.rust-lang.org/stable/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html#method.instance_mir) isn't explicit about whether it expects the instances corresponding to the `InstanceDef`s to be monomorphized (though I think in all other contexts the function is used post-monomorphization), so the use of `instance_mir` in inlining doesn't necessarily seem wrong to me.~
</content>
</entry>
<entry>
<title>Auto merge of #110820 - cjgillot:faster-dcp, r=oli-obk</title>
<updated>2023-05-10T20:54:31+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-05-10T20:54:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9a767b6b9e1e53c3cfc25103ed7c88d77ee65d5d'/>
<id>urn:sha1:9a767b6b9e1e53c3cfc25103ed7c88d77ee65d5d</id>
<content type='text'>
Optimize dataflow-const-prop place-tracking infra

Optimization opportunities found while investigating https://github.com/rust-lang/rust/pull/110719

Computing places breadth-first ensures that we create short projections before deep projections, since the former are more likely to be propagated.

The most relevant is the pre-computation of flooded places. Callgrind showed `flood_*` methods and especially `preorder_preinvoke` were especially hot. This PR attempts to pre-compute the set of `ValueIndex` that `preorder_invoke` would visit.

Using this information, we make some `PlaceIndex` inaccessible when they contain no `ValueIndex`, allowing to skip computations for those places.

cc `@jachris` as original author
</content>
</entry>
<entry>
<title>don't inline polymorphic adt instances whose fields contain projections</title>
<updated>2023-05-10T16:03:52+00:00</updated>
<author>
<name>b-naber</name>
<email>b_naber@gmx.de</email>
</author>
<published>2023-05-04T21:03:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e7a2f52ba163a47e751b6e6d666b52c2acdd0949'/>
<id>urn:sha1:e7a2f52ba163a47e751b6e6d666b52c2acdd0949</id>
<content type='text'>
in DropGlue.
</content>
</entry>
<entry>
<title>Explicitly skip arguments.</title>
<updated>2023-05-09T17:59:35+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2023-04-26T18:40:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=38612f5ec7a464709f2dabde4edb843695ec84b2'/>
<id>urn:sha1:38612f5ec7a464709f2dabde4edb843695ec84b2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Implement SSA-based reference propagation.</title>
<updated>2023-05-09T17:59:34+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2022-12-04T18:26:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=34903755701a5595ee4bab3bb89de15c5469cd3e'/>
<id>urn:sha1:34903755701a5595ee4bab3bb89de15c5469cd3e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prevent stack overflow.</title>
<updated>2023-05-09T17:27:58+00:00</updated>
<author>
<name>Camille GILLOT</name>
<email>gillot.camille@gmail.com</email>
</author>
<published>2023-05-08T08:48:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ccc1da247bf3be7e71932844484847da6e35f185'/>
<id>urn:sha1:ccc1da247bf3be7e71932844484847da6e35f185</id>
<content type='text'>
</content>
</entry>
</feed>
