julia
julia copied to clipboard
Make `BoundsError` lazy and move `Memory` boundscheck to Julia
This is a revival of https://github.com/JuliaLang/julia/pull/43738 with a lot of changes. The biggest by far is that with this version of the PR, I'm trying to get the BoundsError to semantically not escape the input argument so that LLVM escape analysis doesn't see bounds error construction as a potential escape (motivated by https://github.com/JuliaLang/julia/pull/55913). That said, this will likely significantly increase IR size, so I'm not sure if it is worth it or if this is a good tradeoff...