On Fri, 18 Oct 2024 21:56:53 GMT, Shaojin Wen <s...@openjdk.org> wrote:

>> After PR https://github.com/openjdk/jdk/pull/16245, C2 optimizes stores into 
>> primitive arrays by combining values ​​into larger stores.
>> 
>> This PR rewrites the code of appendNull and append(boolean) methods so that 
>> these two methods can be optimized by C2.
>
> 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/ea332e42...457735c9

Hmm, I would have hoped for `appendNull` the pre-existing code would have 
allowed for merging stores with #19970. Can you run with `+TraceMergeStores` on 
the #19970 branch? 

Perhaps we'd need to minimally change from `count++` increments to constant 
offsets:

            val[count] = 'n';
            val[count + 1] = 'u';
            val[count + 2] = 'l';
            val[count + 3] = 'l';


(I think it would be good to explore if we can to trigger the optimization 
without resorting to `Unsafe`. Any ideas, @eme64?)

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

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

Reply via email to