<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rust/src/test/codegen/slice-iter-len-eq-zero.rs, branch try</title>
<subtitle>https://github.com/rust-lang/rust
</subtitle>
<id>http://git.dreamy.place/mirrors/rust/atom?h=try</id>
<link rel='self' href='http://git.dreamy.place/mirrors/rust/atom?h=try'/>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/'/>
<updated>2023-01-11T09:32:08+00:00</updated>
<entry>
<title>Move /src/test to /tests</title>
<updated>2023-01-11T09:32:08+00:00</updated>
<author>
<name>Albert Larsan</name>
<email>74931857+albertlarsan68@users.noreply.github.com</email>
</author>
<published>2023-01-05T08:13:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=cf2dff2b1e3fa55fa5415d524200070d0d7aacfe'/>
<id>urn:sha1:cf2dff2b1e3fa55fa5415d524200070d0d7aacfe</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix tests, update size asserts</title>
<updated>2022-11-22T22:12:26+00:00</updated>
<author>
<name>The 8472</name>
<email>git@infinite-source.de</email>
</author>
<published>2022-10-06T23:10:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=a9128d89273be6f7b2bc58cd5b8bcd74382c7cd7'/>
<id>urn:sha1:a9128d89273be6f7b2bc58cd5b8bcd74382c7cd7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Optimize `array::IntoIter`</title>
<updated>2022-09-20T06:24:34+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2022-06-04T23:23:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=6dbd9a29c21db63e2c72f5e7f4f8b5ba58023875'/>
<id>urn:sha1:6dbd9a29c21db63e2c72f5e7f4f8b5ba58023875</id>
<content type='text'>
`.into_iter()` on arrays was slower than it needed to be (especially compared to slice iterator) since it uses `Range&lt;usize&gt;`, which needs to handle degenerate ranges like `10..4`.

This PR adds an internal `IndexRange` type that's like `Range&lt;usize&gt;` but with a safety invariant that means it doesn't need to worry about those cases -- it only handles `start &lt;= end` -- and thus can give LLVM more information to optimize better.

I added one simple demonstration of the improvement as a codegen test.
</content>
</entry>
<entry>
<title>Update some codegen tests for opaque pointers</title>
<updated>2022-05-25T15:29:37+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2022-02-21T10:21:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=4d7ff4e5096625b56f154fa485a1af9351c41b5c'/>
<id>urn:sha1:4d7ff4e5096625b56f154fa485a1af9351c41b5c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Help LLVM better optimize slice::Iter(Mut)::len</title>
<updated>2019-06-16T04:15:25+00:00</updated>
<author>
<name>Scott McMurray</name>
<email>scottmcm@users.noreply.github.com</email>
</author>
<published>2019-06-16T03:54:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.dreamy.place/mirrors/rust/commit/?id=af0e35e6a6837aba121c873e6f91fff6df61d268'/>
<id>urn:sha1:af0e35e6a6837aba121c873e6f91fff6df61d268</id>
<content type='text'>
</content>
</entry>
</feed>
