Valerii Lashmanov
f583513dc2
Intorduced MiniMap - a tiny small storage optimized map implementation
...
This makes everything about 1% faster in rustc-perf,
mostly negating performance hit of previous commit.
2020-09-17 20:44:11 -05:00
Valerii Lashmanov
17d2e3b5d2
Better handling for exponential-sized types in misc places
...
Mostly to fix ui/issues/issue-37311-type-length-limit/issue-37311.rs.
Most parts of the compiler can handle deeply nested types with a lot
of duplicates just fine, but some parts still attempt to naively
traverse type tree.
Before such problems were caught by type length limit check,
but now these places will have to be changed to handle
duplicated types gracefully.
2020-09-17 20:44:11 -05:00
Valerii Lashmanov
2f3296192b
Only visit types once when walking the type tree
...
This fixes #72408 .
Nested closures were resulting in exponential compilation time.
As a performance optimization this change introduces MiniSet,
which is a simple small storage optimized set.
2020-09-17 20:44:11 -05:00
Amjad Alsharafi
878dfa6718
Fixed intra-docs links in library/std/src/collections/hash/map.rs
2020-09-18 07:50:22 +08:00
Amjad Alsharafi
3323a26144
Fixed some intra-docs links in library/core
2020-09-18 07:49:29 +08:00
Nixon Enraght-Moony
735776d115
Fix --bless for mir-opt 32/64 bit file
2020-09-18 00:02:48 +01:00
Jonas Schievink
ee1e9343b3
Distribute rustc sources as part of rustc-dev
2020-09-18 00:18:19 +02:00
Nixon Enraght-Moony
3c7593e69f
Rename 32 bit mir files to be more tool friendly
...
See #75746
2020-09-17 21:49:21 +01:00
Denis Vasilik
8e9ad31178
Use intra-doc links
2020-09-17 22:43:13 +02:00
Nixon Enraght-Moony
4f23cec3f9
Rename 64 bit mir files to be more tool friendly
...
See #75746
2020-09-17 21:35:21 +01:00
Nixon Enraght-Moony
076e52d0c9
Put bit qualifier before mir/diff
2020-09-17 21:32:02 +01:00
bors
f3c923a13a
Auto merge of #76645 - fusion-engineering-forks:windows-lock, r=kennytm
...
Small cleanups in Windows Mutex.
- Move `held` into the boxed part, since the SRW lock implementation does not use this. This makes the Mutex 50% smaller.
- Use `Cell` instead of `UnsafeCell` for `held`, such that `.replace()` can be used.
- Add some comments.
- Avoid creating multiple `&mut`s to the critical section object in `ReentrantMutex`.
2020-09-17 19:23:58 +00:00
Camelid
451f7f6b12
Use relative link instead of absolute
2020-09-17 11:38:40 -07:00
Dylan MacKenzie
e03f4164d9
Default to implicit (not explicit) rules for promotability in const fn
2020-09-17 08:39:11 -07:00
Alexis Bourget
76ec3f8d2b
Move to intra doc links in core/src/future
2020-09-17 17:25:06 +02:00
Alistair Francis
3d1b6d6cc2
library/unwind: Add missing )
...
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-09-17 07:10:10 -07:00
Wesley Wiser
dbd7226d29
[mir-opt] Disable the ConsideredEqual
logic in SimplifyBranchSame opt
...
The logic is currently broken and we need to disable it to fix a beta
regression (see #76803 )
2020-09-17 09:36:50 -04:00
Ralf Jung
1dd3df6738
black_box: silence unused_mut warning when building with cfg(miri)
2020-09-17 14:39:31 +02:00
bors
7bdb5dee7b
Auto merge of #76634 - RalfJung:miri-guaranteed-eq-ne, r=oli-obk
...
move guaranteed{ne,eq} implementation to compile-time machine
Currently, Miri needs a special hack to avoid using the core engine implementation of these intrinsics. That seems silly, so let's move them to the CTFE machine, which is the only machine that wants to use them.
I also added a reference to https://github.com/rust-lang/rust/issues/73722 as a warning to anyone who wants to adjust `guaranteed_eq`.
2020-09-17 12:15:57 +00:00
Matthias Krüger
026922ad60
make replace_prefix only take &str as arguments
...
https://github.com/rust-lang/rust/pull/76828#issuecomment-694078200
2020-09-17 13:12:04 +02:00
Juan Aguilar Santillana
7b5d9836c4
Remove redundant to_string
2020-09-17 10:27:04 +00:00
khyperia
48655c2d2c
PR feedback
2020-09-17 12:18:09 +02:00
khyperia
c946c40d9d
Let backends define custom targets
...
Add a target_override hook that takes priority over builtin targets.
2020-09-17 12:01:12 +02:00
Lzu Tao
9fe9c6da3e
Using <Iter>::new instead of exposing internal fields
2020-09-17 09:58:26 +00:00
Bastian Kauschke
764d307963
docs array
-> slice
...
Co-authored-by: est31 <est31@users.noreply.github.com>
2020-09-17 10:30:28 +02:00
Matthias Krüger
012974da7a
use strip_prefix over starts_with and manual slicing based on pattern length (clippy::manual_strip)
2020-09-17 10:13:16 +02:00
Bastian Kauschke
5f58e00ca5
fix array_windows docs
2020-09-17 09:53:19 +02:00
est31
ebdea01143
Remove redundant #![feature(...)] 's from compiler/
2020-09-17 07:58:45 +02:00
est31
4fe6ca3789
Replace const_generics feature gate with min_const_generics
...
The latter is on the path to stabilization.
2020-09-17 07:08:53 +02:00
est31
b479139620
Remove intrinsics::arith_offset use from libarena
...
The use of arith_offset was added in 803e9ae67b770d8500c4ab5862e988d29118356a
before the stable wrapper of the intrinsic was available.
https://doc.rust-lang.org/stable/std/intrinsics/fn.arith_offset.html
2020-09-17 06:12:40 +02:00
bors
95386b656e
Auto merge of #76028 - aticu:improve_e0118, r=estebank,jyn514,GuillaumeGomez
...
Improve E0118
- Changes the "base type" terminology to "nominal type" (according to the [reference](https://doc.rust-lang.org/stable/reference/items/implementations.html#inherent-implementations )).
- Suggests removing a reference, if one is present on the type.
- Clarify what is meant by a "nominal type".
closes #69392
This is my first not-entirely-trivial PR, so please let me know if I missed anything or if something could be improved. Though I probably won't be able to fix anything in the upcoming week.
2020-09-17 03:56:38 +00:00
Hanif Bin Ariffin
f4a7149f49
Don't compile regex at every function call.
...
Use `SyncOnceCell` to only compile it once.
I believe this still adds some kind of locking mechanism?
2020-09-17 11:03:08 +08:00
Ivan Tham
b7c8bea6cb
Fix wording in mir doc
2020-09-17 09:07:19 +08:00
Matthias Krüger
0e3414248a
don't lazily evaulate some trivial values for Option::None replacements (clippy::unnecessary_lazy_evaluations)
2020-09-17 01:37:35 +02:00
Camelid
57eb29cd2d
Update based on review suggestions
2020-09-16 15:31:56 -07:00
Alistair Francis
57b2da808c
library/unwind: Consolidate RV32 and RV64
...
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-09-16 15:19:32 -07:00
Alistair Francis
fd76268166
library/panic_unwind: Consolidate RV32 and RV64
...
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2020-09-16 14:31:42 -07:00
Dylan MacKenzie
abc71677da
Test that const_precise_live_drops
can't be depended upon stably
2020-09-16 14:17:51 -07:00
Dylan MacKenzie
1e1257b8f8
Bless miri-unleashed
tests
...
`const_mut_refs` doesn't actually work in a `const` or `static`
2020-09-16 14:17:51 -07:00
Dylan MacKenzie
81b3b66487
Error if an unstable const eval feature is used in a stable const fn
2020-09-16 14:17:51 -07:00
Dylan MacKenzie
e4edc161f2
Give name to extra Span
in LiveDrop
error
2020-09-16 14:17:51 -07:00
Dylan MacKenzie
c3607bd7dd
Use helper function for searching allow_internal_unstable
2020-09-16 14:17:51 -07:00
Dylan MacKenzie
ed6c7efd87
Use enum for status of non-const ops
2020-09-16 14:17:51 -07:00
Matthias Krüger
94dae60040
simplfy condition in ItemLowerer::with_trait_impl_ref()
2020-09-16 23:09:57 +02:00
Jethro Beekman
1d2290ffb0
Update LLVM
2020-09-16 22:20:23 +02:00
bors
285fc7d704
Auto merge of #76804 - tmandry:rollup-nwntt3q, r=tmandry
...
Rollup of 16 pull requests
Successful merges:
- #75026 (Add array_windows fn)
- #76642 (Do not lint ignored private doc tests)
- #76719 (Change error message for ty param in const)
- #76721 (Use intra-doc links in `core::mem`)
- #76728 (Add a comment why `extern crate` is necessary for rustdoc)
- #76735 (Remove unnecessary `clone()`s in bootstrap)
- #76741 (Avoid printing dry run timings)
- #76747 (Add missing code examples in libcore)
- #76756 (fix a couple of stylistic clippy warnings)
- #76758 ([fuchsia] Propagate the userspace UTC clock)
- #76759 (Fix stabilization marker for future_readiness_fns)
- #76760 (don't lazily evaluate some trivial values for Option::None replacements (clippy::unnecessary_lazy_evaluations))
- #76764 (Update books)
- #76775 (Strip a single leading tab when rendering dataflow diffs)
- #76778 (Simplify iter fuse struct doc)
- #76794 (Make graphviz font configurable)
Failed merges:
r? `@ghost`
2020-09-16 20:18:19 +00:00
Gus Wynn
230355f25f
comments and factor to own method
2020-09-16 12:32:10 -07:00
Tyler Mandry
3bf66ae25f
Rollup merge of #76794 - richkadel:graphviz-font, r=ecstatic-morse
...
Make graphviz font configurable
Alternative to PR #76776 .
To change the graphviz output to use an alternative `fontname` value,
add a command line option like: `rustc --graphviz-font=monospace`.
r? @ecstatic-morse
2020-09-16 12:24:30 -07:00
Tyler Mandry
d3c63213a0
Rollup merge of #76778 - pickfire:patch-7, r=jonas-schievink
...
Simplify iter fuse struct doc
2020-09-16 12:24:28 -07:00
Tyler Mandry
cd766c9d09
Rollup merge of #76775 - ecstatic-morse:dataflow-extra-tab-diff, r=Mark-Simulacrum
...
Strip a single leading tab when rendering dataflow diffs
The `fmt_diff_with` formatter uses a tab to separate additions from subtractions. Strip it when rendering those diffs on separate lines.
r? @Mark-Simulacrum (since you're speedy)
2020-09-16 12:24:27 -07:00