Commit Graph

105043 Commits

Author SHA1 Message Date
Santiago Pastorino
250a636217
Avoid copying some undef memory in MIR
During MIR interpretation it may happen that a place containing
uninitialized bytes is copied. This would read the current
representation of these bytes and write it to the destination even
though they must, by definition, not matter to the execution.

This elides that representation change when no bytes are defined in such
a copy, saving some cpu cycles. In such a case, the memory of the target
allocation is not touched at all which also means that sometimes no
physical page backing the memory allocation of the representation needs
to be provided by the OS at all, reducing memory pressure on the system.
2019-12-28 14:13:44 -03:00
bors
e39ae6f883 Auto merge of #67459 - ssomers:#67438, r=RalfJung
prune ill-conceived BTreeMap iter_mut assertion and test its mutability

Proposal to deal with #67438 (and I'm more sure now that this is the right thing to do).
Passes testing with miri.
2019-12-28 16:04:40 +00:00
Matthew Kraai
9ec924c97d Change "be returning" to "return" 2019-12-28 07:05:44 -08:00
Vadim Petrochenkov
a0d8b794d6 resolve: Minor cleanup of duplicate macro reexports 2019-12-28 17:37:22 +03:00
bors
2ee25dae12 Auto merge of #67675 - RalfJung:miri, r=RalfJung
update miri
2019-12-28 12:37:30 +00:00
Ralf Jung
b0b040efc1 update miri 2019-12-28 11:20:25 +01:00
Vadim Petrochenkov
3d57b8bcc0 doc comments: Less attribute mimicking 2019-12-28 12:33:18 +03:00
bors
f564c4db0d Auto merge of #67605 - lzutao:msdn-links, r=Mark-Simulacrum
tidy: change msdn links to newer locations

see accouncement at https://docs.microsoft.com/welcome-to-docs
The script that I used: https://gist.github.com/lzutao/1449c9210ad91899841d62e0058d2caa
2019-12-28 09:19:26 +00:00
Vadim Petrochenkov
e3155abd2e Stabilize attribute macros on inline modules 2019-12-28 11:42:26 +03:00
Yuki Okushi
e850cfc6bb Update .mailmap 2019-12-28 16:51:35 +09:00
bors
8b4d22cb25 Auto merge of #67598 - jumbatm:issue67557_simd_shuffle, r=oli-obk
Fix ICE / miscompilation when inlining simd shuffle intrinsic in MIR.

Closes #67557.

r? @oli-obk
2019-12-28 06:02:45 +00:00
Esteban Küber
52b4681de4 Teach compiletest to ignore platform triples 2019-12-27 20:11:19 -08:00
bors
3a087ad3a9 Auto merge of #67670 - oli-obk:rollup-2dp08sd, r=oli-obk
Rollup of 15 pull requests

Successful merges:

 - #65244 (add IntoFuture trait and support for await)
 - #67576 (reuse `capacity` variable in slice::repeat)
 - #67588 (Use NonNull in slice::Iter and slice::IterMut.)
 - #67594 (Update libc to 0.2.66)
 - #67602 (Use issue = "none" instead of "0" in intrinsics)
 - #67604 (Add Scalar::to_(u|i)16 methods)
 - #67617 (Remove `compiler_builtins_lib` documentation)
 - #67621 (Use the correct type for static qualifs)
 - #67629 (Remove redundant link texts)
 - #67632 (Convert collapsed to shortcut reference links)
 - #67633 (Update .mailmap)
 - #67635 (Document safety of Path casting)
 - #67654 (Add regression test for old NLL ICE)
 - #67659 (Stabilize the `matches!` macro)
 - #67664 (Fix some mailmap entries)

Failed merges:

r? @ghost
2019-12-28 00:18:59 +00:00
Oliver Scherer
65bbcf0e13
Rollup merge of #67664 - Manishearth:mailmapfixes, r=Mark-Simulacrum
Fix some mailmap entries

r? @pietroalbini
2019-12-28 00:36:18 +01:00
Oliver Scherer
335c887721
Rollup merge of #67659 - SimonSapin:matches, r=rkruppe
Stabilize the `matches!` macro

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

FCP: https://github.com/rust-lang/rust/issues/65721#issuecomment-569118119
2019-12-28 00:36:17 +01:00
Oliver Scherer
9eb45e38dc
Rollup merge of #67654 - rossmacarthur:fix-51770-add-regression-test, r=Centril
Add regression test for old NLL ICE

This fails on nightly-2018-06-24.

Resolves #51770
2019-12-28 00:36:16 +01:00
Oliver Scherer
9525e8e6b2
Rollup merge of #67635 - Mark-Simulacrum:path-doc-unsafe, r=dtolnay
Document safety of Path casting

I would personally feel more comfortable making the relevant (internal anyway) types repr(transparent) and then documenting that we can make these casts because of that, but I believe this is a more minimal PR, so posting it first.

Resolves #45910.
2019-12-28 00:36:14 +01:00
Oliver Scherer
47d5acf54d
Rollup merge of #67633 - christianpoveda:patch-1, r=Mark-Simulacrum
Update .mailmap
2019-12-28 00:36:13 +01:00
Oliver Scherer
48efc1e6c2
Rollup merge of #67632 - kraai:remove-collapsed-reference-links, r=steveklabnik
Convert collapsed to shortcut reference links
2019-12-28 00:36:11 +01:00
Oliver Scherer
b371e0fa00
Rollup merge of #67629 - kraai:remove-redundant-link-texts, r=steveklabnik
Remove redundant link texts

Most of these links are followed by a parenthesized expression.  I think that the redundant link texts were added to prevent interpretation as an inline link.  This is unnecessary since the closing square bracket and opening parenthesis are separated by whitespace.
2019-12-28 00:36:09 +01:00
Oliver Scherer
b88ce0ed4b
Rollup merge of #67621 - matthewjasper:correct-static-type, r=oli-obk
Use the correct type for static qualifs

Closes #67609
2019-12-28 00:36:08 +01:00
Oliver Scherer
98de5042b0
Rollup merge of #67617 - kraai:remove-compiler_builtins_lib-docs, r=Dylan-DPC
Remove `compiler_builtins_lib` documentation

Fixes #67593
2019-12-28 00:36:07 +01:00
Oliver Scherer
e9af9dba6f
Rollup merge of #67604 - christianpoveda:scalar_to_(u|i)64, r=RalfJung
Add Scalar::to_(u|i)16 methods

r? @RalfJung
2019-12-28 00:36:05 +01:00
Oliver Scherer
4cf4fc6cb1
Rollup merge of #67602 - xfix:use-issue-none-instead-of-0-in-intrinsics, r=Centril
Use issue = "none" instead of "0" in intrinsics

`issue = "0"` was incorrectly used in 9ee16e14c5, the project is moving away from issue 0
2019-12-28 00:36:04 +01:00
Oliver Scherer
31fd966647
Rollup merge of #67594 - oxalica:update-libc, r=Dylan-DPC
Update libc to 0.2.66

cc @gnzlbg @alexcrichton
2019-12-28 00:36:02 +01:00
Oliver Scherer
4b91966501
Rollup merge of #67588 - Kixunil:nonnull-slice-iter, r=rkruppe
Use NonNull in slice::Iter and slice::IterMut.

`ptr` of `slice::Iter` and `slice::IterMut` can never be null, but this
fact wasn't exploited for layout optimizations. By changing `ptr` from
`*<mutability> T` to `NonNull<T>`, the compiler can now optimize layout
of `Option<Iter<'a, T>>`.

Closes #67228
2019-12-28 00:36:01 +01:00
Oliver Scherer
a076464c4a
Rollup merge of #67576 - king6cong:slice_repeat, r=Dylan-DPC
reuse `capacity` variable in slice::repeat

None
2019-12-28 00:35:59 +01:00
Oliver Scherer
b1b005b8f0
Rollup merge of #65244 - seanmonstar:into-future, r=seanmonstar
add IntoFuture trait and support for await

The [async-await RFC](https://rust-lang.github.io/rfcs/2394-async_await.html#the-await-compiler-built-in) mentions being able to `await` anything implementing `IntoFuture`. Somewhere along the way, it was left out.
2019-12-28 00:35:58 +01:00
Oliver Scherer
b3abebd78d Prevent polymorphic const prop on assignments 2019-12-28 00:22:16 +01:00
Oliver Scherer
3eb0585173 Work around a resolve bug in const prop 2019-12-28 00:22:16 +01:00
Sean McArthur
f35517ee86 core: add IntoFuture trait and support for await 2019-12-27 11:56:11 -08:00
bors
74c4e6a981 Auto merge of #67035 - Goirad:implement-ipadd-padding, r=dtolnay
Implement padding for IpAddr without heap alloc

Implements padding for `IpAddr`s without heap allocations.
This fixes issue #66810 .

cc @jethrogb @mzohreva
2019-12-27 18:40:50 +00:00
Camille GILLOT
71f745852a Address review. 2019-12-27 19:20:29 +01:00
Camille GILLOT
36f95ab3fa Fallout in other crates. 2019-12-27 19:20:28 +01:00
Camille GILLOT
c737c07021 Lowering for hir::Ty. 2019-12-27 19:20:28 +01:00
Camille GILLOT
5865d563ea Visit for hir::Ty. 2019-12-27 19:20:28 +01:00
Camille GILLOT
6b87d5cdf1 Syntax for hir::Ty. 2019-12-27 19:20:28 +01:00
Camille GILLOT
66f9198047 Use Arena inside hir::TraitMethod. 2019-12-27 19:20:28 +01:00
Camille GILLOT
deac631d7f Use Arena inside hir::FnSig. 2019-12-27 19:20:27 +01:00
Wesley Wiser
25a8b5d58e Fix Instance::resolve() incorrectly returning specialized instances
We only want to return specializations when `Reveal::All` is passed, not
when `Reveal::UserFacing` is. Resolving this fixes several issues with
the `ConstProp`, `SimplifyBranches`, and `Inline` MIR optimization
passes.

Fixes #66901
2019-12-27 13:04:32 -05:00
Manish Goregaokar
e518e38564 Fix whitequark's entry in the mailmap 2019-12-27 09:52:59 -08:00
Manish Goregaokar
1ec81abad6 Fix Nika's entry in the mailmap 2019-12-27 09:52:59 -08:00
Manish Goregaokar
aa5983d560 Fix my entry in the mailmap 2019-12-27 09:43:36 -08:00
jumbatm
91c2f78b50 Clean up const-hack from #58044 2019-12-27 23:21:32 +10:00
jumbatm
282635f2db Clean up const-hack from #61635 2019-12-27 23:21:32 +10:00
jumbatm
8c494866be Clean up const-hack from #63786 2019-12-27 23:21:32 +10:00
jumbatm
f6faf0b2e7 Clean up const-hack from #63810 2019-12-27 23:21:27 +10:00
Simon Sapin
1c572a2d6e Stabilize the matches! macro
Fixes https://github.com/rust-lang/rust/issues/65721

FCP: https://github.com/rust-lang/rust/issues/65721#issuecomment-569118119
2019-12-27 14:07:16 +01:00
Santiago Pastorino
bd93b7718e
Avoid memory copy logic for zsts
Closes #67539
2019-12-27 09:33:22 -03:00
Ross MacArthur
749295cfbf
Add regression test for old NLL ICE 2019-12-27 13:36:41 +02:00