Commit b67d9ff
JIT: Make all static base helpers byref typed in async functions (#130317)
There were a handful of static base helpers that we treated as returning
`TYP_I_IMPL`. At the same time VN considers these helpers to be
invariant, allowing them to be CSE'd. However, these helpers are not
invariant in async functions.
Initially I explicitly marked VNs referring to these helpers as killed
across async suspensions in CSE (see first commits on this PR). However,
figuring out which VNs refer to those helpers is actually non-trivial
when you take VNPhiDef and other functions into account. Instead this PR
just changes the type of these helpers to let the standard byref
handling pick them up.
A more ideal solution would be some kind of thread-SSA that worked like
memory SSA and were passed as an input to these VNs. But that's much
more complicated.
Fix #1302121 parent 11e067c commit b67d9ff
1 file changed
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
758 | 758 | | |
759 | 759 | | |
760 | 760 | | |
761 | | - | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
762 | 766 | | |
763 | 767 | | |
764 | 768 | | |
| |||
0 commit comments