Skip to content

[X64] [MichalPetryka] Implement Interlocked for small types. #229

Description

@MihuBot

Build completed in 2 hours 58 minutes.
dotnet/runtime#92974

CoreLib diffs

Found 2 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6796331
Total bytes of diff: 6796443
Total bytes of delta: 112 (0.00 % of base)
    diff is a regression.


Total byte diff includes 112 bytes from reconciling methods
	Base had    0 unique methods,        0 unique bytes
	Diff had    8 unique methods,      112 unique bytes

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

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

Top method regressions (bytes):
          19 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,byte,byte):byte (FullOpts) (0 base, 1 diff methods)
          18 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ushort,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,short,short):short (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ubyte,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          14 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,byte):byte (FullOpts) (0 base, 1 diff methods)
          12 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          10 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,short):short (FullOpts) (0 base, 1 diff methods)

Top method regressions (percentages):
          19 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,byte,byte):byte (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,short,short):short (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ubyte,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          18 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ushort,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          14 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,byte):byte (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,short):short (FullOpts) (0 base, 1 diff methods)
          10 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          12 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ushort):ushort (FullOpts) (0 base, 1 diff methods)

8 total methods with Code Size differences (0 improved, 8 regressed), 55632 unchanged.

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

Frameworks diffs

Diffs
Found 259 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38179345
Total bytes of diff: 38179457
Total bytes of delta: 112 (0.00 % of base)
Total relative delta: -1.00
    diff is a regression.
    relative diff is an improvement.


Total byte diff includes 483 bytes from reconciling methods
	Base had    0 unique methods,        0 unique bytes
	Diff had    9 unique methods,      483 unique bytes

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

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

Top method regressions (bytes):
         371 (Infinity of base) : System.Net.Sockets.dasm - 
          19 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,byte,byte):byte (FullOpts) (0 base, 1 diff methods)
          18 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ushort,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,short,short):short (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ubyte,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          14 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,byte):byte (FullOpts) (0 base, 1 diff methods)
          12 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          10 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,short):short (FullOpts) (0 base, 1 diff methods)

Top method improvements (bytes):
        -371 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:EventLoop():this (FullOpts)

Top method regressions (percentages):
         371 (Infinity of base) : System.Net.Sockets.dasm - 
          19 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,byte,byte):byte (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,short,short):short (FullOpts) (0 base, 1 diff methods)
          15 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ubyte,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          18 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:CompareExchange(byref,ushort,ushort):ushort (FullOpts) (0 base, 1 diff methods)
          14 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,byte):byte (FullOpts) (0 base, 1 diff methods)
           9 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,short):short (FullOpts) (0 base, 1 diff methods)
          10 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ubyte):ubyte (FullOpts) (0 base, 1 diff methods)
          12 (Infinity of base) : System.Private.CoreLib.dasm - System.Threading.Interlocked:Exchange(byref,ushort):ushort (FullOpts) (0 base, 1 diff methods)

Top method improvements (percentages):
        -371 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:EventLoop():this (FullOpts)

10 total methods with Code Size differences (1 improved, 9 regressed), 237452 unchanged.

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

Artifacts:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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