<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/compiler/rustc_query_impl/src/plumbing.rs, branch 1.62.0</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=1.62.0</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=1.62.0'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2022-05-04T16:15:26+00:00</updated>
<entry>
<title>Enable tracing for all queryies</title>
<updated>2022-05-04T16:15:26+00:00</updated>
<author>
<name>Oli Scherer</name>
<email>git-spam-no-reply9815368754983@oli-obk.de</email>
</author>
<published>2022-05-04T08:30:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=0d5a738b8b715024c25c4ad973399f2e81b7577b'/>
<id>urn:sha1:0d5a738b8b715024c25c4ad973399f2e81b7577b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #94084 - Mark-Simulacrum:drop-sharded, r=cjgillot</title>
<updated>2022-02-27T14:04:07+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-02-27T14:04:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3b1fe7e7c95e14dd8a420edf2f8a160c70211e04'/>
<id>urn:sha1:3b1fe7e7c95e14dd8a420edf2f8a160c70211e04</id>
<content type='text'>
Avoid query cache sharding code in single-threaded mode

In non-parallel compilers, this is just adding needless overhead at compilation time (since there is only one shard statically anyway). This amounts to roughly ~10 seconds reduction in bootstrap time, with overall neutral (some wins, some losses) performance results.

Parallel compiler performance should be largely unaffected by this PR; sharding is kept there.
</content>
</entry>
<entry>
<title>Auto merge of #94066 - Mark-Simulacrum:factor-out-simple-def-kind, r=davidtwco</title>
<updated>2022-02-21T03:36:55+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-02-21T03:36:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=026d8ce7f5f66ba6fbb8aaf4babb533e95ee3efd'/>
<id>urn:sha1:026d8ce7f5f66ba6fbb8aaf4babb533e95ee3efd</id>
<content type='text'>
Remove SimpleDefKind

Now that rustc_query_system depends on rustc_hir, we can just directly make use of the regular DefKind.
</content>
</entry>
<entry>
<title>Delete QueryLookup</title>
<updated>2022-02-20T17:11:28+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2022-02-20T03:56:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=75ef06892089e0cf53b4a86419c7ff3b3c1f3c4c'/>
<id>urn:sha1:75ef06892089e0cf53b4a86419c7ff3b3c1f3c4c</id>
<content type='text'>
This was largely just caching the shard value at this point, which is not
particularly useful -- in the use sites the key was being hashed nearby anyway.
</content>
</entry>
<entry>
<title>Move Sharded maps into each QueryCache impl</title>
<updated>2022-02-20T17:10:46+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2022-02-20T03:44:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9deed6f74ea2df0ba08fb72342bef4eb303d0777'/>
<id>urn:sha1:9deed6f74ea2df0ba08fb72342bef4eb303d0777</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Remove SimpleDefKind</title>
<updated>2022-02-17T23:08:45+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2022-02-16T23:06:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=ddda851fd542775d936eb7fe7e684bb6f2b4bbde'/>
<id>urn:sha1:ddda851fd542775d936eb7fe7e684bb6f2b4bbde</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Move ty::print methods to Drop-based scope guards</title>
<updated>2022-02-16T22:24:23+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2022-02-16T18:04:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=976348603485b216b0d5314eca674a2b24df4c73'/>
<id>urn:sha1:976348603485b216b0d5314eca674a2b24df4c73</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #93741 - Mark-Simulacrum:global-job-id, r=cjgillot</title>
<updated>2022-02-09T18:54:30+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2022-02-09T18:54:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e7aca895980f25f6d2d3c48e10fd04656764d1e4'/>
<id>urn:sha1:e7aca895980f25f6d2d3c48e10fd04656764d1e4</id>
<content type='text'>
Refactor query system to maintain a global job id counter

This replaces the per-shard counters with a single global counter, simplifying
the JobId struct down to just a u64 and removing the need to pipe a DepKind
generic through a bunch of code. The performance implications on non-parallel
compilers are likely minimal (this switches to `Cell&lt;u64&gt;` as the backing
storage over a `u64`, but the latter was already inside a `RefCell` so it's not
really a significance divergence). On parallel compilers, the cost of a single
global u64 counter may be more significant: it adds a serialization point in
theory. On the other hand, we can imagine changing the counter to have a
thread-local component if it becomes worrisome or some similar structure.

The new design is sufficiently simpler that it warrants the potential for slight
changes down the line if/when we get parallel compilation to be more of a
default.

A u64 counter, instead of u32 (the old per-shard width), is chosen to avoid
possibly overflowing it and causing problems; it is effectively impossible that
we would overflow a u64 counter in this context.
</content>
</entry>
<entry>
<title>Switch QueryJobId to a single global counter</title>
<updated>2022-02-08T23:49:55+00:00</updated>
<author>
<name>Mark Rousskov</name>
<email>mark.simulacrum@gmail.com</email>
</author>
<published>2022-02-07T16:03:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=e240783a4d22c1e56b101ab230bee0b821065bd5'/>
<id>urn:sha1:e240783a4d22c1e56b101ab230bee0b821065bd5</id>
<content type='text'>
This replaces the per-shard counters with a single global counter, simplifying
the JobId struct down to just a u64 and removing the need to pipe a DepKind
generic through a bunch of code. The performance implications on non-parallel
compilers are likely minimal (this switches to `Cell&lt;u64&gt;` as the backing
storage over a `u64`, but the latter was already inside a `RefCell` so it's not
really a significance divergence). On parallel compilers, the cost of a single
global u64 counter may be more significant: it adds a serialization point in
theory. On the other hand, we can imagine changing the counter to have a
thread-local component if it becomes worrisome or some similar structure.

The new design is sufficiently simpler that it warrants the potential for slight
changes down the line if/when we get parallel compilation to be more of a
default.

A u64 counter, instead of u32 (the old per-shard width), is chosen to avoid
possibly overflowing it and causing problems; it is effectively impossible that
we would overflow a u64 counter in this context.
</content>
</entry>
<entry>
<title>14956 -&gt; 14952 exports</title>
<updated>2022-02-07T21:13:31+00:00</updated>
<author>
<name>klensy</name>
<email>klensy@users.noreply.github.com</email>
</author>
<published>2022-02-07T21:13:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=eb3b29fd09552abf1c00b1eea4150361ac94dc0b'/>
<id>urn:sha1:eb3b29fd09552abf1c00b1eea4150361ac94dc0b</id>
<content type='text'>
</content>
</entry>
</feed>
