Ralf Jung
|
3c652032c0
|
be more clear which stack we are talking about
|
2019-02-12 10:51:03 +01:00 |
|
Ralf Jung
|
4f9c14c256
|
deduplicate RangeMap elements in iter_mut
This cuts down execution time of the benchmark in the OP of https://github.com/solson/miri/issues/593 by another 25%, and it cuts max-RSS by 90% (!)
|
2019-01-07 15:10:22 +01:00 |
|
Ralf Jung
|
7e9098ff69
|
treat ref-to-raw cast like a reborrow: do a special kind of retag
|
2018-12-12 11:11:20 +01:00 |
|
Ralf Jung
|
383d215386
|
make some functions private to StackedBorrows
|
2018-12-11 14:18:51 +01:00 |
|
Ralf Jung
|
9de605b32f
|
avoid repeating signatures in EvalContext extension traits
|
2018-12-11 14:16:58 +01:00 |
|
Ralf Jung
|
61f20761d3
|
Merge branch 'master' into stacked-borrows-2-phase
|
2018-12-03 11:11:32 +01:00 |
|
Ralf Jung
|
d11a6766ad
|
use assert
|
2018-12-03 10:26:39 +01:00 |
|
Ralf Jung
|
0e44876a2d
|
fix mutability gap: do not allow shared mutation when creating frozen reference
|
2018-12-03 09:15:18 +01:00 |
|
Ralf Jung
|
b2305da8d0
|
assert some sense
|
2018-12-02 13:30:09 +01:00 |
|
Ralf Jung
|
479eb3bd2b
|
support for basic (non-overlapping) 2-phase borrows
|
2018-12-02 13:30:09 +01:00 |
|
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
|
26fe778c55
|
Typo
Co-Authored-By: RalfJung <post@ralfj.de>
|
2018-11-28 09:58:23 +01:00 |
|
Ralf Jung
|
97e010f5b9
|
barriers prevent deallocation
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
194710e112
|
no barriers for boxes
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
dd94930ee3
|
implement function barriers
|
2018-11-27 14:26:23 +01:00 |
|
Ralf Jung
|
215ec38624
|
track call IDs
|
2018-11-27 14:25:20 +01:00 |
|
Ralf Jung
|
e9370d2b74
|
adjust for memory_allocated hook, make RangeMap preallocated with a fixed size
|
2018-11-27 14:25:20 +01:00 |
|
Oliver Scherer
|
32e93ed776
|
Update to Memory -> Allocation method move
|
2018-11-23 17:00:31 +01:00 |
|
Ralf Jung
|
694d2490f1
|
slightly more verbose error msg
|
2018-11-21 16:02:38 +01:00 |
|
Ralf Jung
|
41f89beb3f
|
if let
|
2018-11-21 16:01:39 +01:00 |
|
Ralf Jung
|
ec8cc029c1
|
on a deref, check that we are not using a mutable ref with a frozen tag
|
2018-11-21 15:44:47 +01:00 |
|
Ralf Jung
|
6085865975
|
adjust for InboundsCheck parameter of memory bounds check
|
2018-11-20 08:45:25 +01:00 |
|
Ralf Jung
|
19f8a9db7d
|
Boxes can also use the fast path
|
2018-11-17 12:35:58 +01:00 |
|
Ralf Jung
|
c847071355
|
add comment about not using builtin_deref
|
2018-11-17 12:33:44 +01:00 |
|
Ralf Jung
|
880229d4c3
|
escape-on-cast, now ptr-deref does not change the tag at all, ever
|
2018-11-17 10:05:40 +01:00 |
|
Ralf Jung
|
b7dbb5e2a7
|
also consider boxes like unique references
|
2018-11-17 10:05:40 +01:00 |
|
Ralf Jung
|
36b97cd76c
|
Factor out common top-level code from escape-to-raw and retag
|
2018-11-16 11:24:01 +01:00 |
|
Ralf Jung
|
a1f895d6f2
|
retagging: descent into values, type-driven
|
2018-11-16 11:09:33 +01:00 |
|
Ralf Jung
|
60e26af323
|
add a sanity assertion
|
2018-11-16 08:40:00 +01:00 |
|
Ralf Jung
|
cf1746222e
|
we no longer even try pushing to a frozen location
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
f521fd5e0f
|
let's call this a redundant reborrow
|
2018-11-15 21:22:05 +01:00 |
|
Ralf Jung
|
c234009fdd
|
generalize reborrow-to-raw exception to a general redundancy check
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
5a801c0dc1
|
adjust comment
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
a87e952102
|
Separate deref and access into different operations; add special exception for creating raw references
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
a94e197105
|
better test the special exception for reading through unique when things are shared
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
020313dd85
|
make freezing inherently part of the high-level reactivate/initiate operations
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
09919c2b59
|
Retag is the only operation that generates new tags
|
2018-11-15 09:35:40 +01:00 |
|
Ralf Jung
|
f5bd85d009
|
update for memory_deallocated moving to AllocExtra
|
2018-11-14 16:03:38 +01:00 |
|
Ralf Jung
|
e7aa5c68ff
|
Update rustc for AllocationExtra trait
Based on https://github.com/solson/miri/pull/493 but there were more conflicts
than code so I opted not to cherry-pick.
|
2018-11-12 08:54:12 +01:00 |
|
Ralf Jung
|
00936316d1
|
treat shared and raw borrows alike
|
2018-11-08 08:29:34 +01:00 |
|
Ralf Jung
|
74635a57e2
|
re-do large parts of stacked borrows, now with proper support for partiall frozen data
|
2018-11-08 08:29:34 +01:00 |
|
Ralf Jung
|
9edac3189a
|
rustup
|
2018-11-05 08:52:02 +01:00 |
|
Ralf Jung
|
cb691b7ed9
|
comment on mut-to-shr transmutes
|
2018-11-03 11:42:38 +01:00 |
|
Ralf Jung
|
a68779fd16
|
use crate:: import to make edition port easier later
|
2018-11-01 09:00:09 +01:00 |
|
Ralf Jung
|
81534496dc
|
rename RefKind to UsageKind, because it not only used for references now
|
2018-11-01 08:58:03 +01:00 |
|
Ralf Jung
|
478f137c39
|
put all the logic into reactivatable()
|
2018-11-01 08:58:03 +01:00 |
|
Ralf Jung
|
85f821d7e9
|
unify checks on memory access and reborrowing, and update for Machine trait change
|
2018-11-01 08:58:03 +01:00 |
|
Ralf Jung
|
bba3c49e84
|
basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref
|
2018-11-01 08:58:03 +01:00 |
|
Ralf Jung
|
7ac0e79ad5
|
stub Retag hook; fix tests for removal of -Zmir-emit-validate
|
2018-11-01 08:58:03 +01:00 |
|
Ralf Jung
|
1fa0ff88c0
|
fix nits
|
2018-10-30 10:41:01 +01:00 |
|
Ralf Jung
|
a34b9c7b70
|
make some things public for the benefit of priroda
|
2018-10-24 11:39:31 +02:00 |
|
Ralf Jung
|
5388037f8a
|
remove code duplication by letting reactivatable() compute what reactivate() has to do
|
2018-10-23 15:59:50 +02:00 |
|
Ralf Jung
|
fe83ef323c
|
also run compile-fail tests with and without optimizations
|
2018-10-23 13:09:17 +02:00 |
|
Ralf Jung
|
26bb4f79dc
|
get rid of implicit Raw at bottom of stack; locals get a uniq at their bottom
|
2018-10-22 18:17:37 +02:00 |
|
Ralf Jung
|
01828fde53
|
respect memory's privacy
|
2018-10-22 16:48:10 +02:00 |
|
Ralf Jung
|
dd1558f337
|
rustc update and be very selective about what we accept on a deref
|
2018-10-22 16:48:09 +02:00 |
|
Ralf Jung
|
1ae1b9bfea
|
adapt to rustc API changes and factor out computing the tag for ty+mutbl
|
2018-10-22 16:45:03 +02:00 |
|
Ralf Jung
|
1a7fb7ec3c
|
expand comment about incomplete support for interior mutability
|
2018-10-22 12:51:47 +02:00 |
|
Ralf Jung
|
b259512c57
|
bump for ENABLE_PTR_TRACKING_HOOKS, and remove some dead code
|
2018-10-17 17:36:07 +02:00 |
|
Ralf Jung
|
d4b78b36ab
|
stacked borrows: enforcement at memory accesses
|
2018-10-17 15:15:53 +02:00 |
|
Ralf Jung
|
66b4bb7cf2
|
stacked borrows: track refs and derefs
|
2018-10-16 18:35:27 +02:00 |
|
Ralf Jung
|
b84f7e2029
|
add Borrow tag to pointers; remove old locking code
|
2018-10-16 18:35:27 +02:00 |
|