https://github.com/JuliaLang/julia
Revision e07c0f1ddbfc89ad1ac4dda7246d8ed5d0d57c19 authored by Keno Fischer on 28 March 2024, 03:09:07 UTC, committed by GitHub on 28 March 2024, 03:09:07 UTC
There's two related, but distinct, issues here:
1. We were not using `tmerge` for merging SSA results inside loops,
which could cause infinite looping. In the absence of PhiNodes, things
usually have to go through a slot to be able to make the round trip,
which would usually put a PhiNode on the path, but it's possible there
may be other ways to smuggle things around (e.g. through exception
handling).

2. We were not properly accounting for the fact that PhiNode uses do not
need to be linearly ordered in the same BB, so we were getting the type
of the testcase here incorrect by failing to re-schedule the PhiNode.

The first of these shows up in the Diffractor test suite, the second was
found by writing the test case.
1 parent 4ee1022
History
Tip revision: e07c0f1ddbfc89ad1ac4dda7246d8ed5d0d57c19 authored by Keno Fischer on 28 March 2024, 03:09:07 UTC
inference: Fix correctness and ensure termination in the presence of PhiNodes (#53876)
Tip revision: e07c0f1
File Mode Size
.devcontainer
.github
base
cli
contrib
deps
doc
etc
src
stdlib
test
.buildkite-external-version -rw-r--r-- 5 bytes
.clang-format -rw-r--r-- 3.3 KB
.clangd -rw-r--r-- 114 bytes
.codecov.yml -rw-r--r-- 52 bytes
.git-blame-ignore-revs -rw-r--r-- 371 bytes
.gitattributes -rw-r--r-- 65 bytes
.gitignore -rw-r--r-- 571 bytes
.mailmap -rw-r--r-- 12.7 KB
CITATION.bib -rw-r--r-- 513 bytes
CITATION.cff -rw-r--r-- 1012 bytes
CONTRIBUTING.md -rw-r--r-- 23.4 KB
HISTORY.md -rw-r--r-- 388.1 KB
LICENSE.md -rw-r--r-- 1.3 KB
Make.inc -rw-r--r-- 56.0 KB
Makefile -rw-r--r-- 30.3 KB
NEWS.md -rw-r--r-- 4.4 KB
README.md -rw-r--r-- 7.4 KB
THIRDPARTY.md -rw-r--r-- 3.9 KB
VERSION -rw-r--r-- 11 bytes
julia.spdx.json -rw-r--r-- 37.8 KB
pkgimage.mk -rw-r--r-- 1.4 KB
sysimage.mk -rw-r--r-- 4.2 KB
typos.toml -rw-r--r-- 78 bytes

README.md

back to top