- 10 10月, 2018 2 次提交
- 30 9月, 2018 3 次提交
-
-
由 Jorge Aparicio 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
- 29 9月, 2018 1 次提交
-
- 23 9月, 2018 1 次提交
-
-
由 Jorge Aparicio 提交于
-
- 20 9月, 2018 1 次提交
-
-
由 Ralf Jung 提交于
-
- 15 9月, 2018 1 次提交
-
-
由 Ralf Jung 提交于
keep around some information for dead allocations so that we can use it to make sure a dangling ptr aligned and non-NULL
-
- 11 9月, 2018 1 次提交
-
-
由 Oliver Schneider 提交于
-
- 07 9月, 2018 1 次提交
-
-
由 Niko Matsakis 提交于
-
- 04 9月, 2018 2 次提交
-
-
由 Bruno Dutra 提交于
-
由 Bruno Dutra 提交于
-
- 29 8月, 2018 4 次提交
- 28 8月, 2018 6 次提交
-
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
to make sure that it does not access private implementation details
-
由 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.
-
- 23 8月, 2018 2 次提交
-
-
由 Bernardo Meurer 提交于
-
由 Oliver Schneider 提交于
-
- 22 8月, 2018 9 次提交
-
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 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 提交于
- 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 提交于
* 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.
-