Commit Graph

1042 Commits

Author SHA1 Message Date
David Renshaw bb2bfb4353 update for upstream rename: CodeExtent -> Scope 2017-09-03 22:39:03 -04:00
Oliver Schneider 58a59e9d23 Rustup (generator support) 2017-08-30 13:16:27 +02:00
Oliver Schneider 506a5c7910 Mir optimizations treat single variant enums as structs 2017-08-29 12:26:20 +02:00
Oliver Schneider 88fc45b37c Get some more rustc tests working 2017-08-29 11:58:22 +02:00
Oliver Schneider 206f0bd6df Fix panic in subslice patterns of arrays (fixes #276) 2017-08-29 10:03:00 +02:00
Oliver Schneider dd5b0100f3 Merge remote-tracking branch 'origin/master' into memory 2017-08-28 16:13:09 +02:00
Oliver Schneider 2f0dcfba1d Simplify write_value_to_ptr 2017-08-28 16:06:49 +02:00
Oliver Schneider 129b914bdc int_align has no dynamic error case 2017-08-28 15:58:58 +02:00
Oliver Schneider e53e9b9e63 Deduplicate writing null case of struct wrapped nullable pointers 2017-08-28 15:27:50 +02:00
Oliver Schneider ac7dfcac38 Fix #313 by correctly copying relocations when doing overlapping copies 2017-08-28 14:08:55 +02:00
Oliver Schneider 1fce886ac3 Make some things public that are required by priroda 2017-08-28 14:08:10 +02:00
Oliver Schneider 3464401576 Merge branch 'master' into memory 2017-08-26 23:13:55 +02:00
David Renshaw 8b5f22c3fd use rustc version of fulfill_obligation now that we can 2017-08-26 13:48:59 -04:00
Ralf Jung 2307d6fc5b Merge branch 'master' into memory 2017-08-26 13:51:13 +02:00
Ralf Jung 8ce6b06d52 Remove specialize float/bool read/write methods from memory
Notice that the write methods were previously unused, so if this makes us handle some things incorrectly, they probably were already broken
2017-08-25 19:33:12 +02:00
Ralf Jung b1ca65447a refactor memory write API to match read API 2017-08-25 19:08:04 +02:00
Ralf Jung f036fe0d32 refactor memory read API: provide only size-based, no type-based methods 2017-08-25 16:20:13 +02:00
Ralf Jung 8539728607 memory: make sure we check non-NULL/undef even fore 0-sized accesses 2017-08-25 14:41:59 +02:00
Oliver Schneider fad1bc8b20 Merge branch 'master' into drop 2017-08-24 23:52:36 +02:00
Oliver Schneider 19018852c3 Simplify dropping by reusing eval_fn_call 2017-08-24 16:04:50 +02:00
Oliver Schneider 110d50e7f9 Merge branch 'master' into libstd 2017-08-24 15:30:35 +02:00
Oliver Schneider 9ede346ee2 Refactoring: Couple values and types into an object when passed around together 2017-08-24 14:42:42 +02:00
Ralf Jung e332ab9b13 Handle closures in get_field_ty
Fixes #304
2017-08-24 13:34:05 +02:00
Oliver Schneider f75dd90961 Also reuse function pointer shims and drop glue from rustc 2017-08-23 17:46:36 +02:00
Oliver Schneider 7b8e2c772d Rustup (Clone is now a builtin trait) 2017-08-23 17:24:38 +02:00
Ralf Jung 7e5d971c56 fix warnings; make test suite pass again 2017-08-12 09:45:44 -07:00
Ralf Jung 1326aed02c rustfmt
Except for error.rs, the result there looks rather ugly
2017-08-10 08:48:41 -07:00
Ralf Jung 8e8c9c862c turns out we can enable this sanity check now 2017-08-09 22:32:13 -07:00
Ralf Jung 5e018b1deb analyzing hashmap.rs uncovered a deeper problem; disable validation there for now 2017-08-09 15:49:47 -07:00
Ralf Jung 7b5f8a36ab try harder to preserve regions when doing inference
This is not complete yet, but it is enough to make unsized-tuple-impls work.
2017-08-09 15:49:47 -07:00
Ralf Jung 668491a892 Work on making validation test pass again
Turns out that tracking write locks by their lifetime is not precise enough,
but for now, we don't have an alternative.  Also, we need to force_allocate
what we acquire or else the memory will not be in the right state.
2017-08-09 15:49:47 -07:00
Ralf Jung de80bcbdbf some tests for RangeMap 2017-08-09 15:49:47 -07:00
Oliver Schneider 91db25bdef Rename destructure method to into_alloc_id_kind 2017-08-09 14:54:37 +02:00
Oliver Schneider 81f5de7f05 rename memory::Kind to memory::MemoryKind 2017-08-09 14:53:22 +02:00
Oliver Schneider 9e787fbd82 Dump all allocs when dumping locals 2017-08-08 17:09:26 +02:00
Oliver Schneider 897b563e70 clarify which function is pushing a global 2017-08-08 17:09:26 +02:00
Oliver Schneider 3ce57d1225 Remove unused function 2017-08-08 17:09:26 +02:00
Oliver Schneider 8ab1eeef51 Implement packed statics 2017-08-08 17:09:26 +02:00
Oliver Schneider 181851fc6b Always allocate for globals
statics are rare and constants are copied anyway.
Reading from a constant should then yield a `ByVal` again if possible.
2017-08-08 17:09:26 +02:00
Oliver Schneider 4ba2b82f31 Split the alloc id address space into functions and normal allocs
instead of interleaving them as before.
The next step is to also separate out static memory into its own
address space.
2017-08-08 17:09:25 +02:00
Ralf Jung 847396e412 Re-do memory locking (again). Now with proper support for multiple independent shared borrows of the same mutable reference. 2017-08-07 12:57:32 -07:00
Oliver Schneider e7d8037ebf Rustup 2017-08-07 12:37:15 -07:00
Oliver Schneider b59c0927f6 Merge pull request #283 from RalfJung/backtrace
Backtrace performance
2017-08-05 16:29:45 +02:00
Ralf Jung 2a1d7666ed Merge pull request #286 from RalfJung/mir-validate
Update MIR validation and test it
2017-08-04 22:02:52 -07:00
Ralf Jung fb2ed457c6 consolidate making Undef release a NOP in one place 2017-08-04 16:02:16 -07:00
Ralf Jung ac49e7c650 only collect backtrace when RUST_BACKTRACE is set; resolve symbols lazily when printing 2017-08-04 10:55:35 -07:00
Oliver Schneider 181bb30d07 Rustc reorders fields, but miri expects them in source order 2017-08-04 13:43:17 +02:00
Ralf Jung 58a17026c9 Let -Zmir-emit-validate also control whether miri even acts on the validation commands 2017-08-03 18:13:23 -07:00
Ralf Jung 3754572b0a Release of an Undef local is fine, and a NOP 2017-08-03 18:12:48 -07:00
Ralf Jung 85dc3e563e make execution with full MIR work: need to whitelist Arc drop impl and whatever it calls 2017-08-03 18:12:26 -07:00