On Fri, 19 Jul 2024 21:42:09 GMT, Shaojin Wen <d...@openjdk.org> wrote:

>> Currently simpleConcat is implemented using mix and prepend, but in this 
>> simple scenario, it can be implemented in a simpler way and can improve 
>> performance.
>
> Shaojin Wen has updated the pull request incrementally with two additional 
> commits since the last revision:
> 
>  - Update src/java.base/share/classes/java/lang/String.java
>    
>    Co-authored-by: Chen Liang <li...@openjdk.org>
>  - add comments

FWIW one of the ideas when implementing `StringConcatHelper.simpleConcat` was 
that by using the primitives used by the `StringConcatFactory` as 
straightforwardly as possible the method acts as a documentation-of-sorts or 
guide to understand how the `SCF` expression trees are built up. It's not 
perfect, though. Concatenation of a `String` + constant would be handled 
differently for one. So perhaps the value as a guide is not high. 

I'm also experimenting with replacing the MH-based strategy with spinning 
hidden, shareable classes instead. In that case we might actually be better off 
getting rid of the `long indexCoder` hacks and generate code more similar to 
the `doConcat` you've come up with here. The main benefit of combining `coder` 
and `index/length` into a single `long` was to reduce the MH combinator 
overheads, but if we're spinning code with access to optimized primitives then 
that isn't really needed.

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

PR Comment: https://git.openjdk.org/jdk/pull/20253#issuecomment-2240412866

Reply via email to