Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
8235753: [lworld] Handle deoptimization when buffering scalarized inline type args in C1 #6
When calling from C2 to C1 compiled code (i.e., no adapter in between) we need to buffer scalarized value type arguments in the C1 compiled entry point of the method (because C1 requires an oop). To do that, we might need to call into the runtime and that call might trigger deoptimization of the C1 compiled caller. That's a problem because the arguments are still scalarized and neither the deopt code nor the interpreter know how to handle that state. It's not a problem for all the other cases where buffering is necessary because it's either in the c2i adapter or C2 compiled code where we can handle this already.
After trying all my ideas listed in JBS, I've ended up with the following solution:
The patch also fixes the following problems:
@TobiHartmann This change now passes all automated pre-integration checks, type
Since the source branch of this PR was last updated there have been 4 commits pushed to the
@TobiHartmann The following commits have been pushed to lworld since your change was applied:
Your commit was automatically rebased without conflicts.
Pushed as commit 0595ad0.
8235753: [lworld] Handle deoptimization when buffering scalarized inline type args in C1