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] improve operand lifetimes #40133

Merged
merged 4 commits into from
Mar 3, 2017
Merged

Commits on Mar 2, 2017

  1. schedule drops on bindings only after initializing them

    This reduces the number of dynamic drops in libstd from 1141 to 899.
    However, without this change, the next patch would have created much
    more dynamic drops.
    
    A basic merge unswitching hack reduced the number of dynamic drops to
    644, with no effect on stack usage. I should be writing a more dedicated
    drop unswitching pass.
    
    No performance measurements.
    arielb1 committed Mar 2, 2017
    Configuration menu
    Copy the full SHA
    6755fb8 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2017

  1. make operands live to the end of their containing expression

    In MIR construction, operands need to live exactly until they are used,
    which is during the (sub)expression that made the call to `as_operand`.
    
    Before this PR, operands lived until the end of the temporary scope,
    which was sometimes unnecessarily longer and sometimes too short.
    
    Fixes rust-lang#38669.
    arielb1 committed Mar 3, 2017
    Configuration menu
    Copy the full SHA
    906c06a View commit details
    Browse the repository at this point in the history
  2. fix codegen test

    arielb1 committed Mar 3, 2017
    Configuration menu
    Copy the full SHA
    3ffa971 View commit details
    Browse the repository at this point in the history
  3. work around LLVM PR#32123

    arielb1 committed Mar 3, 2017
    Configuration menu
    Copy the full SHA
    f99f1f8 View commit details
    Browse the repository at this point in the history