Commit Graph

5528 Commits

Author SHA1 Message Date
Pointerbender
e21dae71c8 removed unintentional file change due to whitespace 2021-06-02 15:38:12 +02:00
Pointerbender
c6dbe5cdca use references so that potential aliasing bugs are triggered during regression test 2021-06-02 15:36:18 +02:00
Pointerbender
b8aba11de3 regression tests for pointer invalidation in core library slice methods 2021-06-02 15:36:18 +02:00
bors
453affaaa1 Auto merge of #1820 - Aaron1011:rustup-const-err, r=RalfJung
Rustup for const_err changes
2021-05-31 16:04:22 +00:00
Aaron Hill
73700bc01c
Rustup for const_err changes 2021-05-31 10:50:25 -05:00
hyd-dev
a952787163
Improve tests 2021-05-31 11:57:16 +08:00
hyd-dev
160bc68cae
Move the test to src/main.rs 2021-05-31 11:57:16 +08:00
hyd-dev
45832d4031
Remove duplicated "foreign function" 2021-05-31 11:57:15 +08:00
hyd-dev
e026ad584d
Use unwrap_or_else() 2021-05-31 11:57:15 +08:00
hyd-dev
b054a19f94
We don't need to check SymbolExportLevel 2021-05-31 11:57:14 +08:00
hyd-dev
382295cd47
Move check_abi() into EvalContextExt 2021-05-31 11:15:31 +08:00
hyd-dev
ddc2ee9db6
Move -Zmiri-disable-abi-check in README 2021-05-31 11:15:31 +08:00
hyd-dev
41f33a64f8
Implement calls to exported symbols 2021-05-31 11:15:29 +08:00
hyd-dev
71f4140550
Add -Zmiri-disable-abi-check 2021-05-31 11:14:23 +08:00
bors
178ae8e44c Auto merge of #1791 - Aaron1011:measureme, r=RalfJung
Add `measureme` integration for profiling the interpreted program

This PR uses the `measureme` crate to profile the call stack of the
program being interpreted by Miri. This is accomplished by starting a
measureme 'event' when we enter a function call, and ending the event
when we exit the call. The `measureme` tooling can be used to produce a
call stack from the generated profile data.

Limitations:
* We currently record every single entry/exit. This might generate very
  large profile outputs for programs with a large number of function
  calls. In follow-up work, we might want to explore sampling (e.g. only
  recording every N function calls).
* This does not integrate very well with Miri's concurrency support.
  Each event we record starts when we push a frame, and ends when we pop
  a frame. As a result, the timing recorded for a particular frame will include all of the work Miri does before that frame completes, including executing another thread.

The `measureme` integration is off by default, and must be enabled via
`-Zmiri-measureme=<output_name>`
2021-05-30 15:14:23 +00:00
Ralf Jung
c89a5d62ee
add comment to debug impl 2021-05-30 17:13:49 +02:00
Aaron Hill
0317e5bfd6
Address more review comments 2021-05-30 10:04:57 -05:00
Aaron Hill
20f1b2a969
Run fmt 2021-05-29 17:16:12 -05:00
Aaron Hill
16f469280e
Address review comments 2021-05-29 17:10:54 -05:00
Aaron Hill
2166eaed90
Use active thread id 2021-05-29 17:01:54 -05:00
Aaron Hill
7e9da8d30e
Add measureme integration for profiling the interpreted program
This PR uses the `measureme` crate to profile the call stack of the
program being interpreted by Miri. This is accomplished by starting a
measureme 'event' when we enter a function call, and ending the event
when we exit the call. The `measureme` tooling can be used to produce a
call stack from the generated profile data.

Limitations:
* We currently record every single entry/exit. This might generate very
  large profile outputs for programs with a large number of function
  calls. In follow-up work, we might want to explore sampling (e.g. only
  recording every N function calls).
* This does not integrate very well with Miri's concurrency support.
  Each event we record starts when we push a frame, and ends when we pop
  a frame. As a result, switching between virtual threads will cause
  events from different threads to be interleaved. Additionally, the
  recorded for a particular frame will include all of the work Miri does
  before that frame completes, including executing another thread.

The `measureme` integration is off by default, and must be enabled via
`-Zmiri-measureme=<output_name>`
2021-05-29 17:01:52 -05:00
bors
4fa9363ebb Auto merge of #1812 - hyd-dev:85546, r=RalfJung
Fix toolstate for rust-lang/rust#85546

