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

codegen: use new {re,de,}allocator annotations in llvm #99574

Merged
merged 1 commit into from
Jul 26, 2022

Commits on Jul 26, 2022

  1. codegen: use new {re,de,}allocator annotations in llvm

    This obviates the patch that teaches LLVM internals about
    _rust_{re,de}alloc functions by putting annotations directly in the IR
    for the optimizer.
    
    The sole test change is required to anchor FileCheck to the body of the
    `box_uninitialized` method, so it doesn't see the `allocalign` on
    `__rust_alloc` and get mad about the string `alloca` showing up. Since I
    was there anyway, I added some checks on the attributes to prove the
    right attributes got set.
    
    While we're here, we also emit allocator attributes on
    __rust_alloc_zeroed. This should allow LLVM to perform more
    optimizations for zeroed blocks, and probably fixes rust-lang#90032. [This
    comment](rust-lang#24194 (comment))
    mentions "weird UB-like behaviour with bitvec iterators in
    rustc_data_structures" so we may need to back this change out if things
    go wrong.
    
    The new test cases require LLVM 15, so we copy them into LLVM
    14-supporting versions, which we can delete when we drop LLVM 14.
    durin42 committed Jul 26, 2022
    Configuration menu
    Copy the full SHA
    130a1df View commit details
    Browse the repository at this point in the history