• D
    remove type_use · c3e4e068
    Daniel Micay 提交于
    This is broken, and results in poor performance due to the undefined
    behaviour in the LLVM IR. LLVM's `mergefunc` is a *much* better way of
    doing this since it merges based on the equality of the bytecode.
    
    For example, consider `std::repr`. It generates different code per
    type, but is not included in the type bounds of generics.
    
    The `mergefunc` pass works for most of our code but currently hits an
    assert on libstd. It is receiving attention upstream so it will be
    ready soon, but I don't think removing this broken code should wait any
    longer. I've opened #9536 about enabling it by default.
    
    Closes #8651
    Closes #3547
    Closes #2537
    Closes #6971
    Closes #9222
    c3e4e068
_rust 4.7 KB