Hi,

We traverse the local slots at the start of parsing and expand all value object 
parameters. This misses the peculiar case where we are in an OSR parse, and an 
argument has previously been overwritten with a larval oop. I move the block 
into `Parse::do_method_entry` so that it is only called for non-osr parse, this 
also builds the duality with `Parse::load_interpreter_state` which expands 
value objects in the JVMS for OSR parse.

This PR also removes `GraphKit::cast_to_non_larval` which is used because we 
did not track larval-ness in `ciTypeFlow` before. Now it can be removed.

Please take a look and leave your reviews, thanks a lot.

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

Commit messages:
 - Value parameter should only be expanded for non-osr parse

Changes: https://git.openjdk.org/valhalla/pull/2091/files
  Webrev: https://webrevs.openjdk.org/?repo=valhalla&pr=2091&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8377803
  Stats: 246 lines in 7 files changed: 82 ins; 151 del; 13 mod
  Patch: https://git.openjdk.org/valhalla/pull/2091.diff
  Fetch: git fetch https://git.openjdk.org/valhalla.git pull/2091/head:pull/2091

PR: https://git.openjdk.org/valhalla/pull/2091

Reply via email to