RFR: 8278518: String(byte[], int, int, Charset) constructor and String.translateEscapes() miss bounds check elimination [v6]

Roland Westrelin roland at openjdk.java.net
Wed Jan 26 15:42:24 UTC 2022


On Wed, 26 Jan 2022 00:59:47 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> Roland Westrelin 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 ten additional commits since the last revision:
>> 
>>  - Merge branch 'master' into JDK-8278518
>>  - review
>>  - review
>>  - whitespaces
>>  - more review
>>  - simple benchmark
>>  - benchmark
>>  - review
>>  - fix
>
> I got an other failure in `Kitchecksink`:
> 
> #  Internal Error (/workspace/open/src/hotspot/share/interpreter/bytecode.cpp:84), pid=5553, tid=18400
> #  assert(have_fmt == need_fmt) failed: assert_offset_size
> #
> # JRE version: Java(TM) SE Runtime Environment (19.0) (fastdebug build 19-internal+0-2022-01-25-1858238.vladimir.kozlov.jdkgit)
> # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 19-internal+0-2022-01-25-1858238.vladimir.kozlov.jdkgit, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, serial gc, linux-amd64)
> # Problematic frame:
> # V  [libjvm.so+0x73de5e]  Bytecode::assert_offset_size(int, Bytecodes::Code, bool)+0xee
> #
> 
> Current CompileTask:
> C2:1220999 49982       4       die.verwandlung.xmlspec::applyTemplates (2549 bytes)
> 
> Stack: [0x00007feb068e9000,0x00007feb069ea000],  sp=0x00007feb069e6760,  free space=1013k
> Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
> V  [libjvm.so+0x73de5e]  Bytecode::assert_offset_size(int, Bytecodes::Code, bool)+0xee
> V  [libjvm.so+0x79d05e]  ciBytecodeStream::get_dest() const+0x9e
> V  [libjvm.so+0x9cc300]  ciTypeFlow::profiled_count(ciTypeFlow::Loop*)+0x3c0
> V  [libjvm.so+0x9ccb50]  ciTypeFlow::Loop::sorted_merge(ciTypeFlow::Loop*)+0x250
> V  [libjvm.so+0x9d036c]  ciTypeFlow::build_loop_tree(ciTypeFlow::Block*)+0x1bc
> V  [libjvm.so+0x9d1f72]  ciTypeFlow::df_flow_types(ciTypeFlow::Block*, bool, ciTypeFlow::StateVector*, ciTypeFlow::JsrSet*)+0x632
> V  [libjvm.so+0x9d24ce]  ciTypeFlow::flow_types()+0x41e
> V  [libjvm.so+0x9d2ff6]  ciTypeFlow::do_flow()+0x26
> V  [libjvm.so+0x965cd4]  ciMethod::get_flow_analysis()+0x64
> V  [libjvm.so+0x7478fe]  InlineTree::check_can_parse(ciMethod*)+0xee
> V  [libjvm.so+0x8b7549]  CallGenerator::for_inline(ciMethod*, float)+0x19
> V  [libjvm.so+0xa99ca4]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x12e4

@vnkozlov thanks for the review and testing.
I pushed one more commit which I expect will fix that issue but I can't test it.

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

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


More information about the hotspot-compiler-dev mailing list