On Wed, 12 Jun 2024 14:58:39 GMT, Emanuel Peter <epe...@openjdk.org> wrote:

>> @wenshao If you look at the tests in 
>> https://github.com/openjdk/jdk/pull/16245, you can see examples like this:
>> https://github.com/eme64/jdk/blob/93bf2ddc9b7f584724034aec6a4f8b9fe1b2dfda/test/hotspot/jtreg/compiler/c2/TestMergeStores.java#L501-L514
>> So yes, we can merge them.
>
>> @eme64 It seems like MergeStore didn't happen, is there something I did 
>> wrong?
> 
> Yes ;)
> 
> @wenshao The issue is that the pattern matching is quite **limited**.
> `putCharsAt(byte[] value, int i, char c1, char c2, char c3, char c4)`
> This has 4 variables. This is not allowed for the optimization. You would 
> have to pass in a `long` and split it via shifts.
> A possible exception: if `putCharsAt` is inlined and outside it is a 
> splitting of a `long` value with shift, then ... maybe ... this would be 
> optimized with `MergeStores`.
> 
> There are only 2 **accepted** patterns:
> - Multiple stores of constants -> constant is merged, which allows stores to 
> be merged.
> - Multiple stores which all store a "section" of a larger value:
> 
> You can see **examples** I listed at the beginning of the PR description in 
> https://github.com/openjdk/jdk/pull/16245.

Thanks to @eme64 's patience and help, I found a way to use MergeStore without 
doing boundary checking.

It would be even better if Unsafe.putChar could be used for MergeStore in the 
future.

## 1. JavaCode

class StringUTF16 {
    public static void putCharsAt(byte[] value, int i, char c1, char c2, char 
c3, char c4) {
        // Don't use the putChar method, Its instrinsic will cause C2 unable to 
combining values into larger stores.
        putChar1(value, i    , c1);
        putChar1(value, i + 1, c2);
        putChar1(value, i + 2, c3);
        putChar1(value, i + 3, c4);
    }

    public static void putCharsAt(byte[] value, int i, char c1, char c2, char 
c3, char c4, char c5) {
        // Don't use the putChar method, Its instrinsic will cause C2 unable to 
combining values into larger stores.
        putChar1(value, i    , c1);
        putChar1(value, i + 1, c2);
        putChar1(value, i + 2, c3);
        putChar1(value, i + 3, c4);
        putChar1(value, i + 4, c5);
    }

    static void putChar1(byte[] value, int i, char c) {
        int address = Unsafe.ARRAY_BYTE_BASE_OFFSET + (i << 1);
        Unsafe.getUnsafe().putByte(value, address    , (byte)(c >> 
HI_BYTE_SHIFT));
        Unsafe.getUnsafe().putByte(value, address + 1, (byte)(c >> 
LO_BYTE_SHIFT));
    }
}


## 2. Benchmark Numbers
The performance numbers under MacBookPro M1 Max are as follows:

-Benchmark                                   Mode  Cnt  Score   Error  Units
-StringBuilders.toStringCharWithNull8Latin1  avgt   15  7.073 ? 0.010  ns/op
-StringBuilders.toStringCharWithNull8Utf16   avgt   15  9.298 ? 0.015  ns/op
-StringBuilders.toStringCharWithBool8Latin1  avgt   15  7.387 ? 0.021  ns/op
-StringBuilders.toStringCharWithBool8Utf16   avgt   15  9.615 ? 0.011  ns/op

+Benchmark                                   Mode  Cnt  Score   Error  Units
+StringBuilders.toStringCharWithNull8Latin1  avgt   15  5.628 ? 0.017  ns/op 
+25.67%
+StringBuilders.toStringCharWithNull8Utf16   avgt   15  6.873 ? 0.026  ns/op 
+35.28%
+StringBuilders.toStringCharWithBool8Latin1  avgt   15  6.480 ? 0.077  ns/op 
+13.99%
+StringBuilders.toStringCharWithBool8Utf16   avgt   15  7.456 ? 0.059  ns/op 
+28.95%


## 3.  TraceMergeStores

