1. 23 8月, 2018 1 次提交
  2. 22 8月, 2018 9 次提交
    • R
      fix layout sanity check · f3e7efc8
      Ralf Jung 提交于
      f3e7efc8
    • R
    • R
    • R
      optimize validation iterating over the elements of an array · 956b51f7
      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.
      956b51f7
    • R
      fix formatting nits · ad8deba2
      Ralf Jung 提交于
      ad8deba2
    • R
      avoid allocating for ZST · 730098bc
      Ralf Jung 提交于
      730098bc
    • R
      try_read_value_from_ptr -> try_read_value_from_mplace · 23d86b01
      Ralf Jung 提交于
      23d86b01
    • R
      Tweak logging · e860ab2d
      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
      e860ab2d
    • R
      miri/CTFE refactor · ad2de8b4
      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.
      ad2de8b4