julia
e3979486 - effects: Refine effects for getfield of unknown field

Commit
2 years ago
effects: Refine effects for getfield of unknown field When all fields are known initialized syntactically, we do not need to test whether accessing the fields will give an UndefRef. We only need to check for the fields that are not syntactically known to be initialized. As a result, this commit improves `:consistent`-cy of `getfield` call, which is better in general but leads to inference/inlining accuracy regression in some edge cases because now irinterp is enabled on more frames. There are two regressions, but we are fine with them so we modify the test cases: - inlining regression: irinterp ends up some extra junk basic blocks, that LLVM can optimize away down the road. - inference regressions: these regressions are all related to the `MustAlias` lattice extension, which was added for JET's use case especially and not enabled in base yet. Since JET doesn't enable irinterp, this commit marks the regressed cases as broken.
Author
Committer
Parents
Loading