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 12 pull requests #76951

Closed
wants to merge 52 commits into from

Commits on Sep 4, 2020

  1. shim: monomorphic FnPtrShims during construction

    This commit adjusts MIR shim construction so that substitutions are
    applied to function pointer shims during construction, rather than
    during codegen (as determined by `substs_for_mir_body`) - as
    substitutions will no longer occur during codegen, function pointer
    shims can now be polymorphic without incurring double substitutions.
    
    Signed-off-by: David Wood <david@davidtw.co>
    davidtwco committed Sep 4, 2020
    Configuration menu
    Copy the full SHA
    f8376b5 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2020

  1. Make some methods of Pin unstable const

    Make the following methods unstable const under the `const_pin` feature:
    - `new`
    - `new_unchecked`
    - `into_inner`
    - `into_inner_unchecked`
    - `get_ref`
    - `into_ref`
    
    Also adds tests for these methods in a const context.
    
    Tracking issue: rust-lang#76654
    CDirkx committed Sep 12, 2020
    Configuration menu
    Copy the full SHA
    8f27e3c View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2020

  1. Configuration menu
    Copy the full SHA
    176956c View commit details
    Browse the repository at this point in the history

Commits on Sep 16, 2020

  1. Only get ImplKind::Impl once

    tesuji committed Sep 16, 2020
    Configuration menu
    Copy the full SHA
    eede953 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    94dae60 View commit details
    Browse the repository at this point in the history

Commits on Sep 17, 2020

  1. Fix wording in mir doc

    pickfire authored Sep 17, 2020
    Configuration menu
    Copy the full SHA
    b7c8bea View commit details
    Browse the repository at this point in the history
  2. Don't compile regex at every function call.

    Use `SyncOnceCell` to only compile it once.
    I believe this still adds some kind of locking mechanism?
    hbina committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    f4a7149 View commit details
    Browse the repository at this point in the history
  3. Remove intrinsics::arith_offset use from libarena

    The use of arith_offset was added in 803e9ae
    before the stable wrapper of the intrinsic was available.
    
    https://doc.rust-lang.org/stable/std/intrinsics/fn.arith_offset.html
    est31 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    b479139 View commit details
    Browse the repository at this point in the history
  4. Replace const_generics feature gate with min_const_generics

    The latter is on the path to stabilization.
    est31 committed Sep 17, 2020
    Configuration menu
    Copy the full SHA
    4fe6ca3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ebdea01 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    1dd3df6 View commit details
    Browse the repository at this point in the history

