RFR: 8365047: Remove exception handler stub code in C2 [v4]
Boris Ulasevich
bulasevich at openjdk.org
Wed Sep 24 14:55:48 UTC 2025
On Fri, 12 Sep 2025 16:36:56 GMT, Ruben <duke at openjdk.org> wrote:
>> The C2 exception handler stub code is only a trampoline to the generated exception handler blob. This change removes the extra step on the way to the generated blob.
>>
>> According to some comments in the source code, the exception handler stub code used to be patched upon deoptimization, however presumably these comments are outdated as the patching upon deoptimization happens for post-call NOPs only.
>
> Ruben has updated the pull request incrementally with two additional commits since the last revision:
>
> - Offset the deoptimization handler entry point
>
> Change-Id: I596317ec6a364b341e4642636fa5cf08f87ed722
> - Revert "Ensure stub code is not adjacent to a call"
Hi.
With current change I get a couple of new fails on ARM32:
# Internal Error (jdk/src/hotspot/share/code/nmethod.cpp:669), pid=14516, tid=14517
# guarantee(pd != nullptr) failed: scope must be present
Current thread (0xf561cda0): JavaThread "main" [_thread_in_Java, id=14517, stack(0xf57a8000,0xf57f8000) (320K)]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x115d1d0] nmethod::scope_desc_at(unsigned char*)+0x11c (nmethod.cpp:669)
V [libjvm.so+0x162dfd8] compiledVFrame::compiledVFrame(frame const*, RegisterMap const*, JavaThread*, nmethod*)+0x54
V [libjvm.so+0x161ed44] vframe::new_vframe(frame const*, RegisterMap const*, JavaThread*)+0x138
V [libjvm.so+0x80d150] Deoptimization::fetch_unroll_info_helper(JavaThread*, int)+0x290
V [libjvm.so+0x80e724] Deoptimization::fetch_unroll_info(JavaThread*, int)+0x98
Failing tests:
- test/jdk/com/sun/jdi/PopAsynchronousTest.java
- test/jdk/java/foreign/TestConcurrentClose.java
- test/jdk/java/foreign/TestHandshake.java
- test/jdk/java/lang/Math/WorstCaseTests.java
- test/jdk/java/lang/StackWalker/LocalsAndOperands.java
- test/jdk/java/lang/StringBuilder/CompactStringBuilder.java
- test/jdk/java/lang/StringBuilder/RacingSBThreads.java
- test/jdk/java/lang/Thread/virtual/MonitorEnterExit.java
- test/jdk/java/lang/Thread/virtual/MonitorWaitNotify.java
- test/jdk/java/lang/Thread/virtual/Parking.java
- test/jdk/java/util/Arrays/HashCode.java
- test/jdk/java/util/Calendar/RollDayOfWeekTest.java
- test/jdk/java/util/concurrent/CompletableFuture/ThenComposeAsyncTest.java
- test/jdk/java/util/Locale/AvailableLocalesTest.java
- test/jdk/java/util/PluggableLocale/DateFormatProviderTest.java
- test/jdk/java/util/ResourceBundle/TestBug4179766.java
- test/jdk/java/util/stream/boottest/java.base/java/util/stream/LongNodeTest.java
- test/jdk/java/util/stream/boottest/java.base/java/util/stream/NodeTest.java
- test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/CollectorsTest.java
- test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java
- test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/mapMultiOpTest.java
- test/jdk/jdk/classfile/CorpusTest.java
- test/jdk/jdk/internal/jimage/JImageOpenTest.java
- test/jdk/jdk/internal/reflect/CallerSensitive/CallerSensitiveFinder.java
- test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26678#issuecomment-3329064073
More information about the hotspot-dev
mailing list