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

[MIR] non-zeroing drop #33622

Merged
merged 11 commits into from
Jun 5, 2016
Merged

[MIR] non-zeroing drop #33622

merged 11 commits into from
Jun 5, 2016

Commits on Jun 3, 2016

  1. introduce DropAndReplace for translating assignments

    this introduces a DropAndReplace terminator as a fix to rust-lang#30380. That terminator
    is suppsoed to be translated by desugaring during drop elaboration, which is
    not implemented in this commit, so this breaks `-Z orbit` temporarily.
    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    de7cb0f View commit details
    Browse the repository at this point in the history
  2. implement drop elaboration

    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    a091cfd View commit details
    Browse the repository at this point in the history
  3. address review comments

    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    8d6d646 View commit details
    Browse the repository at this point in the history
  4. remove filling on drop

    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    4fff195 View commit details
    Browse the repository at this point in the history
  5. fix ICEs with RUST_LOG

    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    f6068ea View commit details
    Browse the repository at this point in the history
  6. check for is_cleanup violations in MIR typeck

    There weren't any in practice, but as these cause MSVC-only problems, the
    check looks like a good idea.
    arielb1 committed Jun 3, 2016
    Configuration menu
    Copy the full SHA
    148f842 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2016

  1. jump to the cleanup block in the unwind path for open_drop_for_box

    silly bug. Hopefully the last one.
    arielb1 committed Jun 4, 2016
    Configuration menu
    Copy the full SHA
    506086e View commit details
    Browse the repository at this point in the history
  2. fix translation of terminators in MSVC cleanup blocks

    MSVC requires unwinding code to be split to a tree of *funclets*, where each funclet
    can only branch to itself or to to its parent.
    
    Luckily, the code we generates matches this pattern. Recover that structure in
    an analyze pass and translate according to that.
    arielb1 committed Jun 4, 2016
    Configuration menu
    Copy the full SHA
    1ae7ae0 View commit details
    Browse the repository at this point in the history
  3. fix fallout in tests

    arielb1 committed Jun 4, 2016
    Configuration menu
    Copy the full SHA
    4248269 View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2016

  1. break critical edges only when needed

    the *only* place where critical edges need to be broken is on Call
    instructions, so only break them there.
    arielb1 committed Jun 5, 2016
    Configuration menu
    Copy the full SHA
    4106ab2 View commit details
    Browse the repository at this point in the history
  2. Update LLVM

    Picks up the fix for PR28005
    arielb1 committed Jun 5, 2016
    Configuration menu
    Copy the full SHA
    063f882 View commit details
    Browse the repository at this point in the history