cc rust-lang/rust#85780
2021-05-28 20:11:11 +00:00
hyd-dev
9b2d42587f
unwind is no longer Option<BasicBlock> 2021-05-28 22:08:51 +08:00
bors
76f5855842 Auto merge of #1817 - hyd-dev:doctest, r=RalfJung
Skip doctests of `proc-macro` crates

Fixes #1813.

Verified that the newly added tests failed without the `cargo-miri` change and pass with normal `cargo test`.
2021-05-27 21:44:16 +00:00
hyd-dev
d1de0843ed
Change preexisting "doc-test" to "doctest" 2021-05-27 19:48:07 +08:00
hyd-dev
43db2aa5a9
Change "Doc-tests" in the comment to "Doctests" 2021-05-27 19:45:10 +08:00
hyd-dev
ffff7ff8a6
Use compile_error! instead of use num_cpus 2021-05-27 19:22:42 +08:00
hyd-dev
773eb1e970
"doc-tests" -> "doctests" 2021-05-27 18:45:21 +08:00
bors
0f03a705a2 Auto merge of #1819 - scottmcm:patch-1, r=RalfJung
Add `copy_within` to the SB trophy case
2021-05-27 07:21:49 +00:00
scottmcm
97b2824ada
Add copy_within to the SB trophy case 2021-05-27 00:14:13 +00:00
hyd-dev
f42a6d1026
Skip doctests of proc-macro crates 2021-05-27 07:03:05 +08:00
bors
62046bf8b4 Auto merge of #1814 - RalfJung:rustup, r=RalfJung
avoid unnecessary RefCell calls

Blocked on https://github.com/rust-lang/rust/pull/85599
2021-05-23 16:08:53 +00:00
Ralf Jung
a03f700fc9 rustup 2021-05-23 18:05:50 +02:00
Ralf Jung
393ce98b32 fix a Stacked Borrows test whose output changed 2021-05-23 18:04:13 +02:00
Ralf Jung
c60efa0c69 allocate backtrace strings mutably 2021-05-23 18:04:13 +02:00
Ralf Jung
9e0e9386a6 better approach to skip ZST reborrows 2021-05-23 18:04:13 +02:00
Ralf Jung
e09c571eec avoid some borrow_mut calls in data_race 2021-05-23 18:04:13 +02:00
Ralf Jung
543777acbd avoid unnecessary RefCell calls in Stacked Borrows 2021-05-23 18:04:13 +02:00
bors
cf7e4b9df6 Auto merge of #1815 - RalfJung:rustup2, r=RalfJung
rustup

Cc https://github.com/rust-lang/rust/issues/85591
2021-05-23 10:40:13 +00:00
Ralf Jung
d77d95d0a8 rustup 2021-05-23 12:39:27 +02:00
bors
10c495643a Auto merge of #1811 - RalfJung:less-rc, r=RalfJung
get rid of some `Rc`

Now that the memory access hooks get references to `MemoryExtra`, we can avoid refcounting for the global state of Stacked Borrows and the data race detector.
2021-05-22 12:56:51 +00:00
Ralf Jung
c73f8b1097 fmt 2021-05-22 14:55:33 +02:00
Ralf Jung
1bbd6e609c get rid of Rc in data_race 2021-05-22 14:47:14 +02:00
Ralf Jung
ca7283d746 get rid of Rc in Stacked Borrows 2021-05-22 13:24:08 +02:00
bors
3a24958128 Auto merge of #1809 - RalfJung:rustup, r=RalfJung
rustup
2021-05-20 17:54:56 +00:00
Ralf Jung
c151af5cf5 rustup 2021-05-20 13:32:18 +02:00
bors
b0e5d5f1ef Auto merge of #1804 - RalfJung:ptrless-allocs, r=RalfJung
update for Memory API changes

The Miri side of https://github.com/rust-lang/rust/pull/85376.
2021-05-19 14:34:39 +00:00
Ralf Jung
aba96b82b4 fix write_os_str_to_wide_str 2021-05-19 16:34:14 +02:00
Ralf Jung
e4a27150cb fmt 2021-05-19 16:10:28 +02:00
Ralf Jung
d1e5eeebdf rustup 2021-05-19 15:58:05 +02:00