Ralf Jung
848be1bf82
implement aarch64 hint 'intrinsic'
2021-01-23 18:11:01 +01:00
Corey Farwell
2aedbf0993
Add shim for libc::sysconf(libc::_SC_NPROCESSORS_CONF)
2021-01-22 09:16:27 -05:00
bors
903bfd82bf
Auto merge of #1681 - RalfJung:rustup, r=RalfJung
...
rustup; remove some intrinsics that are gone or moved to rustc
2021-01-18 12:02:12 +00:00
Ralf Jung
3d01ba11c0
rustup; remove some intrinsics that are gone or moved to rustc
2021-01-18 12:55:30 +01:00
hyd-dev
9949d9e417
Remove #![feature(const_generics)]
and #![allow(incomplete_features)]
2021-01-17 23:28:20 +08:00
Ralf Jung
4a035103dc
rustup; make tests pass again
2021-01-15 16:41:14 +01:00
Ralf Jung
8e15f3221e
rustup
2021-01-11 12:35:13 +01:00
Ralf Jung
65f5c27d61
remove intrinsic that is now implemented in the rustc side
2020-12-22 12:47:59 +01:00
JCTyblaidd
c13aabcb45
Tidy new_allocation
2020-12-13 11:14:41 +00:00
JCTyblaidd
e73579632b
Rework to work with machine hook.
2020-12-13 11:04:58 +00:00
JCTyblaidd
81c4eb7d74
Update src/data_race.rs
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-12-13 11:04:58 +00:00
JCTyBlaidd
aaf8ca4c77
Fix review changes
2020-12-13 11:04:58 +00:00
JCTyBlaidd
296ba8b1c8
Fix bug with reporting wrong thread for races with reads & add thread ids to data-race tests
2020-12-13 11:04:58 +00:00
JCTyblaidd
c4ccd0b6a1
Fix nits
...
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2020-12-13 11:04:58 +00:00
JCTyBlaidd
1ded6d328a
Remove old FIXME
2020-12-13 11:04:58 +00:00
JCTyBlaidd
c45b1b16be
More tests, fix issue 1643 and detect races with allocation.
2020-12-13 11:04:58 +00:00
Ralf Jung
7bbd6bca77
rustup
2020-12-10 19:53:45 +01:00
JCTyblaidd
6db821537f
Fix caps
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-12-06 17:59:49 +00:00
JCTyBlaidd
4cf614ef33
Update release sequence handling to C++20 semantics.
2020-12-06 16:58:32 +00:00
Ralf Jung
6145709bfc
remove miri-rustc-tests
2020-11-29 21:00:50 +01:00
bors
d473242ecd
Auto merge of #1617 - JCTyblaidd:data_race_detector, r=RalfJung
...
Add simple data-race detector
Partially fixes data-race detection, see #1372 , based on Dynamic Race Detection for C++11
- This does not explore weak memory behaviour, only exploring one sequentially consistent ordering.
- Data-race detection is only enabled after the first thread is created, so should have minimal overhead for non-concurrent execution.
- ~~Does not attempt to re-use thread id's so creating and joining threads lots of time in an execution will result in the vector clocks growing in size and slowing down program execution~~ It does now
2020-11-29 18:44:28 +00:00
Ralf Jung
cbb695f782
fix some typos
2020-11-29 19:43:44 +01:00
JCTyBlaidd
6c5722933e
Fix typos - looked into the papers handling of timestamps, after looking into it again, it seems the paper only increments the timestamp after release operations, so changed to approximation of that implementation.
2020-11-28 17:17:07 +00:00
JCTyBlaidd
55fc552d99
Apply review changes, incrementing the clocks twice is an unnecessary hold-over from earlier versions so fixed.
2020-11-27 19:26:06 +00:00
JCTyBlaidd
3268f56a97
Fix review changes
2020-11-22 17:28:12 +00:00
Ralf Jung
697f6e36bd
rustup
2020-11-20 14:07:52 +01:00
Ralf Jung
517728bf97
avoid fallback logic (and we do not need the flag value currently anyway)
2020-11-19 09:36:33 +01:00
Mara Bos
cdb7adb4b3
Make weak syscalls in std work.
...
std now looks up `getrandom` and `statx` with `dlsym` before attempting
to use `syscall(SYS_.., ..)`.
It also now passes all arguments as a machine-sized word, instead of
their original types.
2020-11-19 09:34:46 +01:00
JCTyBlaidd
0b0264fc82
Run rustfmt on vector_clock.rs and data_race.rs
2020-11-15 20:19:34 +00:00
JCTyBlaidd
a3b7839bbd
Add comment regarding seq-cst ordering & add test for disabling the data-race detector.
2020-11-15 20:12:58 +00:00
JCTyBlaidd
69fb6413dd
Tidy up comments and function layout, should fix most of the review notes.
2020-11-15 18:30:26 +00:00
Ralf Jung
43673d9a87
rustup
2020-11-11 10:29:10 +01:00
JCTyBlaidd
2a40d9b7a0
More aggressive vector index re-use, and added some tests.
2020-11-06 17:29:54 +00:00
Ralf Jung
f31f00d5af
rustup
2020-11-05 17:09:44 +01:00
JCTyBlaidd
c70bbea257
Move to use of thread termination hook for vector re-use,
...
convert validate atomic op to use shared reference and get_raw
instead of get_raw_mut so it can be used for validate_atomic_load as well
2020-11-05 14:18:28 +00:00
JCTyBlaidd
9cb6b8da3f
Split out vector_clock to separate file, general tidy up of some of the
...
code & add support for vector index re-use for multiple threads
after termination.
2020-11-05 03:54:39 +00:00
JCTyBlaidd
95c99b2044
Detect races between atomic and non-atomic accesses of a variable,
...
previously only data races between two non-atomic accesses were
detected.
2020-11-04 21:35:48 +00:00
JCTyBlaidd
fe2e857cc3
Add newlines at end of file + use replace.
...
add dangling thread variant of one of the benchmarks
2020-11-02 13:08:09 +00:00
JCTyBlaidd
cae4302003
Fix & rebase
2020-11-02 03:06:30 +00:00
JCTyBlaidd
ed32b260f9
Add tests, and fix bug in atomic RMW relaxed stores
2020-11-02 02:57:06 +00:00
JCTyBlaidd
89814f1b3f
Initial data-race detector,
...
passes all current tests but additional tests are required
2020-11-02 02:57:05 +00:00
Ralf Jung
194451345d
add an option to track raw pointer tags in Stacked Borrows
2020-10-28 12:23:35 +01:00
Ralf Jung
39f7b35327
Stacked Borrows: print affected memory location on errors
2020-10-28 12:04:39 +01:00
Ralf Jung
086e9c49a9
pointer tag tracking: also show when tag is being created
2020-10-27 14:22:29 +01:00
Camelid
05e9ae042c
Make miri_default_args()
a constant
2020-10-24 12:46:38 -07:00
est31
1ae157bc9e
Replace target.target with target
...
Rustc removed the target wrapper and exposed the target directly.
Result of running:
find . -type f -exec sed -i -e 's/target\.target\([)\.,;]\)/target\1/g' {} \;
Plus one manual edit of the rust-version file
2020-10-15 21:18:23 +02:00
bors
73d5c42076
Auto merge of #1580 - Aaron1011:feature/backtrace-fn-ptr, r=RalfJung
...
Add an `fn_ptr` field to `MiriFrame`
The `backtrace-rs` crate can use this to implement
`Frame::symbol_address`, which is used to skip frames
above the call to `Backtrace::capture` on the stack.
The function pointer will not be useable for comparison purposes if the
function is generic, as CTFE creates a new function pointer for each
cast of a (monomorphized) generic function. However, this already
affects code running under Miri, and isn't a problem for `backtrace-rs`
(which only casts a non-generic function).
I've added logic to allow `MiriFrame` to have either 4 or 5 fields - if
a 5th field is present, we write the function pointer to it.
2020-10-11 22:34:57 +00:00
Aaron Hill
c889eba4b2
Add comment about deprecation
2020-10-11 17:57:49 -04:00
Aaron Hill
0893ea1973
Rustup
...
This gets Miri building again after the `run_compiler` changes
2020-10-11 17:31:52 -04:00
Aaron Hill
6a6767fa2a
Apply suggestions from code review
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2020-10-11 13:40:00 -04:00