julia
95829376 - Remove @inbounds in tuple iteration (#48297)

Commit
2 years ago
Remove @inbounds in tuple iteration (#48297) * Remove @inbounds in tuple iteration LLVM can prove this inbounds and the annotation weakens the inferable effects for tuple iteration, which has a surprisingly large inference performance and precision impact. Unfortunately, my previous changes to :inbounds tainting weren't quite strong enough yet, because `getfield` was still tainting consistency on unknown boundscheck arguments. To fix that, we pass through the fargs into the fetfield effects to check if we're getting a literal `:boundscheck`, in which case the `:noinbounds` consistency-tainting logic I added in #48246 is sufficient to not require additional consistency tainting. Also add a test for both effects and codegen to make sure this doens't regress. * Int64 -> Int * fixup typo
Author
Parents
Loading