Commits on Sep 18, 2020

  1. Configuration menu
    Copy the full SHA
    4382436 View commit details
    Browse the repository at this point in the history
  2. char not char

    varkor committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    c9c5068 View commit details
    Browse the repository at this point in the history
  3. Bless mir-opt tests

    varkor committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    5ec9e96 View commit details
    Browse the repository at this point in the history
  4. Bless mir-opt 32-bit tests

    varkor committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    e2e000a View commit details
    Browse the repository at this point in the history
  5. Make some methods of Pin<&mut T> unstable const

    Make the following methods unstable const under the `const_pin` feature:
    - `into_ref`
    - `get_mut`
    - `get_unchecked_mut`
    CDirkx committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    e3c6e46 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    78ff69b View commit details
    Browse the repository at this point in the history
  7. simplify_try: print dest_prop diff and bless

    The new diff is to convince me that this is correct and nothing funky
    is going on.
    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    43ad8e4 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    1649895 View commit details
    Browse the repository at this point in the history
  9. Make nrvo-simple set mir-opt-level=1

    The additional copies are due to the lack of copy propagation
    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    8a7b1c3 View commit details
    Browse the repository at this point in the history
  10. Bless mir-opt tests

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    8a3e2b7 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    812d4bb View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    7dbc7f7 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    402f863 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    665a98d View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    ab26fb1 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    ddd6930 View commit details
    Browse the repository at this point in the history
  17. Record intra-statement/terminator conflicts

    Some MIR statements and terminators have an (undocumented...) invariant
    that some of their input and outputs must not overlap. This records
    conflicts between locals used in these positions.
    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    88538ad View commit details
    Browse the repository at this point in the history
  18. More logging

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    934634e View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    484db5b View commit details
    Browse the repository at this point in the history
  20. Fix rebase fallout

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    5728834 View commit details
    Browse the repository at this point in the history
  21. Limit block count

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    7af964f View commit details
    Browse the repository at this point in the history
  22. Fix rebase fallout

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    cd5d720 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    682de94 View commit details
    Browse the repository at this point in the history
  24. Return Place by value

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    ffd9445 View commit details
    Browse the repository at this point in the history
  25. Clarify FIXME

    jonas-schievink committed Sep 18, 2020
    Configuration menu
    Copy the full SHA
    2f9271b View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2020

  1. cleanup promotion const_kind checks

    in particular allow a few more promotions for consistency when they were already allowed in other contexts
    RalfJung committed Sep 19, 2020
    Configuration menu
    Copy the full SHA
    4d1ef03 View commit details
    Browse the repository at this point in the history
  2. fix doc comment

    RalfJung committed Sep 19, 2020
    Configuration menu
    Copy the full SHA
    7febd5a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7b99c8e View commit details
    Browse the repository at this point in the history
  4. fix some comments

    RalfJung committed Sep 19, 2020
    Configuration menu
    Copy the full SHA
    9216eb8 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2020

  1. Rollup merge of rust-lang#72632 - jonas-schievink:dest-prop, r=oli-obk

    Implement a generic Destination Propagation optimization on MIR
    
    This takes the work that was originally started by @eddyb in rust-lang#47954, and then explored by me in rust-lang#71003, and implements it in a general (ie. not limited to acyclic CFGs) and dataflow-driven way (so that no additional infrastructure in rustc is needed).
    
    The pass is configured to run at `mir-opt-level=2` and higher only. To enable it by default, some followup work on it is still needed:
    * Performance needs to be evaluated. I did some light optimization work and tested against `tuple-stress`, which caused trouble in my last attempt, but didn't go much in depth here.
      * We can also enable the pass only at `opt-level=2` and higher, if it is too slow to run in debug mode, but fine when optimizations run anyways.
    * Debuginfo needs to be fixed after locals are merged. I did not look into what is required for this.
    * Live ranges of locals (aka `StorageLive` and `StorageDead`) are currently deleted. We either need to decide that this is fine, or if not, merge the variable's live ranges (or remove these statements entirely – rust-lang#68622).
    
    Some benchmarks of the pass were done in rust-lang#72635.
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    3801bba View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#75346 - davidtwco:issue-69925-polymorphic-i…

    …nstancedef-fnptrshim, r=nikomatsakis
    
    shim: monomorphic `FnPtrShim`s during construction
    
    Fixes rust-lang#69925.
    
    This PR adjusts MIR shim construction so that substitutions are applied to function pointer shims during construction, rather than during codegen (as determined by `substs_for_mir_body`).
    
    r? @eddyb
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    a6a5859 View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#76411 - RalfJung:promote-in-const-fn, r=ecs…

    …tatic-morse
    
    Some promotion cleanup
    
    Based on top of both rust-lang#75502 and rust-lang#75585, this does some cleanup of the promotion code. The last 2 commits are new.
    
    * Remove the remaining cases where `const fn` is treated different from `fn`. This means no longer promoting ptr-to-int casts, raw ptr operations, and union field accesses in `const fn` -- or anywhere, for that matter. These are all unstable in const-context so this should not break any stable code. Fixes rust-lang#75586.
    * ~~Promote references to statics even outside statics (i.e., in functions) for consistency.~~
    * Promote `&mut []` everywhere, not just in non-`const` functions, for consistency.
    * Explain why we do not promote deref's of statics outside statics. ~~(This is the only remaining direct user of `const_kind`.)~~
    
    This can only land once the other two PRs land; I am mostly putting this up already because I couldn't wait ;) and to get some feedback from @rust-lang/wg-const-eval .
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    57fb055 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#76655 - CDirkx:const-pin, r=ecstatic-morse

    Make some methods of `Pin` unstable const
    
    Make the following methods unstable const under the `const_pin` feature:
    - `new`
    - `new_unchecked`
    - `into_inner`
    - `into_inner_unchecked`
    - `get_ref`
    - `into_ref`
    - `get_mut`
    - `get_unchecked_mut`
    
    Of these, `into_inner` and `into_inner_unchecked` require the unstable `const_precise_live_drops`.
    
    Also adds tests for these methods in a const context.
    
    Tracking issue: rust-lang#76654
    
    r? @ecstatic-morse
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    42fbe59 View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#76722 - ssomers:btree_send_sync, r=Mark-Sim…

    …ulacrum
    
    Test and fix Send and Sync traits of BTreeMap artefacts
    
    Fixes rust-lang#76686.
    
    I'm not quite sure what all this implies. E.g. comparing with the definitions for `NodeRef` in node.rs,  maybe an extra bound `T: 'a` is useful for something. The test compiles on stable/beta (apart from `drain_filter`) so I bet `Sync` is equally desirable.
    
    r? @Mark-Simulacrum
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    63bc0c4 View commit details
    Browse the repository at this point in the history
  6. Rollup merge of rust-lang#76754 - varkor:diagnostic-cleanup-ii, r=ecs…

    …tatic-morse
    
    Clean up diagnostics for arithmetic operation errors
    
    Plus a small tweak to a range pattern error message.
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    3dd5849 View commit details
    Browse the repository at this point in the history
  7. Rollup merge of rust-lang#76783 - lzutao:rd_impl_kind, r=GuillaumeGomez

    Only get ImplKind::Impl once
    
    With this, the code panics in one place instead of two.
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    7ad0db6 View commit details
    Browse the repository at this point in the history
  8. Rollup merge of rust-lang#76809 - matthiaskrgr:simplify_cond, r=varkor

    simplfy condition in ItemLowerer::with_trait_impl_ref()
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    7c7e824 View commit details
    Browse the repository at this point in the history
  9. Rollup merge of rust-lang#76815 - pickfire:patch-6, r=jonas-schievink

    Fix wording in mir doc
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    84f672f View commit details
    Browse the repository at this point in the history
  10. Rollup merge of rust-lang#76818 - hbina:dont_compile_regex_all_the_ti…

    …me, r=ecstatic-morse
    
    Don't compile regex at every function call.
    
    Use `SyncOnceCell` to only compile it once.
    I believe this still adds some kind of locking mechanism?
    
    Related issue: rust-lang#76817
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    c5f8123 View commit details
    Browse the repository at this point in the history
  11. Rollup merge of rust-lang#76821 - est31:remove_redundant_nightly_feat…

    …ures, r=oli-obk,Mark-Simulacrum
    
    Remove redundant nightly features
    
    Removes a bunch of redundant/outdated nightly features. The first commit removes a `core_intrinsics` use for which a stable wrapper has been provided since. The second commit replaces the `const_generics` feature with `min_const_generics` which might get stabilized this year. The third commit is the result of a trial/error run of removing every single feature and then adding it back if compile failed. A bunch of unused features are the result that the third commit removes.
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    0412fd6 View commit details
    Browse the repository at this point in the history
  12. Rollup merge of rust-lang#76823 - RalfJung:black-box-warn, r=joshtrip…

    …lett
    
    black_box: silence unused_mut warning when building with cfg(miri)
    Dylan-DPC authored Sep 20, 2020
    Configuration menu
    Copy the full SHA
    79af229 View commit details
    Browse the repository at this point in the history