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

Rollup of 10 pull requests #69085

Closed
wants to merge 42 commits into from

Commits on Feb 2, 2020

  1. Don't requery the param_env of a union

    Union fields have the ParamEnv of the union.
    matthewjasper committed Feb 2, 2020
    Configuration menu
    Copy the full SHA
    91cf0e7 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    570c161 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3973322 View commit details
    Browse the repository at this point in the history
  4. Improve needs_drop query

    * Handle cycles in `needs_drop` correctly
    * Normalize types when computing `needs_drop`
    * Move queries from rustc to rustc_ty
    matthewjasper committed Feb 2, 2020
    Configuration menu
    Copy the full SHA
    d196521 View commit details
    Browse the repository at this point in the history
  5. Address review comments

    * Handle arrays with const-generic lengths
    * Use closure for repeated code.
    matthewjasper committed Feb 2, 2020
    Configuration menu
    Copy the full SHA
    d20646b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    465b862 View commit details
    Browse the repository at this point in the history

Commits on Feb 6, 2020

  1. Avoid instantiating many Parser structs in generic_extension.

    Currently, every iteration of the main loop in `generic_extension`
    instantiates a `Parser`, which is expensive because `Parser` is a large
    type. Many of those instantiations are only used immutably, particularly
    for simple-but-repetitive macros of the sort seen in `html5ever` and PR
    68836.
    
    This commit initializes a single "base" parser outside the loop, and
    then uses `Cow` to avoid cloning it except for the mutating iterations.
    This speeds up `html5ever` runs by up to 15%.
    nnethercote committed Feb 6, 2020
    Configuration menu
    Copy the full SHA
    6bf2cc2 View commit details
    Browse the repository at this point in the history
  2. Remove the Cow from Directory.

    The previous commit wrapped `Parser` within a `Cow` for the hot macro
    parsing path. As a result, there's no need for the `Cow` within
    `Directory`, because it lies within `Parser`.
    nnethercote committed Feb 6, 2020
    Configuration menu
    Copy the full SHA
    f840a95 View commit details
    Browse the repository at this point in the history
  3. Change condition ordering in parse_tt.

    This is a small win, because `Failure` is much more common than
    `Success`.
    nnethercote committed Feb 6, 2020
    Configuration menu
    Copy the full SHA
    2a13b24 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2020

  1. Apply suggestions from code review

    Co-Authored-By: varkor <[email protected]>
    matthewjasper and varkor committed Feb 9, 2020
    Configuration menu
    Copy the full SHA
    3eb5241 View commit details
    Browse the repository at this point in the history
  2. cache adt_drop_tys

    matthewjasper committed Feb 9, 2020
    Configuration menu
    Copy the full SHA
    842938a View commit details
    Browse the repository at this point in the history

Commits on Feb 10, 2020

  1. Configuration menu
    Copy the full SHA
    9e78ce0 View commit details
    Browse the repository at this point in the history
  2. add issue 69017 test

    chrissimpkins committed Feb 10, 2020
    Configuration menu
    Copy the full SHA
    fc3ecb2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    97d1f8d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    53b16fb View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e2b9d6e View commit details
    Browse the repository at this point in the history
  6. Add an into_engine method to Analysis

    This makes it more ergonomic to create a dataflow engine and obviates
    the need to pick between `new_gen_kill` and `new_generic`.
    ecstatic-morse committed Feb 10, 2020
    Configuration menu
    Copy the full SHA
    1ec9917 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c64dfd7 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    702096d View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    ce3f37b View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2020

  1. Configuration menu
    Copy the full SHA
    76aa29f View commit details
    Browse the repository at this point in the history
  2. Add self to .mailmap

    Bassetts committed Feb 11, 2020
    Configuration menu
    Copy the full SHA
    3884311 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    30a8353 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f639607 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    42d19a4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5860e78 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    168ca9a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    3ac920f View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    5f40fe9 View commit details
    Browse the repository at this point in the history
  10. Keyword docs

    Co-Authored-By: Mazdak Farrokhzad <[email protected]>
    Co-Authored-By: Tim Robinson <[email protected]>
    Co-Authored-By: Peter Todd <[email protected]>
    Co-Authored-By: Dylan DPC <[email protected]>
    5 people committed Feb 11, 2020
    Configuration menu
    Copy the full SHA
    8e26ad0 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    683ebc2 View commit details
    Browse the repository at this point in the history
  12. Fix outdated doc comment.

    jumbatm committed Feb 11, 2020
    Configuration menu
    Copy the full SHA
    c1ed84e View commit details
    Browse the repository at this point in the history

