<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/librustc_mir/monomorphize, branch master</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=master</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2020-08-30T15:45:07+00:00</updated>
<entry>
<title>mv compiler to compiler/</title>
<updated>2020-08-30T15:45:07+00:00</updated>
<author>
<name>mark</name>
<email>markm@cs.wisc.edu</email>
</author>
<published>2020-08-28T03:58:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=9e5f7d5631b8f4009ac1c693e585d4b7108d4275'/>
<id>urn:sha1:9e5f7d5631b8f4009ac1c693e585d4b7108d4275</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Auto merge of #74275 - wesleywiser:break_up_partitioning_rs, r=pnkfelix</title>
<updated>2020-08-25T18:52:11+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2020-08-25T18:52:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8ba22504e8e5dcbbe136d97f63c1280dabc523d0'/>
<id>urn:sha1:8ba22504e8e5dcbbe136d97f63c1280dabc523d0</id>
<content type='text'>
Refactor the partitioning module to make it easier to introduce new algorithms

I've split the `librustc_mir::monomorphize::partitioning` module into a few files and introduced a `Partitioner` trait which allows us to decouple the partitioning algorithm from the code which integrates it into the query system. This should allow us to introduce new partitioning algorithms much more easily. I've also gone ahead and added a `-Z` flag to control which algorithm is used (currently there is only the `default`).

I left a few comments in places where things might be improved further.

r? @pnkfelix cc @rust-lang/wg-incr-comp
</content>
</entry>
<entry>
<title>hir: consistent use and naming of lang items</title>
<updated>2020-08-24T11:17:51+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-08-18T10:47:27+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6cc268e316d37d97fbdda6c1bf3e5a58dea470fe'/>
<id>urn:sha1:6cc268e316d37d97fbdda6c1bf3e5a58dea470fe</id>
<content type='text'>
This commit adjusts the naming of various lang items so that they are
consistent and don't include prefixes containing the target or
"LangItem". In addition, lang item variants are no longer exported from
the `lang_items` module.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>Add partitioning -Z option to control which partitioning scheme is used</title>
<updated>2020-08-22T00:03:30+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2020-07-12T02:32:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=98b943e7d821aff17fefbf1a094503f9ae172a4a'/>
<id>urn:sha1:98b943e7d821aff17fefbf1a094503f9ae172a4a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Split partitioning.rs into a module</title>
<updated>2020-08-22T00:03:18+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2020-07-09T02:16:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5d501f9cd21da6a175a51341ffdd83e7896c01e2'/>
<id>urn:sha1:5d501f9cd21da6a175a51341ffdd83e7896c01e2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add a CGU partitioning trait</title>
<updated>2020-08-22T00:02:48+00:00</updated>
<author>
<name>Wesley Wiser</name>
<email>wwiser@gmail.com</email>
</author>
<published>2020-08-21T23:28:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=8dea3088c6f36455a6d0a2eb7eaf7a81414ce967'/>
<id>urn:sha1:8dea3088c6f36455a6d0a2eb7eaf7a81414ce967</id>
<content type='text'>
This will allow us to prototype different partitioning schemes without
adding a lot of extra conditionals everywhere.
</content>
</entry>
<entry>
<title>polymorphize: ∃ used param ∈ predicate → all used</title>
<updated>2020-08-17T13:13:58+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-08-16T15:35:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=5703b2863e1b4b815007b5a3380734634acd1f37'/>
<id>urn:sha1:5703b2863e1b4b815007b5a3380734634acd1f37</id>
<content type='text'>
This commit modifies polymorphization's handling of predicates so that
if any generic parameter is used in a predicate then all parameters in
that predicate are used.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>polymorphize: `I` used if `T` used in `I: Foo&lt;T&gt;`</title>
<updated>2020-08-14T22:01:14+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-08-14T11:33:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=bf3ef26713b8208e0127f4c51725897dbcd11bd9'/>
<id>urn:sha1:bf3ef26713b8208e0127f4c51725897dbcd11bd9</id>
<content type='text'>
This commit adjusts polymorphization's handling of predicates so that
after ensuring that `T` is used in `I: Foo&lt;T&gt;` if `I` is used, it now
ensures that `I` is used if `T` is used in `I: Foo&lt;T&gt;`. This is
necessary to mark generic parameters that only exist in impl parameters
as used - thereby avoiding symbol clashes when using the new mangling
scheme.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>polymorphize: constrain unevaluated const handling</title>
<updated>2020-08-10T12:23:19+00:00</updated>
<author>
<name>David Wood</name>
<email>david@davidtw.co</email>
</author>
<published>2020-08-09T10:22:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=20f4e168249ca0828b7297942d47040c59376fbe'/>
<id>urn:sha1:20f4e168249ca0828b7297942d47040c59376fbe</id>
<content type='text'>
This commit constrains the support added for handling unevaluated consts
in polymorphization (introduced in #75260) by:

- Skipping associated constants as this causes cycle errors.
- Skipping promoted constants when they contain `Self` as this ensures
  `T` is used in constants of the form `&lt;Self as Foo&lt;T&gt;&gt;`.

Signed-off-by: David Wood &lt;david@davidtw.co&gt;
</content>
</entry>
<entry>
<title>Auto merge of #75260 - davidtwco:polymorphization-promoted-substs, r=lcnr</title>
<updated>2020-08-08T15:57:12+00:00</updated>
<author>
<name>bors</name>
<email>bors@rust-lang.org</email>
</author>
<published>2020-08-08T15:57:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=3f091baba4fa656adb4c1a57b64aa831002d801d'/>
<id>urn:sha1:3f091baba4fa656adb4c1a57b64aa831002d801d</id>
<content type='text'>
polymorphize: unevaluated constants

This PR makes polymorphization visit the promoted MIR of unevaluated constants with available promoted MIR instead of visiting the substitutions of that constant - which will mark all of the generic parameters as used; in addition polymorphization will now visit non-promoted unevaluated constants rather than visit their substs.

r? @lcnr
</content>
</entry>
</feed>
