RFR: 8292584: assert(cb != __null) failed: must be with -XX:-Inline

Vladimir Kozlov kvn at openjdk.org
Tue Aug 23 17:33:22 UTC 2022


On Tue, 23 Aug 2022 06:53:36 GMT, Dean Long <dlong at openjdk.org> wrote:

> generate_Continuation_doYield_entry() creates an interpreter entry point, but jumps to a compiled stub, which needs to be walkable.  The interpreter entry does not create an interpreter frame, so frame walking expects a compiled frame.  Normally everything is OK, but if C1 does not inline the intrinsic and we get to the interpreter entry through the c2i adapter, then things can break if the c2i adapter padded the stack because of alignment.  The easiest fix is to undo what the c2i adapter might have done.

This looks like "band-aid". You said that [JDK-8292694](https://bugs.openjdk.org/browse/JDK-8292694) may causing it. Adapters should not have their own frame. I interpreting it as they should not adjust SP if it confuse stack walking.
On other hand this adjustment was here for long time and we do stack walking all the time. Why loom's code confused in this case? What happens for a call with arguments?

-------------

PR: https://git.openjdk.org/jdk/pull/9974


More information about the hotspot-compiler-dev mailing list