Skip to content

[JitDiff X64] [EgorBo] Use XxHash3 in String.GetNonRandomizedHashCode #1095

Description

@MihuBot

Job completed in 15 minutes 36 seconds (remote runner delay: 55 seconds).

Using arguments: -NoPRLink

Diffs

Diffs
Found 84 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 40513216
Total bytes of diff: 40516823
Total bytes of delta: 3607 (0.01 % of base)
Total relative delta: 0.38
    diff is a regression.
    relative diff is a regression.


Total byte diff includes 3633 bytes from reconciling methods
	Base had    1 unique methods,       59 unique bytes
	Diff had   27 unique methods,     3692 unique bytes

Top file regressions (bytes):
        3607 : System.Private.CoreLib.dasm (0.05 % of base)

1 total files with Code Size differences (0 improved, 1 regressed), 259 unchanged.

Top method regressions (bytes):
        1223 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLength129To240(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         678 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLength17To128(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         221 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts) (0 base, 1 diff methods)
         208 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(ulong,ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         202 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLengthOver240(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         183 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:HashInternalLoop(ulong,ulong,uint,ulong) (FullOpts) (0 base, 1 diff methods)
         115 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:DeriveSecretFromSeed(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
         113 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate512(ulong,ulong,ulong) (FullOpts) (0 base, 1 diff methods)
         113 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate512Inlined(ulong,ulong,ulong) (FullOpts) (0 base, 1 diff methods)
          86 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulators(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
          69 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:NonRandomizedHashToInt32(ulong,uint):int (FullOpts) (0 base, 1 diff methods)
          59 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Mix16Bytes(ulong,ulong,ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate256(System.Runtime.Intrinsics.Vector256`1[ulong],ulong,System.Runtime.Intrinsics.Vector256`1[uint]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) (0 base, 1 diff methods)
          46 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply64To128(ulong,ulong,byref):ulong (FullOpts) (0 base, 1 diff methods)
          45 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulator256(System.Runtime.Intrinsics.Vector256`1[ulong],System.Runtime.Intrinsics.Vector256`1[ulong]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) (0 base, 1 diff methods)
          42 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate128(System.Runtime.Intrinsics.Vector128`1[ulong],ulong,System.Runtime.Intrinsics.Vector128`1[uint]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
          42 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulator128(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
          39 (23.93 % of base) : System.Private.CoreLib.dasm - System.String:GetNonRandomizedHashCode(System.ReadOnlySpan`1[ushort]):int (FullOpts)
          35 (Infinity of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:FastAvalanche(ulong):ulong (FullOpts) (0 base, 1 diff methods)
          35 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:FastAvalanche(ulong):ulong (FullOpts) (0 base, 1 diff methods)
          31 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply64To128ThenFold(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          25 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(ulong) (FullOpts) (0 base, 1 diff methods)
          24 (68.57 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:Avalanche(ulong):ulong (FullOpts)
          23 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:MultiplyWideningLower(System.Runtime.Intrinsics.Vector128`1[uint]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:get_DefaultSecret():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply32To64(uint,uint):ulong (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:XorShift(ulong,int):ulong (FullOpts) (0 base, 1 diff methods)
           4 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ReadUInt64LE(ulong):ulong (FullOpts) (0 base, 1 diff methods)
           4 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:WriteUInt64LE(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
           4 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:GetHashCodeHelper(System.__Canon):int (FullOpts)
           4 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.Nullable`1[int]]:GetHashCodeHelper(System.__Canon):int (FullOpts)
           2 (11.11 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer+OrdinalComparer:GetHashCode(System.String):int:this (FullOpts)

Top method improvements (bytes):
         -99 (-79.84 % of base) : System.Private.CoreLib.dasm - System.String:GetNonRandomizedHashCode():int:this (FullOpts)
         -59 (-100.00 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:Avalanche(ulong):ulong (FullOpts) (1 base, 0 diff methods)

Top method regressions (percentages):
        1223 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLength129To240(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         678 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLength17To128(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
         202 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:HashLengthOver240(ulong,uint,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          69 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHash3:NonRandomizedHashToInt32(ulong,uint):int (FullOpts) (0 base, 1 diff methods)
         221 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate(ulong,ulong,ulong,int,ubyte,int) (FullOpts) (0 base, 1 diff methods)
          42 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate128(System.Runtime.Intrinsics.Vector128`1[ulong],ulong,System.Runtime.Intrinsics.Vector128`1[uint]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
          56 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate256(System.Runtime.Intrinsics.Vector256`1[ulong],ulong,System.Runtime.Intrinsics.Vector256`1[uint]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) (0 base, 1 diff methods)
         113 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate512(ulong,ulong,ulong) (FullOpts) (0 base, 1 diff methods)
         113 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Accumulate512Inlined(ulong,ulong,ulong) (FullOpts) (0 base, 1 diff methods)
         115 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:DeriveSecretFromSeed(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
          35 (Infinity of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:FastAvalanche(ulong):ulong (FullOpts) (0 base, 1 diff methods)
          35 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:FastAvalanche(ulong):ulong (FullOpts) (0 base, 1 diff methods)
          16 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:get_DefaultSecret():System.ReadOnlySpan`1[ubyte] (FullOpts) (0 base, 1 diff methods)
         183 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:HashInternalLoop(ulong,ulong,uint,ulong) (FullOpts) (0 base, 1 diff methods)
          25 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:InitializeAccumulators(ulong) (FullOpts) (0 base, 1 diff methods)
         208 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:MergeAccumulators(ulong,ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          59 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Mix16Bytes(ulong,ulong,ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply32To64(uint,uint):ulong (FullOpts) (0 base, 1 diff methods)
          46 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply64To128(ulong,ulong,byref):ulong (FullOpts) (0 base, 1 diff methods)
          31 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:Multiply64To128ThenFold(ulong,ulong):ulong (FullOpts) (0 base, 1 diff methods)
          23 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:MultiplyWideningLower(System.Runtime.Intrinsics.Vector128`1[uint]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
           4 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ReadUInt64LE(ulong):ulong (FullOpts) (0 base, 1 diff methods)
          42 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulator128(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts) (0 base, 1 diff methods)
          45 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulator256(System.Runtime.Intrinsics.Vector256`1[ulong],System.Runtime.Intrinsics.Vector256`1[ulong]):System.Runtime.Intrinsics.Vector256`1[ulong] (FullOpts) (0 base, 1 diff methods)
          86 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:ScrambleAccumulators(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
           4 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:WriteUInt64LE(ulong,ulong) (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.IO.Hashing.XxHashShared:XorShift(ulong,int):ulong (FullOpts) (0 base, 1 diff methods)
          24 (68.57 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:Avalanche(ulong):ulong (FullOpts)
          39 (23.93 % of base) : System.Private.CoreLib.dasm - System.String:GetNonRandomizedHashCode(System.ReadOnlySpan`1[ushort]):int (FullOpts)
           2 (11.11 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.NonRandomizedStringEqualityComparer+OrdinalComparer:GetHashCode(System.String):int:this (FullOpts)
           4 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:GetHashCodeHelper(System.__Canon):int (FullOpts)
           4 (7.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.Nullable`1[int]]:GetHashCodeHelper(System.__Canon):int (FullOpts)

Top method improvements (percentages):
         -59 (-100.00 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:Avalanche(ulong):ulong (FullOpts) (1 base, 0 diff methods)
         -99 (-79.84 % of base) : System.Private.CoreLib.dasm - System.String:GetNonRandomizedHashCode():int:this (FullOpts)

34 total methods with Code Size differences (2 improved, 32 regressed), 245070 unchanged.

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

Artifacts:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions