Skip to content

[JitDiff X64] [EgorBo] Remove some of unsafe code in Base64 decoder #1783

@MihuBot

Description

@MihuBot

Job completed in 2 minutes 57 seconds (remote runner delay: 0 seconds).
dotnet/runtime#124761

Main commit: dotnet/runtime@e5f7893
PR commit: EgorBo/runtime-1@1caff26

Diffs

Found 83 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 45372473
Total bytes of diff: 45372691
Total bytes of delta: 218 (0.00 % of base)
    diff is a regression.


Total byte diff includes 218 bytes from reconciling methods
	Base had    9 unique methods,      902 unique bytes
	Diff had    9 unique methods,     1120 unique bytes

Top file regressions (bytes):
         218 : System.Private.CoreLib.dasm (0.00 % of base)

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

Top method regressions (bytes):
         145 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeRemaining(System.ReadOnlySpan`1[ushort],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         145 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeRemaining(System.ReadOnlySpan`1[ushort],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         143 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeFourElements(System.ReadOnlySpan`1[ushort],byref):int:this (FullOpts) (0 base, 1 diff methods)
         143 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeFourElements(System.ReadOnlySpan`1[ushort],byref):int:this (FullOpts) (0 base, 1 diff methods)
         130 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeRemaining(System.ReadOnlySpan`1[byte],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         130 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeRemaining(System.ReadOnlySpan`1[byte],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         120 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeFourElements(System.ReadOnlySpan`1[byte],byref):int:this (FullOpts) (0 base, 1 diff methods)
         120 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeFourElements(System.ReadOnlySpan`1[byte],byref):int:this (FullOpts) (0 base, 1 diff methods)
          44 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper:WriteThreeLowOrderBytes(System.Span`1[byte],int) (FullOpts) (0 base, 1 diff methods)

Top method improvements (bytes):
        -155 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -155 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -140 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -140 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -95 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -95 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -51 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -51 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -20 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper:WriteThreeLowOrderBytes(ptr,int) (FullOpts) (1 base, 0 diff methods)

Top method regressions (percentages):
          44 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper:WriteThreeLowOrderBytes(System.Span`1[byte],int) (FullOpts) (0 base, 1 diff methods)
         120 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeFourElements(System.ReadOnlySpan`1[byte],byref):int:this (FullOpts) (0 base, 1 diff methods)
         130 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeRemaining(System.ReadOnlySpan`1[byte],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         143 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeFourElements(System.ReadOnlySpan`1[ushort],byref):int:this (FullOpts) (0 base, 1 diff methods)
         145 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeRemaining(System.ReadOnlySpan`1[ushort],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         120 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeFourElements(System.ReadOnlySpan`1[byte],byref):int:this (FullOpts) (0 base, 1 diff methods)
         130 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeRemaining(System.ReadOnlySpan`1[byte],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)
         143 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeFourElements(System.ReadOnlySpan`1[ushort],byref):int:this (FullOpts) (0 base, 1 diff methods)
         145 (Infinity of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeRemaining(System.ReadOnlySpan`1[ushort],byref,byref,byref):int:this (FullOpts) (0 base, 1 diff methods)

Top method improvements (percentages):
         -20 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper:WriteThreeLowOrderBytes(ptr,int) (FullOpts) (1 base, 0 diff methods)
         -51 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -140 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderByte:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -95 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -155 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Helper+Base64DecoderChar:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -51 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -140 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderByte:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)
         -95 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeFourElements(ptr,byref):int:this (FullOpts) (1 base, 0 diff methods)
        -155 (-100.00 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64Url+Base64UrlDecoderChar:DecodeRemaining(ptr,byref,long,byref,byref):int:this (FullOpts) (1 base, 0 diff methods)

18 total methods with Code Size differences (9 improved, 9 regressed), 284117 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