With late inlining we hit a couple bugs in the exception handling code because when an exception is thrown, rather than pop the expression stack, it is preserved until the exception handler executes or the exception is passed on to the caller. So far, the 2 bugs were fixed by working around the issue. However, popping the stack at the point where the exception is thrown would fix both issues and remove the need for workarounds. It's questionable whether the stack needs to be preserved until the exception is processed. It seems the stack is preserved because of a risk of an uncommon trap but, with today's code, there doesn't seem to be any uncommon trap on the path from exception throwing to exception handling.
See:
https://github.com/openjdk/jdk/pull/6572
See:
https://github.com/openjdk/jdk/pull/6572
- duplicates
-
JDK-8278873 GraphKit::combine_exception_states fails with "matching stack sizes" assert
- Closed
- relates to
-
JDK-6868269 CompileTheWorld assertion failure introduced by the reexecute bit implementation
- Resolved
-
JDK-8275638 GraphKit::combine_exception_states fails with "matching stack sizes" assert
- Closed
-
JDK-8278873 GraphKit::combine_exception_states fails with "matching stack sizes" assert
- Closed