Commits on Feb 12, 2020

  1. Rollup merge of rust-lang#67695 - gilescope:truth, r=centril

    Added dyn and true keyword docs
    
    r? @Centril
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    c7addfb View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#68241 - ecstatic-morse:unified-dataflow-imp…

    …ls, r=pnkfelix
    
    Migrate borrowck dataflow impls to new framework
    
    This uses rust-lang#65672 to implement the dataflow analyses needed by borrowck. These include all the `InitializedPlaces` analyses as well as `Borrows`. Additionally, this PR contains several independent changes around the dataflow API which improve performance and make it more ergonomic.
    
    * An optimization that inhibits the caching of block transfer functions for acyclic MIR (~0.3% I-CNT savings).
    * A `ResultsVisitor` for dataflow results that is more efficient than `ResultsCursor` when we have to visit every statement unconditionally (~0.3% I-CNT savings).
    * An `into_engine` method on `Analysis` that selects the appropriate `Engine` constructor.
    * A `contains` method for `ResultsCursor` as a shorthand for `.get().contains()`.
    * A `find_descendants` helper on `MovePath` that replaces `has_any_child_of` on the old `FlowsAtLocation`
    
    These changes made porting the dataflow analyses much easier. Finally, this PR removes some now-unused code in `dataflow/at_location.rs` and elsewhere.
    
    You can view the perf results for the final version of this PR [here](https://perf.rust-lang.org/compare.html?start=29b854fb741809c29764e33fc17c32ba9c6523ba&end=6e516c1410c18cfe4eb6d030a39fdb73c8d8a4fe). Here's an example of the graphviz diagrams that are generated for the `MaybeInitializedPlaces` analysis.
    
    ![image](https://user-images.githubusercontent.com/29463364/72846117-c3e97d80-3c54-11ea-8171-3d48981c9ddd.png)
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    eb80eec View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#68679 - matthewjasper:needs-type-op, r=varkor

    Improve `ty.needs_drop`
    
    * Handle cycles in `needs_drop` correctly
    * Normalize types when computing `needs_drop`
    * Move queries from rustc to rustc_ty
    * Avoid query in simple cases
    
    reopens rust-lang#65918
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    410b326 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#68848 - nnethercote:hasten-macro-parsing, r…

    …=petrochenkov
    
    Hasten macro parsing
    
    r? @eddyb
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    8f813b7 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#68877 - estebank:point-at-params, r=petroch…

    …enkov
    
    On mismatched argument count point at arguments
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    c33d531 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#69027 - TimDiekmann:zeroed-alloc, r=Amanieu

    Add missing `_zeroed` varants to `AllocRef`
    
    The majority of the allocator wg has decided to add the missing `_zeroed` variants to `AllocRef`:
    
    > these should be added since they can be efficiently implemented with the `mremap` system call on Linux. `mremap` allows you to move/grow/shrink a memory mapping, and any new pages added for growth are guaranteed to be zeroed.
    >
    > If `AllocRef` does not have these methods then the user will have to manually write zeroes to the added memory since the API makes no guarantees on their contents.
    
    For the full discussion please see rust-lang/wg-allocators#14.
    
    This PR provides default implementations for `realloc_zeroed`, `alloc_excess_zeroed`, `realloc_excess_zeroed`, and `grow_in_place_zeroed`.
    
    r? @Amanieu
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    4b556ce View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#69032 - chrissimpkins:ice-yield-println-rus…

    …t-lang#69017, r=petrochenkov
    
    ICE in nightly-2020-02-08: handle TerminatorKind::Yield in librustc_mir::transform::promote_consts::Validator method
    
    IR: rust-lang#69017
    regressed commit: rust-lang@f8fd462
    Source: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=55e65a869e1f5fef64cc4462b1a5a087
    
    Addresses ICE reported in rust-lang#69017 by handling `TerminatorKind::Yield` in https://github.com/rust-lang/rust/blob/4d1241f5158ffd66730e094d8f199ed654ed52ae/src/librustc_mir/transform/promote_consts.rs#L465-L468.
    
    <details><summary>Nightly build</summary>
    <p>
    
    ```
    $ cargo +nightly build
    Compiling yielder v0.1.0 (/Users/chris/Desktop/tests/rustlang-tests/yielder)
    error: internal compiler error: src/librustc_mir/transform/promote_consts.rs:467: _1 = suspend(move _21) -> [resume: bb2, drop: bb3] not promotable
     --> src/main.rs:8:27
      |
    8 |         println!("-> {}", yield);
      |                           ^^^^^
    
    thread 'rustc' panicked at 'Box<Any>', <::std::macros::panic macros>:2:4
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    
    note: the compiler unexpectedly panicked. this is a bug.
    
    note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
    
    note: rustc 1.43.0-nightly (71c7e14 2020-02-09) running on x86_64-apple-darwin
    
    note: compiler flags: -C debuginfo=2 -C incremental --crate-type bin
    
    note: some of the compiler flags provided by cargo are hidden
    
    error: aborting due to previous error
    
    error: could not compile `yielder`.
    
    To learn more, run the command again with --verbose.
    ```
    
    </p>
    </details>
    
    <details><summary>Stage 1 dev build</summary>
    <p>
    
    ```
    $ cargo +stage1 build
    Compiling yielder v0.1.0 (/Users/chris/Desktop/tests/rustlang-tests/yielder)
    warning: function is never used: `gen`
     --> src/main.rs:6:4
      |
    6 | fn gen() -> impl Generator<usize> {
      |    ^^^
      |
      = note: `#[warn(dead_code)]` on by default
    
        Finished dev [unoptimized + debuginfo] target(s) in 0.53s
    ```
    
    </p>
    </details>
    
    @jonas-schievink @oli-obk
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    0d15165 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#69058 - TimDiekmann:box, r=Amanieu

    Preparation for allocator aware `Box`
    
    This cleans up the `Box` code a bit, and uses `Box::from_raw(ptr)` instead of `Box(ptr)`.
    Additionally, `box_free` and `exchange_malloc` now uses the `AllocRef` trait and a comment was added on how `box_free` is tied to `Box`.
    
    This a preparation for an upcoming PR, which makes `Box` aware of an allocator.
    
    r? @Amanieu
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    6d7bbcb View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#69070 - Bassetts:master, r=alexcrichton

    Add self to .mailmap
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    440e5c7 View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#69077 - jumbatm:fix-comment, r=Dylan-DPC

    Fix outdated doc comment.
    
    r? @RalfJung
    Dylan-DPC authored Feb 12, 2020
    Configuration menu
    Copy the full SHA
    19bd8af View commit details
    Browse the repository at this point in the history