RFR: 8333893: Optimization for StringBuilder append boolean & null [v20]

Claes Redestad redestad at openjdk.org
Mon Oct 21 08:06:46 UTC 2024


On Mon, 21 Oct 2024 07:58:42 GMT, Emanuel Peter <epeter at openjdk.org> wrote:

>> Shaojin Wen 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 26 additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'origin/optim_str_builder_append_202406' into optim_str_builder_append_202406
>>  - fix build error
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - Merge remote-tracking branch 'origin/optim_str_builder_append_202406' into optim_str_builder_append_202406
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - revert test
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - Merge remote-tracking branch 'upstream/master' into optim_str_builder_append_202406
>>  - ... and 16 more: https://git.openjdk.org/jdk/compare/a510a929...457735c9
>
> Not sure why the RangeCheck smearing issue only appreas here now. Maybe because the graph is bigger? Maybe because of other things in the graph that change the order of things? IDK yet.

Thanks for checking @eme64 - up to you if and when you want to try and tackle such an improvement, if it can be done in a clean way. And as you say there might be other factors at play here. Perhaps things are confounded by how the code is structured before and after; this PR outlines the array stores to a separate method which might affect loop optimization passes if that method is first compiled separately then inlined.

While I don't think the point fix in this PR is all that urgent this has been lingering for a while and I'm sure @wenshao wants to integrate and move on. We can always integrate then back out the `Unsafe` stuff once/if the phases have been disentangled. Or we keep experimenting to try and see if we can get it to behave ideally without `Unsafe` here and now. WDYT? @liach?

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

PR Comment: https://git.openjdk.org/jdk/pull/19626#issuecomment-2425916432


More information about the hotspot-compiler-dev mailing list