RFR: 8352635: Improve inferencing of Float16 operations with constant inputs [v8]

Emanuel Peter epeter at openjdk.org
Thu Jun 19 06:22:46 UTC 2025


On Thu, 19 Jun 2025 05:50:52 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Hi @eme64 , your comments have been addressed. Lets us know if its ok to land now.
>
>> @jatin-bhateja The patch now looks good to me, nice work! 😊 I'll run some internal testing.
>> 
>> However: I do not have hardware to thest Float16 on. So I'll rely on you to do thorough testing on relevant hardware, or alternatively SDE.
> 
> Hi @eme64 , Tests on Float16 targets are clean, let us know the results of internal testing.

@jatin-bhateja 
I see one test failing that looks related:
`compiler/vectorization/TestFloat16VectorOperations.java`
The run was done with lots of stress flags, probably not all are relevant, and it may be intermittent.
`-XX:+UnlockDiagnosticVMOptions -XX:-TieredCompilation -XX:+StressArrayCopyMacroNode -XX:+StressLCM -XX:+StressGCM -XX:+StressIGVN -XX:+StressCCP -XX:+StressMacroExpansion -XX:+StressMethodHandleLinkerInlining -XX:+StressCompiledExceptionHandlers -XX:VerifyConstraintCasts=1`


#  Internal Error (.../src/hotspot/share/opto/type.hpp:2234), pid=2401514, tid=2401533
#  assert(_base == FloatCon) failed: Not a Float

...

Current CompileTask:
C2:1885  336 %  b        compiler.vectorization.TestFloat16VectorOperations::vectorAddFloat16 @ 2 (46 bytes)

Stack: [0x00007ff300480000,0x00007ff300580000],  sp=0x00007ff30057aed0,  free space=1003k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xc0358e]  ConvF2HFNode::Ideal(PhaseGVN*, bool)+0x88e  (type.hpp:2234)
V  [libjvm.so+0x181809d]  PhaseIterGVN::transform_old(Node*)+0xbd  (phaseX.cpp:668)
V  [libjvm.so+0x181c705]  PhaseIterGVN::optimize()+0xc5  (phaseX.cpp:1054)
V  [libjvm.so+0xb498f2]  PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x722  (loopnode.hpp:1268)
V  [libjvm.so+0xb43630]  Compile::Optimize()+0xb00  (compile.cpp:2468)
V  [libjvm.so+0xb46943]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1f33  (compile.cpp:868)
V  [libjvm.so+0x96bdd7]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x467  (c2compiler.cpp:141)
V  [libjvm.so+0xb55d78]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0xb58  (compileBroker.cpp:2323)
V  [libjvm.so+0xb56f48]  CompileBroker::compiler_thread_loop()+0x578  (compileBroker.cpp:1967)
V  [libjvm.so+0x10aa00b]  JavaThread::thread_main_inner()+0x13b  (javaThread.cpp:773)
V  [libjvm.so+0x1b0e096]  Thread::call_run()+0xb6  (thread.cpp:243)
V  [libjvm.so+0x17893f8]  thread_native_entry(Thread*)+0x128  (os_linux.cpp:868)

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

PR Comment: https://git.openjdk.org/jdk/pull/24179#issuecomment-2986774921


More information about the hotspot-compiler-dev mailing list