RFR: 8275086: compiler/c2/irTests/TestPostParseCallDevirtualization.java fails when compiler1 is disabled [v2]

Igor Veresov iveresov at openjdk.java.net
Thu Oct 28 16:01:21 UTC 2021


On Fri, 22 Oct 2021 08:12:27 GMT, SUN Guoyun <duke at openjdk.java.net> wrote:

>> Hi all,
>> Jtreg test case compiler/c2/irTests/TestPostParseCallDevirtualization.java fails for fastdebug mode on x86/aarch64/mips architecture when "--with-jvm-features=-compiler1" be used. the failed info is:
>> 
>> <pre><code class="shell">
>> One or more @IR rules failed:
>> 
>> Failed IR Rules (1)
>> ------------------
>> - Method "public int compiler.c2.irTests.TestPostParseCallDevirtualization.testMethodHandleCallWithCCP() throws java.lang.Throwable":
>>   * @IR rule 1: "@compiler.lib.ir_framework.IR(failOn={"#PRE#(\\\\d+(\\\\s){2}(CallStaticJava.*)+(\\\\s){2}===.*#IS_REPLACED#)", "invokeBasic"}, applyIf={}, applyIfAnd={}, applyIfOr={}, counts={"#PRE#(\\\\d+(\\\\s){2}(CallStaticJava.*)+(\\\\s){2}===.*#IS_REPLACED#)", "invokeStatic", "= 1"}, applyIfNot={})" 
>>     - failOn: Graph contains forbidden nodes:
>>         Regex 1: (\\d+(\\s){2}(CallStaticJava.*)+(\\s){2}===.*invokeBasic)
>>         Matched forbidden node:
>>           280  CallStaticJava  ===  5  6  7  8  1 ( 188  1  1  1  1  1  1 ) [[ 281  282  283  285 ]] # Static  java.lang.invoke.MethodHandle::invokeBasic
>>     - counts: Graph contains wrong number of nodes:
>>         Regex 1: (\\d+(\\s){2}(CallStaticJava.*)+(\\s){2}===.*invokeStatic)
>>         Expected 1 but found 0 nodes.
>> 
>>>>> Check stdout for compilation output of the failed methods
>> </code></pre>
>> 
>> This is a patch to fix this problem. Please help review it.
>> 
>> Thanks,
>> Sun Guoyun
>
> SUN Guoyun has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8275086: compiler/c2/irTests/TestPostParseCallDevirtualization.java fails when compiler1 is disabled

I think that's a pretty normal start of profiling in this configuration. We don't want to start profiling too early because it will have an adverse effect on startup. Historically, before tiered the profiling would start after 3300 invocations + back branches taken. I feels like the IR testing framework needs to be adjusted so that it warms the tests up longer (at least in this configuration).

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

PR: https://git.openjdk.java.net/jdk/pull/5903


More information about the hotspot-compiler-dev mailing list