RFR: 8359235: C1 compilation fails with "assert(is_single_stack() && !is_virtual()) failed: type check" [v4]
Guanqiang Han
ghan at openjdk.org
Mon Aug 11 00:49:46 UTC 2025
On Fri, 8 Aug 2025 22:26:54 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Guanqiang Han has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:
>>
>> - change T_LONG to T_ADDRESS in some intrinsic functions
>> - Merge remote-tracking branch 'upstream/master' into 8359235
>> - Increase sleep time to ensure the method gets compiled
>> - add regression test
>> - Merge remote-tracking branch 'upstream/master' into 8359235
>> - 8359235: C1 compilation fails with "assert(is_single_stack() && !is_virtual()) failed: type check"
>
> test/hotspot/jtreg/compiler/intrinsics/TestStack2RegSlotMismatch.java line 29:
>
>> 27: * @summary Test C1 stack2reg after fixing incorrect use of T_LONG in intrinsic
>> 28: * @requires vm.debug == true & vm.compiler1.enabled
>> 29: * @run main/othervm -XX:TieredStopAtLevel=1 -XX:C1MaxInlineSize=200 -XX:CompileThreshold=10 compiler.intrinsics.TestStack2RegSlotMismatch
>
> I'm still wondering if this test can be reduced. Right now `-XX:C1MaxInlineSize=200 -XX:CompileThreshold=10` will lead to a lot of methods being compiled with C1 but I assume there is only one method that actually triggers the issue, right? Can we restrict compilation to that one?
Hi @TobiHartmann, thanks for the suggestion!
I've updated the test to restrict compilation to the single method by using -XX:CompileCommand=compileonly,....
Please take another look when you have a time.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26462#discussion_r2265514745
More information about the hotspot-compiler-dev
mailing list