RFR: 8322996: BoxLockNode creation fails with assert(reg < CHUNK_SIZE) failed: sanity [v5]

Daniel Lundén dlunden at openjdk.org
Fri Jan 26 09:58:52 UTC 2024


On Fri, 26 Jan 2024 03:14:47 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

> There is call to record_profiled_parameters_for_speculation() after shared_lock() call in do_method_entry(). It does not check failing(). May be add check if (!failing()) when calling it (or inside it).

I've now added a check just after `_synch_lock = shared_lock(lock_obj);`, thanks.

> For do_one_bytecode() case the only question is if IGVN code can handle such bailout. **It is called at the end of method**. If not, we need to add the check.

I cannot see any call to IGVN after `do_monitor_enter()` in `do_one_bytecode()`. Can you elaborate? Maybe related, I also changed to

Node *box = new BoxLockNode(next_monitor());
// Check for bailout after new BoxLockNode
if (failing()) { return; }
box = _gvn.transform(box);

from the previous

Node *box = _gvn.transform(new BoxLockNode(next_monitor()));
// Check for bailout after new BoxLockNode
if (failing()) { return; }

to avoid potential issues with `_gvn.transform` due to the new bailout.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/17370#discussion_r1467438125


More information about the hotspot-compiler-dev mailing list