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 4 pull requests #71876

Closed
wants to merge 8 commits into from

Commits on May 1, 2020

  1. doc: misc rustdoc things

    tshepang committed May 1, 2020
    Configuration menu
    Copy the full SHA
    5314f01 View commit details
    Browse the repository at this point in the history

Commits on May 2, 2020

  1. Added MIR constant propagation of Scalars into function call arguments

    - Documented rationale of current solution
    - Polished documentation
    felix91gr committed May 2, 2020
    Configuration menu
    Copy the full SHA
    d0dea9f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    16a0349 View commit details
    Browse the repository at this point in the history

Commits on May 4, 2020

  1. Add Option to Force Unwind Tables

    When panic != unwind, `nounwind` is added to all functions for a target.
    This can cause issues when a panic happens with RUST_BACKTRACE=1, as
    there needs to be a way to reconstruct the backtrace. There are three
    possible sources of this information: forcing frame pointers (for which
    an option exists already), debug info (for which an option exists), or
    unwind tables.
    
    Especially for embedded devices, forcing frame pointers can have code
    size overheads (RISC-V sees ~10% overheads, ARM sees ~2-3% overheads).
    In code, it can be the case that debug info is not kept, so it is useful
    to provide this third option, unwind tables, that users can use to
    reconstruct the call stack. Reconstructing this stack is harder than
    with frame pointers, but it is still possible.
    
    This commit adds a compiler option which allows a user to force the
    addition of unwind tables. Unwind tables cannot be disabled on targets
    that require them for correctness, or when using `-C panic=unwind`.
    lenary committed May 4, 2020
    Configuration menu
    Copy the full SHA
    cda9946 View commit details
    Browse the repository at this point in the history
  2. Rollup merge of rust-lang#69984 - lenary:lenary/force-uwtables, r=han…

    …na-kruppe
    
    Add Option to Force Unwind Tables
    
    When panic != unwind, `nounwind` is added to all functions for a target.
    This can cause issues when a panic happens with RUST_BACKTRACE=1, as
    there needs to be a way to reconstruct the backtrace. There are three
    possible sources of this information: forcing frame pointers (for which
    an option exists already), debug info (for which an option exists), or
    unwind tables.
    
    Especially for embedded devices, forcing frame pointers can have code
    size overheads (RISC-V sees ~10% overheads, ARM sees ~2-3% overheads).
    In production code, it can be the case that debug info is not kept, so it is useful
    to provide this third option, unwind tables, that users can use to
    reconstruct the call stack. Reconstructing this stack is harder than
    with frame pointers, but it is still possible.
    
    ---
    
    This came up in discussion on rust-lang#69890, and turned out to be a fairly simple addition.
    
    r? @hanna-kruppe
    Dylan-DPC authored May 4, 2020
    Configuration menu
    Copy the full SHA
    e6389ef View commit details
    Browse the repository at this point in the history
  3. Rollup merge of rust-lang#71697 - felix91gr:new_prop_into_fn_call, r=…

    …wesleywiser
    
    Added MIR constant propagation of Scalars into function call arguments
    
    Now for the function call arguments!
    
    Caveats:
    1. It's only being enabled at `mir-opt-2` or higher, because currently codegen gives performance regressions with this optimization.
    2. Only propagates Scalars. Tuples and references (references are `Indirect`, right??) are not being propagated into as of this PR.
    3. Maybe more tests would be nice?
    4. I need (shamefully) to ask @wesleywiser to write in his words (or explain to me, and then I can write it down) why we want to ignore propagation into `ScalarPairs` and `Indirect` arguments.
    
    r? @wesleywiser
    Dylan-DPC authored May 4, 2020
    Configuration menu
    Copy the full SHA
    c476b28 View commit details
    Browse the repository at this point in the history
  4. Rollup merge of rust-lang#71773 - tshepang:links, r=davidtwco

    doc: misc rustdoc things
    Dylan-DPC authored May 4, 2020
    Configuration menu
    Copy the full SHA
    547a54a View commit details
    Browse the repository at this point in the history
  5. Rollup merge of rust-lang#71810 - estebank:issue-71798, r=davidtwco

    Do not try to find binop method on RHS `TyErr`
    
    Fix rust-lang#71798.
    Dylan-DPC authored May 4, 2020
    Configuration menu
    Copy the full SHA
    cbae34c View commit details
    Browse the repository at this point in the history