Maybe Waffle
5e4577ec65
Add TaggedPtr::set_tag
2023-04-12 12:35:43 +00:00
Maybe Waffle
6f64ae3fbc
Move code around
2023-04-12 11:50:45 +00:00
Maybe Waffle
3df9a7bde3
Shorten COMPARE_PACKED
=> CP
where it is not important
...
why can't I _ it :'(
2023-04-12 11:44:52 +00:00
Maybe Waffle
8f408202c3
Remove pointer_{ref,mut}
from tagged pointers
...
Just use `deref{,_mut}`!
2023-04-12 11:41:41 +00:00
Maybe Waffle
c7c0b85f67
Make tagged pointers debug impls print the pointer
...
Does not really matter, but may be nicer in case
the pointer has some specific debug impl.
2023-04-12 11:30:45 +00:00
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