On Tue, 3 Nov 2026 06:13:57 GMT, Leonid Mesnik <[email protected]> wrote:
>> Hi >> >> During testing of >> [JDK-8383787](https://bugs.openjdk.org/browse/JDK-8383787): >> JVMTI_EVENT_SAMPLED_OBJECT_ALLOC may make a cloned object accessible to Java >> before clone >> >> I find that clone() intrinsic doesn't call JVMTI VMObjectAlloc as well as >> SampledObjecAlloc. There is no requirement for SampledObjectAlloc to be >> triggered by any allocation. While VMObjectAlloc should be called. >> I find 2 compiler optimizations that allocated object during clone without >> corresponding notification. >> >> I applied fix similar to >> [JDK-8307462](https://bugs.openjdk.org/browse/JDK-8307462) [REDO] >> VmObjectAlloc is not generated by intrinsics methods which allocate objects >> >> The allocation check if notification are enabled using >> JvmtiExport::_should_notify_object_alloc and deoptimize clone in this case. >> >> I verified that VMObjectAllocCloneTest.java failed with `-Xcomp >> -XX:-TieredCompilation `and -`Xcomp -XX:TieredStopAtLevel=1`. However I >> haven't added them as separate testcases. >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Leonid Mesnik has updated the pull request incrementally with two additional > commits since the last revision: > > - Support reading intrinsic in AOT compiled code. > - Updated test to take in account additional load instructions for > integer. test/hotspot/jtreg/serviceability/jvmti/events/VMObjectAlloc/VMObjectAllocClone/VMObjectAllocCloneTest.java line 27: > 25: * @test > 26: * @bug 8396399 > 27: * @summary Test verifies how VMObjectAlloc works for clone() method. The test doesn't actually ensure the intrinsic is used though. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/33684#discussion_r4448979724
