Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Miri engine cleanup #53671

Merged
merged 21 commits into from
Aug 29, 2018
Merged

Miri engine cleanup #53671

merged 21 commits into from
Aug 29, 2018

Commits on Aug 27, 2018

  1. Miri Memory Work

    * 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.
    RalfJung committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    c141ccf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2592b20 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    286fc5c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    66d64ba View commit details
    Browse the repository at this point in the history
  5. Clean up function calling

    Still not as clean as I'd like it, but better
    RalfJung committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    aa645f3 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a5baea6 View commit details
    Browse the repository at this point in the history
  7. switch validation to use operand, not mplace

    this means we can get rid of the public allocate_op, and make OpTy only
    constructible in librustc_mir
    RalfJung committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    035c69f View commit details
    Browse the repository at this point in the history
  8. move const_eval out of rustc_mir::interpret

    to make sure that it does not access private implementation details
    RalfJung committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    ef96a60 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    9cfc9f0 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    548b373 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    89cfd08 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    c898e19 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    07bdd48 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    c38cc89 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    5b737db View commit details
    Browse the repository at this point in the history
  16. use associated const for machine controlling mutable statics

    So get rid of the IsStatic trait again
    RalfJung committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    6c78fa8 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2018

  1. address nits

    RalfJung committed Aug 28, 2018
    Configuration menu
    Copy the full SHA
    f96208c View commit details
    Browse the repository at this point in the history
  2. fix unsized extern types

    RalfJung committed Aug 28, 2018
    Configuration menu
    Copy the full SHA
    066d2ee View commit details
    Browse the repository at this point in the history
  3. restructure unary_op to also dispatch on type first; fix promotion wi…

    …th unary '-' overflowing
    RalfJung committed Aug 28, 2018
    Configuration menu
    Copy the full SHA
    e6a5a94 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    506dd70 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    c9b5fac View commit details
    Browse the repository at this point in the history