- 07 9月, 2018 1 次提交
-
-
由 Niko Matsakis 提交于
-
- 04 9月, 2018 3 次提交
-
-
由 Bruno Dutra 提交于
-
由 Bruno Dutra 提交于
-
由 Bruno Dutra 提交于
-
- 01 9月, 2018 1 次提交
-
-
由 Ralf Jung 提交于
-
- 29 8月, 2018 3 次提交
- 28 8月, 2018 7 次提交
-
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
this means we can get rid of the public allocate_op, and make OpTy only constructible in librustc_mir
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
* Unify the two maps in memory to store the allocation and its kind together. * Share the handling of statics between CTFE and miri: The miri engine always uses "lazy" `AllocType::Static` when encountering a static. Acessing that static invokes CTFE (no matter the machine). The machine only has any influence when writing to a static, which CTFE outright rejects (but miri makes a copy-on-write). * Add an `AllocId` to by-ref consts so miri can use them as operands without making copies. * Move responsibilities around for the `eval_fn_call` machine hook: The hook just has to find the MIR (or entirely take care of everything); pushing the new stack frame is taken care of by the miri engine. * Expose the intrinsics and lang items implemented by CTFE so miri does not have to reimplement them.
-
- 24 8月, 2018 1 次提交
-
-
由 Bernardo Meurer 提交于
-
- 23 8月, 2018 4 次提交
-
-
由 Bernardo Meurer 提交于
-
由 Bernardo Meurer 提交于
-
由 Bernardo Meurer 提交于
-
由 Bernardo Meurer 提交于
-
- 22 8月, 2018 11 次提交
-
-
由 varkor 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
This is still roughly 45ns slower than the old state, because it now works with an MPlaceTy and uses the appropriate abstractions, instead of working with a ptr-align pair directly.
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
- The logging in step.rs becomes debug! to make it stand out a bit more - Dump value of operands (in `eval_operands`) - Try to log a bit less verbose
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
* Value gets renamed to Operand, so that now interpret::{Place, Operand} are the "dynamic" versions of mir::{Place, Operand}. * Operand and Place share the data for their "stuff is in memory"-base in a new type, MemPlace. This also makes it possible to give some more precise types in other areas. Both Operand and MemPlace have methods available to project into fields (and other kinds of projections) without causing further allocations. * The type for "a Scalar or a ScalarPair" is called Value, and again used to give some more precise types. * All of these have versions with an attached layout, so that we can more often drag the layout along instead of recomputing it. This lets us get rid of `PlaceExtra::Downcast`. MPlaceTy and PlaceTy can only be constructed in place.rs, making sure the layout is handled properly. (The same should eventually be done for ValTy and OpTy.) * All the high-level functions to write typed memory take a Place, and live in place.rs. All the high-level typed functions to read typed memory take an Operand, and live in operands.rs.
-
- 01 8月, 2018 3 次提交
-
-
由 Oliver Schneider 提交于
-
由 Oliver Schneider 提交于
-
由 Oliver Schneider 提交于
-
- 30 7月, 2018 1 次提交
-
-
由 Oliver Schneider 提交于
-
- 23 7月, 2018 1 次提交
-
-
由 Oliver Schneider 提交于
-
- 05 7月, 2018 3 次提交
-
-
由 Dylan MacKenzie 提交于
This reverts commit 59d21c526c036d7097d05edd6dffdad9c5b1cb62, and uses tuple to store the mutable parts of an EvalContext (which now includes `Machine`). This requires that `Machine` be `Clone`.
-
由 Dylan MacKenzie 提交于
I use a pattern binding in each custom impl, so that adding fields to `Memory` or `Frame` will cause a compiler error instead of causing e.g. `PartialEq` to become invalid. This may be too cute. This adds several requirements to `Machine::MemoryData`. These can be removed if we don't want this associated type to be part of the equality of `Memory`.
-
由 Dylan MacKenzie 提交于
Change surrounding code to use accessor methods to refer to these fields. Similar changes have not yet been made in tools/miri
-
- 04 6月, 2018 1 次提交
-
-
由 Oliver Schneider 提交于
-