RFR: 8336856: Efficient hidden class-based string concatenation strategy [v49]

Claes Redestad redestad at openjdk.org
Tue Aug 13 08:50:18 UTC 2024


On Tue, 13 Aug 2024 08:36:18 GMT, Shaojin Wen <duke at openjdk.org> wrote:

>> This PR implements the same algorithm as the current generateMHInlineCopy based on bytecode to improve startup performance.
>
> Shaojin Wen has updated the pull request incrementally with four additional commits since the last revision:
> 
>  - Update src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
>    
>    Co-authored-by: Claes Redestad <claes.redestad at oracle.com>
>  - Update src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
>    
>    Co-authored-by: Claes Redestad <claes.redestad at oracle.com>
>  - Update test/jdk/java/lang/String/concat/HiddenClassUnloading.java
>    
>    Co-authored-by: Claes Redestad <claes.redestad at oracle.com>
>  - Update src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java
>    
>    Co-authored-by: Claes Redestad <claes.redestad at oracle.com>

src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java line 1191:

> 1189:                     cl = String.class;
> 1190:                 }
> 1191:                 paramTypes[i + 4] = ConstantUtils.classDesc(cl);

Suggestion:

                paramTypes[i + 4] = needStringOf(cl) ? CD_String : ConstantUtils.classDesc(cl);

src/java.base/share/classes/java/lang/invoke/StringConcatFactory.java line 1223:

> 1221:             for (int i = 0; i < parameterCount; i++) {
> 1222:                 var cl = concatArgs.parameterType(i);
> 1223:                 paramTypes[i + 1] = needString(cl) ? CD_String : ConstantUtils.classDesc(cl);

Suggestion:

                paramTypes[i + 1] = needStringOf(cl) ? CD_String : ConstantUtils.classDesc(cl);


Typo in my previous suggestion

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20273#discussion_r1714913889
PR Review Comment: https://git.openjdk.org/jdk/pull/20273#discussion_r1714912293


More information about the core-libs-dev mailing list