8253416: [lworld] C1: incorrect nestmate access to flattened field if nest-host is not loaded #198
C1 incorrectly assumes that a nestmate field access is not flat if the nest-host is not loaded.
We are creating the ciField instance for a field in the nest-host via:
I've completely re-wrote and simplified the complex logic in LIRGenerator::flattened_field_load_prolog and added asserts/checks to make sure we are not attempting to patch flattened inline type field accesses (that functionality could be added though but it's not easy).
This patch also includes the following unrelated changes:
The text was updated successfully, but these errors were encountered:
@TobiHartmann This change now passes all automated pre-integration checks.
After integration, the commit message for the final commit will be:
At the time when this comment was updated there had been no new commits pushed to the
I'm still reviewing the code, but here are already two comments:
1 - the empty inline type optimization can be applied to load_indexed() and store_indexed() too.
thanks for the quick review!
Yes, there are even more optimization opportunities and I'll address these with JDK-8248220. I've only added the empty field load/store removal here for correctness because otherwise we miss adding a null check (see re-enabled