<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_data_structures/src, branch 1.68.2</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.68.2</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.68.2'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-01-21T14:18:17+00:00</updated>
<entry>
<title>Auto merge of #106977 - michaelwoerister:unord_id_collections, r=oli-obk</title>
<updated>2023-01-21T14:18:17+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-01-21T14:18:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=005fc0f00f2d4ceaf523b67a8f9c5665b8ac5baf'/>
<id>urn:sha1:005fc0f00f2d4ceaf523b67a8f9c5665b8ac5baf</id>
<content type='text'>
Use UnordMap and UnordSet for id collections (DefIdMap, LocalDefIdMap, etc)

This PR changes the `rustc_data_structures::define_id_collections!` macro to use `UnordMap` and `UnordSet` instead of `FxHashMap` and `FxHashSet`. This should account for a large portion of hash-maps being used in places where they can cause trouble.

The changes required are moderate but non-zero:
- In some places the collections are extracted into sorted vecs.
- There are a few instances where for-loops have been changed to extends.

~~Let's see what the performance impact is. With a bit more refactoring, we might be able to get rid of some of the additional sorting -- but the change set is already big enough. Unless there's a performance impact, I'd like to do further changes in subsequent PRs.~~

Performance does not seem to be negatively affected ([perf-run here](https://github.com/rust-lang/rust/pull/106977#issuecomment-1396776699)).

Part of [MCP 533](https://github.com/rust-lang/compiler-team/issues/533).

r? `@ghost`
</content>
</entry>
<entry>
<title>Auto merge of #106976 - tmiasko:borrowck-lazy-dominators, r=cjgillot</title>
<updated>2023-01-21T11:02:29+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-01-21T11:02:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=21f683935257713eae8549e8b328367006097053'/>
<id>urn:sha1:21f683935257713eae8549e8b328367006097053</id>
<content type='text'>
Lazy dominator tree construction in borrowck

Motivated by the observation that sometimes constructed dominator tree was never queried.
</content>
</entry>
<entry>
<title>Auto merge of #106090 - WaffleLapkin:dereffffffffff, r=Nilstrieb</title>
<updated>2023-01-20T04:52:28+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2023-01-20T04:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=56ee85274e5a3a4dda92f3bf73d1664c74ff9c15'/>
<id>urn:sha1:56ee85274e5a3a4dda92f3bf73d1664c74ff9c15</id>
<content type='text'>
Remove some `ref` patterns from the compiler

Previous PR: https://github.com/rust-lang/rust/pull/105368

r? `@Nilstrieb`
</content>
</entry>
<entry>
<title>Clean up and document unord collections a bit.</title>
<updated>2023-01-19T16:37:59+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2023-01-19T16:37:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=f219771961c94f218d23bfab66aa678c48840fc4'/>
<id>urn:sha1:f219771961c94f218d23bfab66aa678c48840fc4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rollup merge of #107037 - tmiasko:rank, r=oli-obk</title>
<updated>2023-01-19T10:19:36+00:00</updated>
<author>
<name>Guillaume Gomez</name>
<email>guillaume1.gomez@gmail.com</email>
</author>
<published>2023-01-19T10:19:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=dee88e0fa2a9225fa20222b694523a798d5c4c52'/>
<id>urn:sha1:dee88e0fa2a9225fa20222b694523a798d5c4c52</id>
<content type='text'>
Fix Dominators::rank_partial_cmp to match documentation

The only use site is also updated accordingly and there is no change in end-to-end behaviour.
</content>
</entry>
<entry>
<title>Allow for more efficient sorting when exporting Unord collections.</title>
<updated>2023-01-19T09:40:54+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2023-01-18T09:47:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=72ee14ce3960ca02ba4f4a19b84bf9c27ec6de9d'/>
<id>urn:sha1:72ee14ce3960ca02ba4f4a19b84bf9c27ec6de9d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use UnordMap instead of FxHashMap in define_id_collections!().</title>
<updated>2023-01-19T09:40:47+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2023-01-17T11:05:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=c3d25731207e466fc20b00124a5aadd435d3b885'/>
<id>urn:sha1:c3d25731207e466fc20b00124a5aadd435d3b885</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use UnordSet instead of FxHashSet in define_id_collections!().</title>
<updated>2023-01-19T09:19:07+00:00</updated>
<author>
<name>Michael Woerister</name>
<email>michaelwoerister@posteo</email>
</author>
<published>2022-12-02T15:27:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8a1de57a4aaf4ff13d20fdbc162064f237bb7679'/>
<id>urn:sha1:8a1de57a4aaf4ff13d20fdbc162064f237bb7679</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Also remove `#![feature(control_flow_enum)]` where possible</title>
<updated>2023-01-18T18:22:21+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2023-01-18T18:22:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=7d57685682778900cb3b8d57605a143d402b8d0c'/>
<id>urn:sha1:7d57685682778900cb3b8d57605a143d402b8d0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix Dominators::rank_partial_cmp to match documentation</title>
<updated>2023-01-18T16:11:43+00:00</updated>
<author>
<name>Tomasz Miąsko</name>
<email>tomasz.miasko@gmail.com</email>
</author>
<published>2023-01-18T00:00:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=b8c5821ad8bd4ae9da7b157d9189e2bc1bfe788e'/>
<id>urn:sha1:b8c5821ad8bd4ae9da7b157d9189e2bc1bfe788e</id>
<content type='text'>
The only use site is also updated accordingly and there is no change in
end-to-end behaviour.
</content>
</entry>
</feed>
