On Sat, 18 Oct 2025 19:31:20 GMT, Quan Anh Mai <[email protected]> wrote:

>> Hi,
>> 
>> Flat accesses prevent scalar replacement because they are mismatched 
>> accesses. It is also generally not possible to look through them, because 
>> the payload may contain an oop in the form of raw bits. As a result, this PR 
>> adds `LoadFlatNode` and `StoreFlatNode`, which act as high-level 
>> abstractions for atomic accesses on flat fields. When it is determined that 
>> there is no racing access on the flat field (e.g. because the holder object 
>> does not escape), these flat access nodes can be expanded into multiple 
>> accesses to each flattened fields, otherwise, they will be expanded into a 
>> sequence of inferring a payload and accessing memory with that payload.
>> 
>> I also fix an issue with deoptimization reallocation where we miss assigning 
>> the null marker of elements in a nullable flat array.
>> 
>> Please take a look and leave your reviews, thanks a lot.
>
> Quan Anh Mai has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains eight commits:
> 
>  - Several fixes
>  - fix gc barrier
>  - Merge branch 'lworld' into flatfield
>  - fix merge, assert GC barriers
>  - Merge branch 'lworld' into flatfield
>  - fix release build
>  - small fix StoreFlatNode::size_of
>  - add LoadFlatNode and StoreFlatNode

I did some quick testing and I'm seeing this failure:


runtime/valhalla/inlinetypes/verifier/RedefineStrictFieldsTest.java
-Xcomp -XX:-TieredCompilation

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f195cbd8da5, pid=1416875, tid=1416894
#
# JRE version: Java(TM) SE Runtime Environment (26.0) (fastdebug build 
26-jep401ea2-2025-10-20-0458161.tobias.hartmann.valhalla2)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 
26-jep401ea2-2025-10-20-0458161.tobias.hartmann.valhalla2, compiled mode, 
sharing, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xdcada5]  
ConnectionGraph::has_ea_local_in_scope(SafePointNode*)+0x115

Current CompileTask:
C2:7013 1605    b        java.lang.VersionProps::parseVersionNumbers (154 bytes)

Stack: [0x00007f1948721000,0x00007f1948821000],  sp=0x00007f194881ba70,  free 
space=1002k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xdcada5]  
ConnectionGraph::has_ea_local_in_scope(SafePointNode*)+0x115  (callnode.hpp:383)
V  [libjvm.so+0xde6e68]  ConnectionGraph::compute_escape()+0x2e88  
(escape.cpp:469)
V  [libjvm.so+0xde734a]  ConnectionGraph::do_analysis(Compile*, 
PhaseIterGVN*)+0x15a  (escape.cpp:120)
V  [libjvm.so+0xbcbe4d]  Compile::Optimize()+0x65d  (compile.cpp:2942)
V  [libjvm.so+0xbcf86f]  Compile::Compile(ciEnv*, ciMethod*, int, Options, 
DirectiveSet*)+0x207f  (compile.cpp:878)
V  [libjvm.so+0x9dc0b3]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, 
bool, DirectiveSet*)+0x483  (c2compiler.cpp:149)
V  [libjvm.so+0xbdee38]  
CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb48  
(compileBroker.cpp:2345)
V  [libjvm.so+0xbdffc0]  CompileBroker::compiler_thread_loop()+0x530  
(compileBroker.cpp:1989)
V  [libjvm.so+0x11701db]  JavaThread::thread_main_inner()+0x13b  
(javaThread.cpp:776)
V  [libjvm.so+0x1c23c56]  Thread::call_run()+0xb6  (thread.cpp:243)
V  [libjvm.so+0x185eb58]  thread_native_entry(Thread*)+0x128  (os_linux.cpp:898)


The `serviceability/jvmti/valhalla/` tests also fail with the same SIGSEGV when 
executed with `-Xcomp -XX:-TieredCompilation`.

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

PR Comment: https://git.openjdk.org/valhalla/pull/1518#issuecomment-3420985354

Reply via email to