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

Add a Use-Definition Chain implementation for the MIR. #62547

Closed
wants to merge 13 commits into from

Commits on Aug 8, 2019

  1. Configuration menu
    Copy the full SHA
    905818f View commit details
    Browse the repository at this point in the history
  2. Use new Place::base_direct API when possible

    Its functionality is duplicated in `borrowed_locals.rs` and
    `path_utils.rs`
    ecstatic-morse committed Aug 8, 2019
    Configuration menu
    Copy the full SHA
    0764641 View commit details
    Browse the repository at this point in the history
  3. Link lifetime of closure param to that of self in Place::iterate

    This informs callers that the lifetime of the reference to the
    underlying `PlaceBase` is the same as that of the `Place` being iterated
    over. This lets callers return a reference to the underlying `PlaceBase`
    from the closure passed to `Place::iterate`.
    ecstatic-morse committed Aug 8, 2019
    Configuration menu
    Copy the full SHA
    6359de1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    dcc4b9f View commit details
    Browse the repository at this point in the history
  5. Clean up rustc_peek

    We now use `dataflow::state_for_location` to get the dataflow state
    before calls to `rustc_peek`. The original version used a custom
    implementation that only looked at assignment statements.
    ecstatic-morse committed Aug 8, 2019
    Configuration menu
    Copy the full SHA
    dee972a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3594ff1 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    9d14411 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    53fa5a4 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    65c8fda View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    bdaa90a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cfd9320 View commit details
    Browse the repository at this point in the history
  12. Correctly determine which terminators can have side effects

    The previous code ignored that `Drop` terminators could execute custom
    `Drop` implementations which might mutate the environment. Now we
    correctly implement `has_side_effects` and tests that custom `Drop`
    impls are recorded as an indirect definition.
    ecstatic-morse committed Aug 8, 2019
    Configuration menu
    Copy the full SHA
    047e7ca View commit details
    Browse the repository at this point in the history
  13. Record the fact that rustc_peek has no side effects

    This means that calls to `rustc_peek` are no longer indirect definitions
    of any locals in the body. Other pure intrinsics (e.g. `transmute`)
    could also be added to the list of exceptions.
    ecstatic-morse committed Aug 8, 2019
    Configuration menu
    Copy the full SHA
    976ba13 View commit details
    Browse the repository at this point in the history