https://github.com/JuliaLang/julia
Revision f922a6371c6b658aa955e5096774509b12dd7579 authored by Jeff Bezanson on 07 September 2018, 03:32:38 UTC, committed by Keno Fischer on 08 September 2018, 19:47:23 UTC
In this case, the result of `iterate` has not been checked for
`nothing`, so we try to call `indexed_iterate` (for destructuring
assignment) on a Union of Nothing and the tuple returned by
`iterate`. That has two method matches, and so was excluded from
constant propagation. This commit fixes that by generalizing the
constant prop heuristic from requiring one method match to
requiring one non-Bottom method match.

This issue caused a large slowdown in DelimitedFiles, where
the inner loop consists of

```
        while idx <= slen
            val,idx = iterate(dbuff, idx)
```
1 parent 65e4c13
History
Tip revision: f922a6371c6b658aa955e5096774509b12dd7579 authored by Jeff Bezanson on 07 September 2018, 03:32:38 UTC
fix #29036, poor inference of `val,i = iterate(x,i)`
Tip revision: f922a63
File Mode Size
checksums
patches
tools
valgrind
.gitignore -rw-r--r-- 26 bytes
Makefile -rw-r--r-- 4.8 KB
NATIVE.cmake -rw-r--r-- 192 bytes
SuiteSparse_wrapper.c -rw-r--r-- 1.4 KB
Versions.make -rw-r--r-- 506 bytes
blas.mk -rw-r--r-- 7.5 KB
curl.mk -rw-r--r-- 2.5 KB
dsfmt.mk -rw-r--r-- 2.1 KB
gfortblas.alias -rw-r--r-- 706 bytes
gfortblas.c -rw-r--r-- 4.4 KB
gmp.mk -rw-r--r-- 2.2 KB
libdSFMT.def -rw-r--r-- 778 bytes
libgit2.mk -rw-r--r-- 4.2 KB
libgit2.version -rw-r--r-- 77 bytes
libssh2.mk -rw-r--r-- 2.6 KB
libssh2.version -rw-r--r-- 83 bytes
libuv.mk -rw-r--r-- 1.9 KB
libuv.version -rw-r--r-- 75 bytes
libwhich.mk -rw-r--r-- 1.2 KB
libwhich.version -rw-r--r-- 78 bytes
llvm-options.mk -rw-r--r-- 616 bytes
llvm-ver.make -rw-r--r-- 359 bytes
llvm.mk -rw-r--r-- 20.0 KB
mbedtls.mk -rw-r--r-- 3.0 KB
mpfr.mk -rw-r--r-- 2.3 KB
objconv.mk -rw-r--r-- 923 bytes
openblas.version -rw-r--r-- 78 bytes
openlibm.mk -rw-r--r-- 1.1 KB
openlibm.version -rw-r--r-- 78 bytes
patchelf.mk -rw-r--r-- 1.8 KB
pcre.mk -rw-r--r-- 1.9 KB
suitesparse.mk -rw-r--r-- 7.2 KB
unwind.mk -rw-r--r-- 5.7 KB
utf8proc.mk -rw-r--r-- 1.5 KB
utf8proc.version -rw-r--r-- 78 bytes

back to top