| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
explain time-with-isolation test better
Fixes https://github.com/rust-lang/miri/issues/3377
`@saethlin` do you think this is better?
|
|
Various cleanups around the const eval query providers
r? `@RalfJung`
after this, working on running validation before interning starts with swapping the order of two lines of code
|
|
|
|
know the `Machine` type
|
|
fix unsoundness in Step::forward_unchecked for signed integers
Fixes #122420
```rust
pub fn foo(a: i8, b: u8) -> i8 {
unsafe { a.checked_add_unsigned(b).unwrap_unchecked() }
}
```
still compiles down to a single arithmetic instruction ([godbolt](https://rust.godbolt.org/z/qsd3xYWfE)).
But we may be losing some loop optimizations if llvm can no longer easily derive that it's a finite counted loop from the no-wrapping flags.
|
|
make cron job topic names more consistent
|
|
interpret: ensure that Place is never used for a different frame
We store the address where the stack frame stores its `locals`. The idea is that even if we pop and push, or switch to a different thread with a larger number of frames, then the `locals` address will most likely change so we'll notice that problem. This is made possible by some recent changes by `@WaffleLapkin,` where we no longer use `Place` across things that change the number of stack frames.
I made these debug assertions for now, just to make sure this can't cost us any perf.
The first commit is unrelated but it's a one-line comment change so it didn't warrant a separate PR...
r? `@oli-obk`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
miri: add some chance to reuse addresses of previously freed allocations
The hope is that this can help us find ABA issues.
Unfortunately this needs rustc changes so I can't easily run the regular benchmark suite. I used `src/tools/miri/tests/pass/float_nan.rs` as a substitute:
```
Before:
Benchmark 1: ./x.py run miri --stage 0 --args src/tools/miri/tests/pass/float_nan.rs --args --edition=2021
Time (mean ± σ): 9.570 s ± 0.013 s [User: 9.279 s, System: 0.290 s]
Range (min … max): 9.561 s … 9.579 s 2 runs
After:
Benchmark 1: ./x.py run miri --stage 0 --args src/tools/miri/tests/pass/float_nan.rs --args --edition=2021
Time (mean ± σ): 9.698 s ± 0.046 s [User: 9.413 s, System: 0.279 s]
Range (min … max): 9.666 s … 9.731 s 2 runs
```
That's a ~1.3% slowdown, which seems fine to me. I have seen a lot of noise in this style of benchmarking so I don't quite trust this anyway; we can make further experiments in the Miri repo after this migrated there.
r? `@oli-obk`
|
|
windows: remove support for slim rwlock
Since https://github.com/rust-lang/rust/pull/121956 we don't need it any more, and we are generally short on Windows staff so reducing the amount of code we have to test and maintain sounds like a good idea.
The InitOnce stuff is still used by `thread_local_key::StaticKey` on 64bit windows-gnu.
|
|
|
|
|
|
interpret: do not call machine read hooks during validation
Fixes https://github.com/rust-lang/miri/issues/3347
r? ``@oli-obk``
|
|
RawVec::into_box: avoid unnecessary intermediate reference
Fixes the problem described [here](https://github.com/rust-lang/miri/issues/3341#issuecomment-1987207195).
|
|
Win10: Use `GetSystemTimePreciseAsFileTime` directly
On Windows 10 we can use `GetSystemTimePreciseAsFileTime` directly instead of lazy loading it (with a fallback).
|
|
Signed-off-by: tgolang <seekseat@aliyun.com>
|
|
|
|
Miri subtree update
r? `@ghost`
`@WaffleLapkin` when this lands, setting `MIRI_TEMP` should not be needed any more on the dev desktops.
|
|
|
|
|
|
|
|
|
|
Since https://github.com/rust-lang/rust/pull/121956 we don't need it any more,
and we are generally short on Windows staff so reducing the amount of code we
have to test and maintain sounds like a good idea.
The InitOnce stuff is still used by `thread_local_key::StaticKey`.
|
|
|
|
|
|
set panic=abort so that we do not need this eh_personality thing
|
|
|
|
|
|
|
|
|
|
Automatic Rustup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Tweak the way we protect in-place function arguments in interpreters
Use `MPlaceTy` instead of `PlaceTy` in `FnArg` and ignore (copy) locals in an earlier step ("Locals that don't have their address taken are as protected as they can ever be").
This seems to be crucial for tail call support (as they can't refer to caller's locals which are killed when replacing the stack frame).
r? `@RalfJung`
cc `@oli-obk`
see https://github.com/rust-lang/rust/pull/121273#issuecomment-1980210690
|
|
Use `MPlaceTy` instead of `PlaceTy` in `FnArg` and ignore (copy) locals in an
earlier step ("Locals that don't have their address taken are as protected as
they can ever be").
This seems to be crucial for tail call support (as they can't refer to caller's
locals which are killed when replacing the stack frame).
|
|
Refactor pre-getopts command line argument handling
Rebased version of #111658. I've also fixed the Windows CI failure (although I don't have access to Windows to test it myself).
|
|
|