RFR: 8329982: compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleDebugInfoTest.java failed assert(oopDesc::is_oop_or_null(val)) failed: bad oop found [v2]

Tom Rodriguez never at openjdk.org
Thu May 2 17:49:54 UTC 2024


On Wed, 1 May 2024 20:57:14 GMT, Doug Simon <dnsimon at openjdk.org> wrote:

>> This PR adds the missing nmethod entry barriers to JVMCI hand assembled tests.
>> It also closes the escape hatch in jvmciCodeInstaller.cpp that allowed JVMCI code to be installed without nmethod entry barriers.
>
> Doug Simon has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - remove vestiges of optional JVMCI nmethod support for entry barriers
>  - fixed failing tests and removed tests that install no longer valid code

It would be super nice if we could figure out a clean way to share canned snippets of assembly from HotSpot back through JVMCI.  There are lots of potential complexities though:  register usage, the jcc erratum, relocations, fast/slow splits.  The emit function could be called from the Graal assembler so that the sizing and alignment can be properly handled.  HotSpot relocations could be translated in some fashion and maybe labels could be handled as well.

The nmethod entry barrier fast path emission could probably be handled fairly cleanly since it's mostly a straightline snippet with a conditional branch at the end.  It's just unclear if building that machinery is more complicated than maintaining and checking a clone of a small piece of assembly.  The TestAssembler is a dubious piece of code given the complexity of emitting real nmethods.  It doesn't even support the complex return sequence being used these days.

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

PR Comment: https://git.openjdk.org/jdk/pull/19035#issuecomment-2091158907


More information about the hotspot-compiler-dev mailing list