Fwd: Invalid code generated by C2 compiler in OpenJDK 21
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Thu Dec 21 21:54:33 UTC 2023
Adding hotspot-compiler-dev, asd I don't think this is a javac compiler
issue?
Maurizio
-------- Forwarded Message --------
Subject: Invalid code generated by C2 compiler in OpenJDK 21
Date: Fri, 15 Dec 2023 11:12:15 +0100
From: Antoine DESSAIGNE <antoine.dessaigne at gmail.com>
To: compiler-dev at openjdk.org
Hello everyone,
I've found an issue while migrating to OpenJDK 21. A valued local
variable (effectively final) has its value removed and it throws a
NullPointerException. Unfortunately, I cannot provide the source code
and the data to reproduce the issue, and I couldn't create a smaller
code snippet to show the issue. That said, I'll happily show the code
and perform many tests during calls.
Here's what I did so far to diagnose the issue.
I bisected the repository to find where the regression comes from. I
found this commit 3696711efa5 [1] but it's a merge so I bisected the
branch and found 10737e168c9 [2]. Looking at this commit, I have no idea
how it could introduce this kind of regression.
Then, thanks to the guidance from Aleksey Shipilëv, I tested many things
* Issue does *not* happen with the following
flags: -Xint, -XX:-TieredCompilation, -XX:TieredStopAtLevel=1, -XX:TieredStopAtLevel=2, -XX:TieredStopAtLevel=3
* Issue also happens with fastdebug builds of OpenJDK, without crashing
due to assertions
* Issue still happens in the latest version of the code (commit b31454e3623)
* Issue happens no matter which GC is used, I tried SerialGC,
ParallelGC, G1GC, and ShenandoahGC
The tests were performed in Docker containers running on 4 different hosts.
Therefore it looks like C2 is generating an invalid assembly code.
Unfortunately, I'm not great with assembly and the generated assembly is
quite big (main code is around 20k).
Do you have an idea of why this is happening? Do you know what test I
can run? If one of you is available, we can schedule calls for me to
show you the code and my tests. Thank you very much for your assistance.
Have a nice day,
Antoine DESSAIGNE
[1]
https://github.com/openjdk/jdk/commit/3696711efa566fb776d6923da86e17b0e1e22964
[2]
https://github.com/openjdk/jdk/commit/10737e168c967a08e257927251861bf2c14795ab
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-compiler-dev/attachments/20231221/1b9ee722/attachment-0001.htm>
More information about the hotspot-compiler-dev
mailing list