mirror of
https://github.com/Eaglercraft-TeaVM-Fork/eagler-teavm.git
synced 2024-12-23 00:24:11 -08:00
8f68c64193
There's a case that was missing in this optimization. We install invalidation points on a block's dominance frontiers when the block contains som invalidation instructions. However, if a block is an entry to exception handler, state is always invalidated. This should be done since exception handler may recover and proceed with some code that follows try/catch block. Without this change code after try/catch inherits state of `try` block, which is invalid, since `catch` is another source from where we can get there. We can't rely on regular instruction analysis in `catch` blocks, since we get into `catch` from an unpredictable point. |
||
---|---|---|
.. | ||
analysis/nullness | ||
optimization | ||
text | ||
util/phi-updater |