Maybe Waffle
c6acd5c92f
Remove Pointer::with_ref
in favour implementing it on tagged pointers directly
2023-04-12 11:26:34 +00:00
Maybe Waffle
9051331dd7
Lift Pointer
's requirement for the pointer to be thin
...
fat pointers rule!
2023-04-12 11:00:35 +00:00
Maybe Waffle
26232f1ff5
Remove useless parameter from ghost
2023-04-12 10:34:29 +00:00
Maybe Waffle
ad92677008
Fix doc test
2023-04-11 21:45:19 +00:00
Maybe Waffle
12fd610e01
Refactor tagged ptr packing into a function
2023-04-11 21:40:39 +00:00
Maybe Waffle
3c6f4c1260
Bless tagged pointers (comply to strict provenance)
2023-04-11 21:31:23 +00:00
Maybe Waffle
f028636b1a
Sprinkle some whitespace & uses
2023-04-11 19:33:33 +00:00
Maybe Waffle
c738dcc284
Add bits_for
helper for tagged pointers & fixup docs
2023-04-11 19:18:59 +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