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

Shaojin Wen duke at openjdk.org
Wed Jun 12 12:29:15 UTC 2024


On Tue, 11 Jun 2024 11:35:28 GMT, Shaojin Wen <duke at 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 incrementally with one additional commit since the last revision:
> 
>   revert

-XX:+TraceMergeStores -XX:CompileCommand=printcompilation,*::* -XX:+PrintInlining



@ 5   java.lang.AbstractStringBuilder::appendNull (75 bytes)   inline (hot)
  @ 9   java.lang.AbstractStringBuilder::ensureCapacityInternal (39 bytes)   inline (hot)
    @ 24   java.lang.AbstractStringBuilder::newCapacity (59 bytes)   failed to inline: too big
    @ 32   java.util.Arrays::copyOf (33 bytes)   inline (hot)
      @ 7   java.lang.Object::clone (0 bytes)   failed to inline: native method
      @ 7   java.lang.Object::clone (0 bytes)   (intrinsic)
      @ 25   java.lang.Math::min (11 bytes)   (intrinsic)
      @ 28   java.lang.System::arraycopy (0 bytes)   (intrinsic)
  @ 18   java.lang.AbstractStringBuilder::isLatin1 (19 bytes)   inline (hot)
  @ 63   java.lang.StringUTF16::putCharsAt (33 bytes)   inline (hot)
    @ 3   java.lang.StringUTF16::putChar (54 bytes)   (intrinsic)
    @ 11   java.lang.StringUTF16::putChar (54 bytes)   (intrinsic)
    @ 20   java.lang.StringUTF16::putChar (54 bytes)   (intrinsic)
    @ 29   java.lang.StringUTF16::putChar (54 bytes)   (intrinsic)

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

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


More information about the core-libs-dev mailing list