On Tue, 3 Nov 2026 06:23:08 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 one additional > commit since the last revision: > > added include_jvmit macros src/hotspot/cpu/riscv/c1_LIRGenerator_riscv.cpp line 1019: > 1017: } > 1018: > 1019: deoptimize_vmalloc_for_jvmti(!x->zero_array(), info); Please also update code in c1_LIRAssembler_riscv.cpp. RISC-V supports AOT. test/hotspot/jtreg/compiler/escapeAnalysis/TestArrayCopyEliminationUncRematerialization.java line 291: > 289: """ > 290: @Test > 291: @IR(counts = { IRNode.LOAD_#{typeAbbrev}, > "=#{loadCountAdjusted}" }, Can you explain these changes? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/33684#discussion_r4457132605 PR Review Comment: https://git.openjdk.org/jdk/pull/33684#discussion_r4457153299
