Maybe Waffle
a32959263c
Use SSO_ARRAY_SIZE
instead of 8
in SsoHashMap
impl
2023-04-11 11:02:01 +00:00
Maybe Waffle
0465201f77
Use itertools::Either
instead of own EitherIter
impl
2023-04-11 11:02:01 +00:00
Nilstrieb
73417b1e15
Inline format_args
...
Co-authored-by: Michael Goulet <michael@errs.io>
2023-04-09 23:29:39 +02:00
Nilstrieb
81c320ea77
Fix some clippy::complexity
2023-04-09 23:22:14 +02:00
Nilstrieb
0a0968b207
Allow modulo_one
on function using cfg consts
2023-04-09 22:30:24 +02:00
Nilstrieb
f058d05fc2
Some simple clippy::perf
fixes
2023-04-09 21:59:28 +02:00
bors
0f0dc29264
Auto merge of #109971 - WaffleLapkin:yeet_ownership, r=Nilstrieb
...
Yeet `owning_ref`
Based on the discussions from https://github.com/rust-lang/rust/pull/109948
This replaces `owning_ref` with a far simpler & safer abstraction.
Fixes #109974
2023-04-08 01:08:26 +00:00
Maybe Waffle
fbe0591c68
Mark OwnedSlice::{deref, borrow}
as #[inline]
2023-04-07 10:14:50 +00:00
Maybe Waffle
2733c29bb1
Support multithreaded mode in OwnedSlice
tests
2023-04-06 18:13:07 +00:00
Maybe Waffle
e0e39caf84
Add basic tests for OwnedSlice
2023-04-06 17:33:55 +00:00
Maybe Waffle
b6970d0e26
Use FnOnce
for slice_owned
instead of Fn
2023-04-06 17:03:42 +00:00
Nilstrieb
504c4c40e9
Add context to phantom comment
2023-04-05 18:55:55 +02:00
Thom Chiovoloni
9d314627aa
Fix a couple missed hash constants
2023-04-05 15:48:37 +00:00
Thom Chiovoloni
bb0969cae0
Use SipHash-1-3 instead of SipHash-2-4 for StableHasher
2023-04-05 15:48:37 +00:00
Maybe Waffle
9405f586f5
Fix typo
2023-04-05 13:49:48 +00:00
Maybe Waffle
d7056548f9
Yeet owning_ref
...
Turns out
- `owning_ref` is unsound due to `Box` aliasing stuff
- `rustc` doesn't need 99% of the `owning_ref` API
- `rustc` can use a far simpler abstraction that is `OwnedSlice`
2023-04-05 13:49:48 +00:00
Maybe Waffle
c0ceefdfaf
Use OwnedSlice
instead of owning_ref
2023-04-05 13:49:48 +00:00
Maybe Waffle
689beda166
Implement OwnedSlice
2023-04-05 13:49:48 +00:00
Oli Scherer
457a162d00
Use elsa =1.7.1 as 1.8.0 was an accidental copy of 1.7.0
2023-04-05 08:07:29 +00:00
Oli Scherer
54214c8d8d
Use a simpler atomic operation than the compare_exchange
hammer
2023-04-04 09:01:44 +00:00
Oli Scherer
a1d20cf7a2
Another AppendOnlyVec
2023-04-04 09:01:44 +00:00
Oli Scherer
7edd1d8799
Replace another lock with an append-only vec
2023-04-04 09:01:44 +00:00
Oli Scherer
4699632637
Remove a lock in favor of an AppendOnlyVec
2023-04-04 09:01:44 +00:00
Oli Scherer
daee746771
Add a usize-indexed append-only-vec
2023-04-04 09:01:44 +00:00
Oli Scherer
aad33198ff
Remove a fishy Clone impl
2023-04-04 09:01:44 +00:00
Scott McMurray
a2ee7592d6
Use &IndexSlice
instead of &IndexVec
where possible
...
All the same reasons as for `[T]`: more general, less pointer chasing, and `&mut IndexSlice` emphasizes that it doesn't change *length*.
2023-04-02 17:35:37 -07:00
Michael Goulet
249198c1f8
Rollup merge of #109758 - nnethercote:parallel-cleanups, r=cjgillot
...
Parallel compiler cleanups
A few small improvements I found while looking closely at this code.
r? `@cjgillot`
cc `@Zoxc,` `@SparrowLii`
2023-03-30 12:42:21 -07:00
Nicholas Nethercote
44bfb6538e
CacheAligned
and Sharded
don't need to derive Clone
.
2023-03-30 21:14:43 +11:00
Nicholas Nethercote
0ccb60096a
Remove RwLock::clone_guard
.
...
It's unused.
2023-03-30 21:14:43 +11:00
Nicholas Nethercote
eeb5b782a6
Improve the rustc_data_structures::sync
module doc comment.
...
Also, `MTRef<'a, T>` is a typedef for a reference to a `T`, but in
practice it's only used (and useful) in combination with `MTLock`, i.e.
`MTRef<'a, MTLock<T>>`. So this commit changes it to be a typedef for a
reference to an `MTLock<T>`, and renames it as `MTLockRef`. I think this
clarifies things, because I found `MTRef` quite puzzling at first.
2023-03-30 21:14:37 +11:00
Trevor Gross
dc4ba57566
Stabilize a portion of 'once_cell'
...
Move items not part of this stabilization to 'lazy_cell' or 'once_cell_try'
2023-03-29 18:04:44 -04:00
John Kåre Alsaker
27c44d2e28
Update indexmap and rayon crates
2023-03-25 02:12:13 +01:00
Matthias Krüger
acd7f878ae
Rollup merge of #107718 - Zoxc:z-time, r=nnethercote
...
Add `-Z time-passes-format` to allow specifying a JSON output for `-Z time-passes`
This adds back the `-Z time` option as that is useful for [my rustc benchmark tool](https://github.com/Zoxc/rcb ), reverting https://github.com/rust-lang/rust/pull/102725 . It now uses nanoseconds and bytes as the units so it is renamed to `time-precise`.
2023-03-23 19:55:43 +01:00
Dylan DPC
70918ecf06
Rollup merge of #109280 - compiler-errors:no-vec-map, r=Mark-Simulacrum
...
Remove `VecMap`
Not sure what the use of this data structure is over just using `FxIndexMap` or a `Vec`.
r? ```@ghost```
2023-03-23 00:00:32 +05:30
John Kåre Alsaker
6c57dda44d
Remove unique
and move VerboseTimingGuard
fields into a new struct
2023-03-21 18:41:45 +01:00
John Kåre Alsaker
f60d2eb6c1
Add -Z time-passes-format
to allow specifying a JSON output for -Z time-passes
2023-03-21 18:18:25 +01:00
Andy Russell
bb7c373fdf
migrate compiler, bootstrap, and compiletest to windows-rs
2023-03-20 13:19:35 -04:00
Michael Goulet
6639538575
Remove VecMap
2023-03-17 20:49:28 +00:00
The 8472
7cce618d18
Fast path that skips over unchanged obligations in process_obligations
...
- only borrow the refcell once per loop
- avoid complex matches to reduce branch paths in the hot loop
- use a by-ref fast path that avoids mutations at the expense of having false negatives
2023-03-17 19:56:03 +01:00
Matthias Krüger
a95943b77d
Rollup merge of #108887 - nnethercote:rename-MapInPlace, r=lqd
...
Rename `MapInPlace` as `FlatMapInPlace`.
After removing the `map_in_place` method, which isn't much use because modifying every element in a collection such as a `Vec` can be done trivially with iteration.
r? ``@lqd``
2023-03-08 21:24:53 +01:00
bors
9b60e6c68f
Auto merge of #108312 - michaelwoerister:hash-set-not-hash-stable, r=eholk
...
Do not implement HashStable for HashSet (MCP 533)
This PR removes all occurrences of `HashSet` in query results, replacing it either with `FxIndexSet` or with `UnordSet`, and then removes the `HashStable` implementation of `HashSet`. This is part of implementing [MCP 533](https://github.com/rust-lang/compiler-team/issues/533 ), that is, removing the `HashStable` implementations of all collection types with unstable iteration order.
The changes are mostly mechanical. The only place where additional sorting is happening is in Miri's override implementation of the `exported_symbols` query.
2023-03-08 06:07:11 +00:00
Nicholas Nethercote
be60bcb28a
Rename MapInPlace
as FlatMapInPlace
.
...
After removing the `map_in_place` method, which isn't much use because
modifying every element in a collection such as a `Vec` can be done
trivially with iteration.
2023-03-08 15:53:56 +11:00
bors
70adb4e5b4
Auto merge of #108709 - matthiaskrgr:rollup-j2tjbyx, r=matthiaskrgr
...
Rollup of 8 pull requests
Successful merges:
- #104549 (add -Zexport-executable-symbols to unstable book)
- #108292 (Label opaque type for 'captures lifetime' error message)
- #108540 (Add `Atomic*::from_ptr`)
- #108634 (Add link to component dashboard)
- #108647 (Remove dead pgo.sh file)
- #108678 (Use `Option::as_slice` where applicable)
- #108681 (Improve comments in `needs_process_obligation`.)
- #108688 (Match unmatched backticks in library/)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2023-03-03 22:45:58 +00:00
Matthias Krüger
37bd50eddd
Rollup merge of #108681 - nnethercote:needs_process_obligation-comments, r=lqd
...
Improve comments in `needs_process_obligation`.
And a couple of other places.
r? `@lqd`
2023-03-03 20:45:02 +01:00
est31
ef658907a5
Match end user facing unmatched backticks in compiler/
2023-03-03 08:39:36 +01:00
Nicholas Nethercote
3bcea5f979
Improve comments in needs_process_obligation
.
...
And a couple of other places.
2023-03-03 09:59:33 +11:00
Michael Woerister
b79f0261f8
Do not implement HashStable for HashSet.
2023-03-01 10:20:45 +01:00
Michael Woerister
422208ae52
Use UnordSet instead of FxHashSet for names_imported_by_glob_use query.
2023-03-01 10:20:43 +01:00
Jesse Bakker
edf053036f
Add contains_key to SortedIndexMultiMap
2023-02-28 17:15:00 +01:00
Nicholas Nethercote
d78ca52450
Upgrade ena
to 0.14.1.
...
To get the small performance improvements from
https://github.com/rust-lang/ena/pull/43 .
2023-02-24 08:53:27 +11:00