mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-23 00:24:11 -08:00
e77997c93f
Although initial purpose of this comment was null check, it took much time to complete it and it caused many unrelated changes. Besides just implementing null check in quite naive fashion (I could not use the trick with memory protection, since I have to maintain shadow stack, and support WebAssembly), I had to optimize things. I relied on my existing nullness analysis to eliminate as much null checks as possible. However, the whole nullness analysis was wrong. After some thoughts I came up with solution very close to range analysis, which required me to introduce extension to IR sometimes called e-SSA form with so called sigma nodes. Also, I found some bugs in few different places (by the time write this message I could only remember escape analysis/scalar replacement and after-inlining devirtualization) and fixed them. |
||
---|---|---|
.. | ||
src/main | ||
pom.xml |