On Tue, 10 Mar 2026 19:09:14 GMT, Coleen Phillimore <[email protected]> wrote:

> Please review this change to fix GenerateOopMap to not report an unreachable 
> bytecode for async exception handling and for the first bytecode in an 
> exception catch clause.  The first change will generate a safepoint entry 
> that doesn't allow async exceptions for bytecodes that cannot trap. The 
> second change creates an exception edge for the first bytecode in an 
> exception catch clause whether it can trap or not.
> This also adds a GenerateOopMapALot at safeopints to test interpreter oopmap 
> generation.  Tested JCKs with this option.
> Thanks to @tkrodriguez for the kill003 test.
> Also tested tier1-8.

src/hotspot/share/oops/generateOopMap.cpp line 1174:

> 1172: }
> 1173: 
> 1174: void GenerateOopMap::do_exception_edge(BytecodeStream* itr) {

the declaration ordering here is making the diff really hard to read.  I assume 
you didn't change do_exception_edge but can't easily tell. Maybe move 
exception_can_trap after do_exception_edge?

test/hotspot/jtreg/vmTestbase/nsk/jdb/kill/kill003/kill003.java line 87:

> 85:         }
> 86: 
> 87:         reply = jdb.receiveReplyForWithMessageWait(JdbCommand.kill + 
> threads[0] + " " + DEBUGGEE_EXCEPTION,

a comment explaining these steps wouldn't hurt.  Something like "execution is 
now at a bytecode which isn't expecting to handle an exception so throw an 
async exception at it to make sure it's gets handled without crashing."

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

PR Review Comment: https://git.openjdk.org/jdk/pull/30171#discussion_r2914238783
PR Review Comment: https://git.openjdk.org/jdk/pull/30171#discussion_r2914256239

Reply via email to