[TraceMergeStores]: Replace
 65  StoreB  === 54 7 64 12  [[ 87 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567)
 87  StoreB  === 54 65 86 81  [[ 18 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568)
[TraceMergeStores]: with
 12  Parm  === 3  [[ 81 65 59 44 90 ]] Parm2: int !jvms: StringUTF16::putChar1 
@ bci:-1 (line 1566)
 90  StoreC  === 54 7 64 12  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
  639  StoreB  === 628 494 638 576  [[ 663 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  663  StoreB  === 628 639 662 34  [[ 705 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  705  StoreB  === 628 663 704 577  [[ 729 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  729  StoreB  === 628 705 728 34  [[ 771 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  771  StoreB  === 628 729 770 578  [[ 795 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  795  StoreB  === 628 771 794 34  [[ 838 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  838  StoreB  === 628 795 837 579  [[ 861 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
  861  StoreB  === 628 838 860 34  [[ 1212 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239)
[TraceMergeStores]: with
 1275  ConL  === 0  [[ 1276 ]]  #long:28429475166421108
 1276  StoreL  === 628 494 638 1275  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  629  StoreB  === 618 484 628 566  [[ 653 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788)
  653  StoreB  === 618 629 652 24  [[ 695 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788)
  695  StoreB  === 618 653 694 567  [[ 719 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788)
  719  StoreB  === 618 695 718 24  [[ 761 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788)
  761  StoreB  === 618 719 760 568  [[ 785 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788)
  785  StoreB  === 618 761 784 24  [[ 828 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788)
  828  StoreB  === 618 785 827 569  [[ 851 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788)
  851  StoreB  === 618 828 850 24  [[ 1202 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788)
[TraceMergeStores]: with
 1259  ConL  === 0  [[ 1260 ]]  #long:28429475166421108
 1260  StoreL  === 618 484 628 1259  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  990  StoreB  === 917 949 989 870  [[ 1013 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1013  StoreB  === 917 990 1012 34  [[ 1054 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1054  StoreB  === 917 1013 1053 871  [[ 1077 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1077  StoreB  === 917 1054 1076 34  [[ 1118 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1118  StoreB  === 917 1077 1117 872  [[ 1141 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1141  StoreB  === 917 1118 1140 34  [[ 1181 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1181  StoreB  === 917 1141 1180 579  [[ 1205 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
 1205  StoreB  === 917 1181 1204 34  [[ 1212 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
[TraceMergeStores]: with
 1280  ConL  === 0  [[ 1281 ]]  #long:28429466576093281
 1281  StoreL  === 917 949 989 1280  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  980  StoreB  === 907 939 979 860  [[ 1003 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1003  StoreB  === 907 980 1002 24  [[ 1044 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1044  StoreB  === 907 1003 1043 861  [[ 1067 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1067  StoreB  === 907 1044 1066 24  [[ 1108 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1108  StoreB  === 907 1067 1107 862  [[ 1131 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1131  StoreB  === 907 1108 1130 24  [[ 1171 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1171  StoreB  === 907 1131 1170 569  [[ 1195 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790)
 1195  StoreB  === 907 1171 1194 24  [[ 1202 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790)
[TraceMergeStores]: with
 1264  ConL  === 0  [[ 1265 ]]  #long:28429466576093281
 1265  StoreL  === 907 939 979 1264  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  927  StoreB  === 917 494 926 869  [[ 949 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
  949  StoreB  === 917 927 948 34  [[ 1281 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239)
[TraceMergeStores]: with
  869  ConI  === 0  [[ 927 921 921 1284 ]]  #int:102
 1284  StoreC  === 917 494 926 869  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  917  StoreB  === 907 484 916 859  [[ 939 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790)
  939  StoreB  === 907 917 938 24  [[ 1265 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=10; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=10; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790)
[TraceMergeStores]: with
  859  ConI  === 0  [[ 917 911 911 1268 ]]  #int:102
 1268  StoreC  === 907 484 916 859  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=10;
[TraceMergeStores]: Replace
  78  StoreB  === 67 7 77 12  [[ 100 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1558)
 100  StoreB  === 67 78 99 94  [[ 138 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1558)
[TraceMergeStores]: with
  12  Parm  === 3  [[ 94 78 72 57 343 ]] Parm2: int !jvms: 
StringUTF16::putCharsAt @ bci:-1 (line 1558)
 343  StoreC  === 67 7 77 12  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
 138  StoreB  === 67 343 137 13  [[ 160 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1559)
 160  StoreB  === 67 138 159 154  [[ 198 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1559)
[TraceMergeStores]: with
  13  Parm  === 3  [[ 154 138 72 344 ]] Parm3: int !jvms: 
StringUTF16::putCharsAt @ bci:-1 (line 1558)
 344  StoreC  === 67 343 137 13  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
 198  StoreB  === 67 344 197 14  [[ 220 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1560)
 220  StoreB  === 67 198 219 214  [[ 259 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1560)
[TraceMergeStores]: with
  14  Parm  === 3  [[ 214 198 72 345 ]] Parm4: int !jvms: 
StringUTF16::putCharsAt @ bci:-1 (line 1558)
 345  StoreC  === 67 344 197 14  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
 259  StoreB  === 67 345 258 15  [[ 281 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1561)
 281  StoreB  === 67 259 280 275  [[ 317 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1561)
[TraceMergeStores]: with
  15  Parm  === 3  [[ 275 259 72 346 ]] Parm5: int !jvms: 
StringUTF16::putCharsAt @ bci:-1 (line 1558)
 346  StoreC  === 67 345 258 15  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
 317  StoreB  === 67 346 316 16  [[ 339 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:38 (line 1562)
 339  StoreB  === 67 317 338 333  [[ 22 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=4; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=4; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:38 (line 1562)
[TraceMergeStores]: with
  16  Parm  === 3  [[ 333 317 72 347 ]] Parm6: int !jvms: 
StringUTF16::putCharsAt @ bci:-1 (line 1558)
 347  StoreC  === 67 346 316 16  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=4;
[TraceMergeStores]: Replace
 1023  StoreB  === 473 328 1072 196  [[ 955 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  955  StoreB  === 473 1023 1024 128  [[ 871 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  871  StoreB  === 473 955 956 193  [[ 785 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  785  StoreB  === 473 871 872 128  [[ 695 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  695  StoreB  === 473 785 786 194  [[ 594 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  594  StoreB  === 473 695 696 128  [[ 474 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  474  StoreB  === 473 594 595 195  [[ 336 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
  336  StoreB  === 473 474 475 128  [[ 1143 486 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18)
[TraceMergeStores]: with
 1372  ConL  === 0  [[ 1373 ]]  #long:28429475166421108
 1373  StoreL  === 473 328 1072 1372  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;
[TraceMergeStores]: Replace
  924  StoreB  === 63 997 998 216  [[ 838 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  838  StoreB  === 63 924 925 128  [[ 743 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  743  StoreB  === 63 838 839 217  [[ 644 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  644  StoreB  === 63 743 744 128  [[ 520 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  520  StoreB  === 63 644 645 218  [[ 374 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  374  StoreB  === 63 520 521 128  [[ 239 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  239  StoreB  === 63 374 375 195  [[ 102 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  102  StoreB  === 63 239 240 128  [[ 56 310 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
[TraceMergeStores]: with
 1383  ConL  === 0  [[ 1384 ]]  #long:28429466576093281
 1384  StoreL  === 63 997 998 1383  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;
[TraceMergeStores]: Replace
 1046  StoreB  === 63 1143 1082 219  [[ 997 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
  997  StoreB  === 63 1046 1047 128  [[ 1384 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18)
[TraceMergeStores]: with
  219  ConI  === 0  [[ 1046 92 92 1387 ]]  #int:102
 1387  StoreC  === 63 1143 1082 219  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;
[TraceMergeStores]: Replace
 1101  StoreB  === 544 390 1156 241  [[ 1028 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
 1028  StoreB  === 544 1101 1102 172  [[ 945 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1551) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  945  StoreB  === 544 1028 1029 238  [[ 858 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  858  StoreB  === 544 945 946 172  [[ 769 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1552) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  769  StoreB  === 544 858 859 239  [[ 664 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  664  StoreB  === 544 769 770 172  [[ 545 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1553) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  545  StoreB  === 544 664 665 240  [[ 398 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  398  StoreB  === 544 545 546 172  [[ 1230 557 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1554) AbstractStringBuilder::append @ 
bci:128 (line 788) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:76 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
[TraceMergeStores]: with
 1466  ConL  === 0  [[ 1467 ]]  #long:28429475166421108
 1467  StoreL  === 544 390 1156 1466  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;
[TraceMergeStores]: Replace
  994  StoreB  === 78 1068 1069 263  [[ 912 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  912  StoreB  === 78 994 995 172  [[ 826 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:11 (line 1559) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  826  StoreB  === 78 912 913 264  [[ 729 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  729  StoreB  === 78 826 827 172  [[ 605 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:20 (line 1560) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  605  StoreB  === 78 729 730 265  [[ 457 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  457  StoreB  === 78 605 606 172  [[ 302 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:29 (line 1561) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  302  StoreB  === 78 457 458 240  [[ 132 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
  132  StoreB  === 78 302 303 172  [[ 475 70 370 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:38 (line 1562) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
[TraceMergeStores]: with
 1477  ConL  === 0  [[ 1478 ]]  #long:28429466576093281
 1478  StoreL  === 78 1068 1069 1477  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;
[TraceMergeStores]: Replace
 1124  StoreB  === 78 1230 1165 266  [[ 1068 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:20 (line 1567) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
 1068  StoreB  === 78 1124 1125 172  [[ 1478 ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):exact+any *, idx=11; unsafe  Memory: 
@byte[int:>=0] (java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, 
idx=11; !jvms: StringUTF16::putChar1 @ bci:37 (line 1568) 
StringUTF16::putCharsAt @ bci:3 (line 1558) AbstractStringBuilder::append @ 
bci:147 (line 790) StringBuilder::append @ bci:2 (line 239) 
SBTraceStoreTest::append @ bci:80 (line 18) SBTraceStoreTest::appendTest @ 
bci:28 (line 32)
[TraceMergeStores]: with
  266  ConI  === 0  [[ 1124 114 114 1481 ]]  #int:102
 1481  StoreC  === 78 1230 1165 266  [[ ]]  @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11; 
mismatched  Memory: @byte[int:>=0] 
(java/lang/Cloneable,java/io/Serializable):NotNull:exact+any *, idx=11;

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

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

Reply via email to