Skip to content

Conversation

@jakobbotsch
Copy link
Member

This is a better fix for #58373 that changes the handling of this to
happen in morph for all cases. We sometimes missed the insertion of
necessary casts because we forgot to remove a GTF_DONT_CSE flag when
folding an indirection. Fixing this leads to some new GT_CNS_DBL cases
in lowering that hit an assert, but those cases should be correctly
handled by the default case (#58589 (comment)) so just remove the assert.

To get rid of some of the regressions I have allowed generating
assertions when assigning struct fields from casts. It was unclear why
this was not allowed in the first place.

This is a better fix for dotnet#58373 that changes the handling of this to
happen in morph for all cases. We sometimes missed the insertion of
necessary casts because we forgot to remove a GTF_DONT_CSE flag when
folding an indirection. Fixing this leads to some new GT_CNS_DBL cases
in lowering that hit an assert, but those cases should be correctly
handled by the default case so just remove the assert.

To get rid of some of the regressions I have allowed generating
assertions when assigning struct fields from casts. It was unclear why
this was not allowed in the first place.
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Sep 27, 2021
@ghost
Copy link

ghost commented Sep 27, 2021

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

This is a better fix for #58373 that changes the handling of this to
happen in morph for all cases. We sometimes missed the insertion of
necessary casts because we forgot to remove a GTF_DONT_CSE flag when
folding an indirection. Fixing this leads to some new GT_CNS_DBL cases
in lowering that hit an assert, but those cases should be correctly
handled by the default case (#58589 (comment)) so just remove the assert.

To get rid of some of the regressions I have allowed generating
assertions when assigning struct fields from casts. It was unclear why
this was not allowed in the first place.

Author: jakobbotsch
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@jakobbotsch
Copy link
Member Author

jakobbotsch commented Sep 27, 2021

Diffs are very small and generally positive, we get rid of some unnecessary casts this way, e.g.

 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )   byref  ->  rsi         this single-def
-;  V01 loc0         [V01,T02] (  2,  2   )    long  ->  rax         ld-addr-op single-def
+;* V01 loc0         [V01    ] (  0,  0   )    long  ->  zero-ref    ld-addr-op single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  lclBlk (32) [rsp+00H]   "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T01] (  4,  4   )    long  ->  rdi         "Inline stloc first use temp"
 ;
@@ -37,9 +37,8 @@ G_M19257_IG02:        ; gcrefRegs=00000000 {}, byrefRegs=00000040 {rsi}, byref
        mov      eax, eax
        shl      rax, 32
        or       rdi, rax
-       mov      rax, rdi
-       vmovd    xmm0, rax
-                                               ;; bbWeight=1    PerfScore 6.00
+       vmovd    xmm0, rdi
+                                               ;; bbWeight=1    PerfScore 5.75
 G_M19257_IG03:        ; , epilog, nogc, extend
        add      rsp, 40
        pop      rsi
@@ -47,7 +46,7 @@ G_M19257_IG03:        ; , epilog, nogc, extend
        ret
                                                ;; bbWeight=1    PerfScore 2.25

-; Total bytes of code 54, prolog size 9, PerfScore 17.15, instruction count 19, allocated bytes for code 54 (MethodHash=3770b4c6) for method Internal.IL.ILDisassembler:ReadILDouble():double:this
+; Total bytes of code 51, prolog size 9, PerfScore 16.60, instruction count 18, allocated bytes for code 51 (MethodHash=3770b4c6) for method Internal.IL.ILDisassembler:ReadILDouble():double:this
 ;# V01 OutArgs      [V01    ] (  1,  1   )  lclBlk ( 0) [rsp+00H]   "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->  rax         "Inlining Arg"
 ;* V03 tmp2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "NewObj constructor temp"
-;  V04 tmp3         [V04,T02] (  2,  2   )   ubyte  ->  rax         V03.Item1(offs=0x00) P-INDEP "field V03.Item1 (fldOffset=0x0)"
+;* V04 tmp3         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    V03.Item1(offs=0x00) P-INDEP "field V03.Item1 (fldOffset=0x0)"
 ;
 ; Lcl frame size = 0

@@ -20,13 +20,12 @@ G_M45153_IG01:        ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nog
 G_M45153_IG02:        ; gcrefRegs=00000002 {rcx}, byrefRegs=00000000 {}, byref
        ; gcrRegs +[rcx]
        movzx    rax, byte  ptr [rcx+8]
-       movzx    rax, al
-                                               ;; bbWeight=1    PerfScore 2.25
+                                               ;; bbWeight=1    PerfScore 2.00
 G_M45153_IG03:        ; , epilog, nogc, extend
        ret
                                                ;; bbWeight=1    PerfScore 1.00

-; Total bytes of code 8, prolog size 0, PerfScore 4.05, instruction count 3, allocated bytes for code 8 (MethodHash=0f984f9e) for method System.TupleExtensions:ToValueTuple(System.Tuple`1[Byte]):System.ValueTuple`1[Byte]
+; Total bytes of code 5, prolog size 0, PerfScore 3.50, instruction count 2, allocated bytes for code 5 (MethodHash=0f984f9e) for method System.TupleExtensions:ToValueTuple(System.Tuple`1[Byte]):System.ValueTuple`1[Byte]

There are also cases where we now do normalization that we didn't do before and that we actually should have done before:

 ; Final local variable assignments
 ;
 ;# V00 OutArgs      [V00    ] (  1,  1   )  lclBlk ( 0) [rsp+00H]   "OutgoingArgSpace"
-;  V01 tmp1         [V01,T00] (  2,  4   )  double  ->  mm0         ld-addr-op "Inlining Arg"
+;* V01 tmp1         [V01    ] (  0,  0   )  double  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;
 ; Lcl frame size = 0

diff --git "a/C:\\dev\\dotnet\\spmi\\asm.fix_58373_2.coreclr_tests.pmi.windows.x64.checked\\base\\/210391.dasm" "b/C:\\dev\\dotnet\\spmi\\asm.fix_58373_2.coreclr_tests.pmi.windows.x64.checked\\diff\\/210391.dasm"
index 1cd586f..aff9ae0 100644
--- "a/C:\\dev\\dotnet\\spmi\\asm.fix_58373_2.coreclr_tests.pmi.windows.x64.checked\\base\\/210391.dasm"
+++ "b/C:\\dev\\dotnet\\spmi\\asm.fix_58373_2.coreclr_tests.pmi.windows.x64.checked\\diff\\/210391.dasm"
@@ -14,13 +14,13 @@
 G_M53716_IG01:        ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG
                                                ;; bbWeight=1    PerfScore 0.00
 G_M53716_IG02:        ; gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref
-       mov      eax, ecx
+       movsx    rax, cl
                                                ;; bbWeight=1    PerfScore 0.25
 G_M53716_IG03:        ; , epilog, nogc, extend
        ret
                                                ;; bbWeight=1    PerfScore 1.00

-; Total bytes of code 3, prolog size 0, PerfScore 1.55, instruction count 2, allocated bytes for code 3 (MethodHash=49b22e2b) for method Test:noinline1(byte):byte
+; Total bytes of code 5, prolog size 0, PerfScore 1.75, instruction count 2, allocated bytes for code 5 (MethodHash=49b22e2b) for method Test:noinline1(byte):byte

for the code:

.method private hidebysig static int8
noinline1(int8 'ret') cil managed
{
.maxstack 1
ldarga.s 0
ldind.i4
ret
}

I doubt we would be able to hit a problem with this though since it only happens for primitive types in registers and those would have been normalized already in managed codegen (and for reverse-pinvoke the caller does not make assumptions about normalization).

The summary is:

benchmarks.run.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1636
Total bytes of diff: 1623
Total bytes of delta: -13 (-0.79% of base)
Total relative delta: -0.05
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           1 : 15896.dasm (0.12% of base)

Top file improvements (bytes):
          -7 : 15895.dasm (-4.40% of base)
          -7 : 17909.dasm (-1.04% of base)

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

Top method regressions (bytes):
           1 ( 0.12% of base) : 15896.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this

Top method improvements (bytes):
          -7 (-1.04% of base) : 17909.dasm - BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this
          -7 (-4.40% of base) : 15895.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this

Top method regressions (percentages):
           1 ( 0.12% of base) : 15896.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this

Top method improvements (percentages):
          -7 (-4.40% of base) : 15895.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this
          -7 (-1.04% of base) : 17909.dasm - BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this

3 total methods with Code Size differences (2 improved, 1 regressed), 0 unchanged.


coreclr_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 1515
Total bytes of diff: 1431
Total bytes of delta: -84 (-5.54% of base)
Total relative delta: -2.55
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           3 : 81692.dasm (3.49% of base)
           2 : 210391.dasm (66.67% of base)
           2 : 221296.dasm (4.76% of base)
           1 : 221628.dasm (33.33% of base)

Top file improvements (bytes):
          -4 : 84405.dasm (-8.33% of base)
          -4 : 84426.dasm (-8.33% of base)
          -4 : 84384.dasm (-7.02% of base)
          -4 : 84412.dasm (-4.49% of base)
          -4 : 84396.dasm (-7.02% of base)
          -4 : 84367.dasm (-8.89% of base)
          -4 : 233637.dasm (-44.44% of base)
          -4 : 84374.dasm (-4.12% of base)
          -4 : 84398.dasm (-7.69% of base)
          -4 : 84419.dasm (-5.80% of base)
          -4 : 84391.dasm (-7.84% of base)
          -3 : 164522.dasm (-5.56% of base)
          -3 : 233635.dasm (-42.86% of base)
          -3 : 84383.dasm (-5.36% of base)
          -3 : 81372.dasm (-50.00% of base)
          -3 : 84389.dasm (-5.45% of base)
          -3 : 84390.dasm (-6.00% of base)
          -3 : 84418.dasm (-4.41% of base)
          -3 : 84366.dasm (-6.82% of base)
          -3 : 84397.dasm (-5.88% of base)

31 total files with Code Size differences (27 improved, 4 regressed), 9 unchanged.

Top method regressions (bytes):
           3 ( 3.49% of base) : 81692.dasm - Runtime_58972:GetItem(Runtime_58972+MyStruct[],int):MyStruct
           2 ( 4.76% of base) : 221296.dasm - JitTest.Test:method_2_8(ushort):ushort
           2 (66.67% of base) : 210391.dasm - Test:noinline1(byte):byte
           1 (33.33% of base) : 221628.dasm - JitTest.Test:method_2_8(ushort):ushort

Top method improvements (bytes):
          -4 (-8.89% of base) : 84367.dasm - Foo:Function(short):System.String:this
          -4 (-4.12% of base) : 84374.dasm - Foo:Function(short,System.Nullable`1[Int32]):System.String:this
          -4 (-7.02% of base) : 84384.dasm - Foo[__Canon][System.__Canon]:Function(System.__Canon,short):System.String
          -4 (-7.84% of base) : 84391.dasm - Foo[Byte][System.Byte]:Function(ubyte,short):System.String
          -4 (-4.49% of base) : 84412.dasm - Foo[Double][System.Double]:Function(double,short):System.String
          -4 (-7.69% of base) : 84398.dasm - Foo[Int16][System.Int16]:Function(short,short):System.String
          -4 (-7.02% of base) : 84396.dasm - Foo[Int16][System.Int16]:Function(short,System.__Canon):System.String
          -4 (-8.33% of base) : 84405.dasm - Foo[Int32][System.Int32]:Function(int,short):System.String
          -4 (-8.33% of base) : 84426.dasm - Foo[Int64][System.Int64]:Function(long,short):System.String
          -4 (-5.80% of base) : 84419.dasm - Foo[Vector`1][System.Numerics.Vector`1[System.Single]]:Function(System.Numerics.Vector`1[Single],short):System.String
          -4 (-44.44% of base) : 233637.dasm - Wrapper`1[Int16][System.Int16]:op_Implicit(short):Wrapper`1[Int16]
          -3 (-6.82% of base) : 84366.dasm - Foo:Function(ubyte):System.String:this
          -3 (-3.12% of base) : 84373.dasm - Foo:Function(ubyte,System.Nullable`1[Int32]):System.String:this
          -3 (-5.36% of base) : 84383.dasm - Foo[__Canon][System.__Canon]:Function(System.__Canon,ubyte):System.String
          -3 (-5.45% of base) : 84389.dasm - Foo[Byte][System.Byte]:Function(ubyte,System.__Canon):System.String
          -3 (-6.00% of base) : 84390.dasm - Foo[Byte][System.Byte]:Function(ubyte,ubyte):System.String
          -3 (-3.41% of base) : 84411.dasm - Foo[Double][System.Double]:Function(double,ubyte):System.String
          -3 (-5.88% of base) : 84397.dasm - Foo[Int16][System.Int16]:Function(short,ubyte):System.String
          -3 (-6.38% of base) : 84404.dasm - Foo[Int32][System.Int32]:Function(int,ubyte):System.String
          -3 (-6.38% of base) : 84425.dasm - Foo[Int64][System.Int64]:Function(long,ubyte):System.String

Top method regressions (percentages):
           2 (66.67% of base) : 210391.dasm - Test:noinline1(byte):byte
           1 (33.33% of base) : 221628.dasm - JitTest.Test:method_2_8(ushort):ushort
           2 ( 4.76% of base) : 221296.dasm - JitTest.Test:method_2_8(ushort):ushort
           3 ( 3.49% of base) : 81692.dasm - Runtime_58972:GetItem(Runtime_58972+MyStruct[],int):MyStruct

Top method improvements (percentages):
          -3 (-50.00% of base) : 81372.dasm - GitHub_18522:M113():S0
          -3 (-50.00% of base) : 81685.dasm - Runtime_58373:MakeHalf():System.Half
          -4 (-44.44% of base) : 233637.dasm - Wrapper`1[Int16][System.Int16]:op_Implicit(short):Wrapper`1[Int16]
          -3 (-42.86% of base) : 233635.dasm - Wrapper`1[Byte][System.Byte]:op_Implicit(ubyte):Wrapper`1[Byte]
          -3 (-33.33% of base) : 195741.dasm - SingleByte:Get():SingleByte
          -3 (-14.29% of base) : 233617.dasm - GitHub_21625.test:CreateScalar(ushort):System.Runtime.Intrinsics.Vector128`1[UInt16]
          -4 (-8.89% of base) : 84367.dasm - Foo:Function(short):System.String:this
          -4 (-8.33% of base) : 84405.dasm - Foo[Int32][System.Int32]:Function(int,short):System.String
          -4 (-8.33% of base) : 84426.dasm - Foo[Int64][System.Int64]:Function(long,short):System.String
          -4 (-7.84% of base) : 84391.dasm - Foo[Byte][System.Byte]:Function(ubyte,short):System.String
          -4 (-7.69% of base) : 84398.dasm - Foo[Int16][System.Int16]:Function(short,short):System.String
          -4 (-7.02% of base) : 84384.dasm - Foo[__Canon][System.__Canon]:Function(System.__Canon,short):System.String
          -4 (-7.02% of base) : 84396.dasm - Foo[Int16][System.Int16]:Function(short,System.__Canon):System.String
          -3 (-6.82% of base) : 84366.dasm - Foo:Function(ubyte):System.String:this
          -3 (-6.38% of base) : 84404.dasm - Foo[Int32][System.Int32]:Function(int,ubyte):System.String
          -3 (-6.38% of base) : 84425.dasm - Foo[Int64][System.Int64]:Function(long,ubyte):System.String
          -3 (-6.00% of base) : 84390.dasm - Foo[Byte][System.Byte]:Function(ubyte,ubyte):System.String
          -3 (-5.88% of base) : 84397.dasm - Foo[Int16][System.Int16]:Function(short,ubyte):System.String
          -4 (-5.80% of base) : 84419.dasm - Foo[Vector`1][System.Numerics.Vector`1[System.Single]]:Function(System.Numerics.Vector`1[Single],short):System.String
          -3 (-5.56% of base) : 164522.dasm - Internal.IL.ILDisassembler:ReadILDouble():double:this

31 total methods with Code Size differences (27 improved, 4 regressed), 9 unchanged.


libraries.crossgen2.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3771
Total bytes of diff: 3670
Total bytes of delta: -101 (-2.68% of base)
Total relative delta: -3.89
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           7 : 209263.dasm (1.01% of base)
           2 : 86553.dasm (66.67% of base)
           2 : 175878.dasm (66.67% of base)
           2 : 175851.dasm (0.34% of base)
           1 : 209272.dasm (0.26% of base)

Top file improvements (bytes):
         -22 : 63574.dasm (-5.30% of base)
          -7 : 175850.dasm (-5.34% of base)
          -6 : 85101.dasm (-5.88% of base)
          -6 : 85102.dasm (-5.66% of base)
          -6 : 40331.dasm (-2.31% of base)
          -5 : 85144.dasm (-1.98% of base)
          -5 : 35512.dasm (-1.43% of base)
          -4 : 33837.dasm (-21.05% of base)
          -4 : 33839.dasm (-40.00% of base)
          -4 : 85145.dasm (-1.62% of base)
          -4 : 33838.dasm (-18.18% of base)
          -3 : 85063.dasm (-33.33% of base)
          -3 : 85114.dasm (-33.33% of base)
          -3 : 85191.dasm (-33.33% of base)
          -3 : 85116.dasm (-33.33% of base)
          -3 : 85111.dasm (-33.33% of base)
          -3 : 85141.dasm (-8.57% of base)
          -3 : 85186.dasm (-33.33% of base)
          -3 : 85190.dasm (-33.33% of base)
          -3 : 85064.dasm (-33.33% of base)

30 total files with Code Size differences (25 improved, 5 regressed), 0 unchanged.

Top method regressions (bytes):
           7 ( 1.01% of base) : 209263.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,bool,bool,bool,bool):System.IO.Compression.Zip64ExtraField
           2 (66.67% of base) : 86553.dasm - System.BitConverter:Int16BitsToHalf(short):System.Half
           2 ( 0.34% of base) : 175851.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this
           2 (66.67% of base) : 175878.dasm - System.Formats.Cbor.HalfHelpers:Int16BitsToHalf(short):System.Half
           1 ( 0.26% of base) : 209272.dasm - System.IO.Compression.ZipGenericExtraField:ParseExtraField(System.IO.Stream):System.Collections.Generic.List`1[System.IO.Compression.ZipGenericExtraField]

Top method improvements (bytes):
         -22 (-5.30% of base) : 63574.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1:DecodeNamedArgumentType(byref,bool):System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]:this
          -7 (-5.34% of base) : 175850.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this
          -6 (-2.31% of base) : 40331.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData:PayloadValue(int):System.Object:this
          -6 (-5.88% of base) : 85101.dasm - System.Half:System.IFloatingPoint<System.Half>.BitDecrement(System.Half):System.Half
          -6 (-5.66% of base) : 85102.dasm - System.Half:System.IFloatingPoint<System.Half>.BitIncrement(System.Half):System.Half
          -5 (-1.43% of base) : 35512.dasm - <>c__DisplayClass4_0:<.ctor>b__0(Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData):this
          -5 (-1.98% of base) : 85144.dasm - System.Half:op_Explicit(double):System.Half
          -4 (-21.05% of base) : 33837.dasm - Microsoft.VisualBasic.FileSystem:SPC(short):Microsoft.VisualBasic.SpcInfo
          -4 (-40.00% of base) : 33839.dasm - Microsoft.VisualBasic.FileSystem:TAB():Microsoft.VisualBasic.TabInfo
          -4 (-18.18% of base) : 33838.dasm - Microsoft.VisualBasic.FileSystem:TAB(short):Microsoft.VisualBasic.TabInfo
          -4 (-1.62% of base) : 85145.dasm - System.Half:op_Explicit(float):System.Half
          -3 (-33.33% of base) : 85191.dasm - System.Half:get_Epsilon():System.Half
          -3 (-33.33% of base) : 85186.dasm - System.Half:get_MaxValue():System.Half
          -3 (-33.33% of base) : 85187.dasm - System.Half:get_MinValue():System.Half
          -3 (-33.33% of base) : 85188.dasm - System.Half:get_NaN():System.Half
          -3 (-33.33% of base) : 85189.dasm - System.Half:get_NegativeInfinity():System.Half
          -3 (-33.33% of base) : 85190.dasm - System.Half:get_PositiveInfinity():System.Half
          -3 (-8.57% of base) : 85141.dasm - System.Half:Negate(System.Half):System.Half
          -3 (-33.33% of base) : 85116.dasm - System.Half:System.IFloatingPoint<System.Half>.get_Epsilon():System.Half
          -3 (-33.33% of base) : 85115.dasm - System.Half:System.IFloatingPoint<System.Half>.get_NaN():System.Half

Top method regressions (percentages):
           2 (66.67% of base) : 86553.dasm - System.BitConverter:Int16BitsToHalf(short):System.Half
           2 (66.67% of base) : 175878.dasm - System.Formats.Cbor.HalfHelpers:Int16BitsToHalf(short):System.Half
           7 ( 1.01% of base) : 209263.dasm - System.IO.Compression.Zip64ExtraField:GetJustZip64Block(System.IO.Stream,bool,bool,bool,bool):System.IO.Compression.Zip64ExtraField
           2 ( 0.34% of base) : 175851.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this
           1 ( 0.26% of base) : 209272.dasm - System.IO.Compression.ZipGenericExtraField:ParseExtraField(System.IO.Stream):System.Collections.Generic.List`1[System.IO.Compression.ZipGenericExtraField]

Top method improvements (percentages):
          -4 (-40.00% of base) : 33839.dasm - Microsoft.VisualBasic.FileSystem:TAB():Microsoft.VisualBasic.TabInfo
          -3 (-33.33% of base) : 85191.dasm - System.Half:get_Epsilon():System.Half
          -3 (-33.33% of base) : 85186.dasm - System.Half:get_MaxValue():System.Half
          -3 (-33.33% of base) : 85187.dasm - System.Half:get_MinValue():System.Half
          -3 (-33.33% of base) : 85188.dasm - System.Half:get_NaN():System.Half
          -3 (-33.33% of base) : 85189.dasm - System.Half:get_NegativeInfinity():System.Half
          -3 (-33.33% of base) : 85190.dasm - System.Half:get_PositiveInfinity():System.Half
          -3 (-33.33% of base) : 85116.dasm - System.Half:System.IFloatingPoint<System.Half>.get_Epsilon():System.Half
          -3 (-33.33% of base) : 85115.dasm - System.Half:System.IFloatingPoint<System.Half>.get_NaN():System.Half
          -3 (-33.33% of base) : 85114.dasm - System.Half:System.IFloatingPoint<System.Half>.get_NegativeInfinity():System.Half
          -3 (-33.33% of base) : 85111.dasm - System.Half:System.IFloatingPoint<System.Half>.get_PositiveInfinity():System.Half
          -3 (-33.33% of base) : 85063.dasm - System.Half:System.IMinMaxValue<System.Half>.get_MaxValue():System.Half
          -3 (-33.33% of base) : 85064.dasm - System.Half:System.IMinMaxValue<System.Half>.get_MinValue():System.Half
          -4 (-21.05% of base) : 33837.dasm - Microsoft.VisualBasic.FileSystem:SPC(short):Microsoft.VisualBasic.SpcInfo
          -4 (-18.18% of base) : 33838.dasm - Microsoft.VisualBasic.FileSystem:TAB(short):Microsoft.VisualBasic.TabInfo
          -3 (-8.57% of base) : 85141.dasm - System.Half:Negate(System.Half):System.Half
          -3 (-6.52% of base) : 64655.dasm - System.Reflection.Metadata.BlobReader:ReadSignatureHeader():System.Reflection.Metadata.SignatureHeader:this
          -6 (-5.88% of base) : 85101.dasm - System.Half:System.IFloatingPoint<System.Half>.BitDecrement(System.Half):System.Half
          -6 (-5.66% of base) : 85102.dasm - System.Half:System.IFloatingPoint<System.Half>.BitIncrement(System.Half):System.Half
          -7 (-5.34% of base) : 175850.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this

30 total methods with Code Size differences (25 improved, 5 regressed), 0 unchanged.


libraries.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4743
Total bytes of diff: 4651
Total bytes of delta: -92 (-1.94% of base)
Total relative delta: -1.90
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           2 : 191720.dasm (66.67% of base)
           2 : 20369.dasm (66.67% of base)
           1 : 191796.dasm (0.12% of base)

Top file improvements (bytes):
         -12 : 45573.dasm (-3.08% of base)
         -11 : 17784.dasm (-3.36% of base)
          -8 : 103388.dasm (-2.57% of base)
          -7 : 191797.dasm (-4.40% of base)
          -7 : 45561.dasm (-1.01% of base)
          -6 : 150243.dasm (-1.02% of base)
          -6 : 98854.dasm (-2.26% of base)
          -4 : 105088.dasm (-40.00% of base)
          -4 : 105090.dasm (-21.05% of base)
          -4 : 16232.dasm (-44.44% of base)
          -4 : 105089.dasm (-18.18% of base)
          -4 : 17783.dasm (-1.75% of base)
          -4 : 2741.dasm (-44.44% of base)
          -3 : 159665.dasm (-5.56% of base)
          -3 : 149129.dasm (-6.67% of base)
          -3 : 16143.dasm (-37.50% of base)
          -3 : 2739.dasm (-42.86% of base)
          -3 : 16231.dasm (-42.86% of base)
          -1 : 191777.dasm (-0.14% of base)

22 total files with Code Size differences (19 improved, 3 regressed), 13 unchanged.

Top method regressions (bytes):
           2 (66.67% of base) : 20369.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this
           2 (66.67% of base) : 191720.dasm - System.Formats.Cbor.HalfHelpers:Int16BitsToHalf(short):System.Half
           1 ( 0.12% of base) : 191796.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this

Top method improvements (bytes):
         -12 (-3.08% of base) : 45573.dasm - BinderFactoryVisitor:VisitXmlCrefAttributeInternal(Microsoft.CodeAnalysis.CSharp.Syntax.XmlCrefAttributeSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this
         -11 (-3.36% of base) : 17784.dasm - AppendInterpolatedStringHandler:AppendFormatted(short):this
          -8 (-2.57% of base) : 103388.dasm - <>c__DisplayClass4_0:<.ctor>b__0(Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData):this
          -7 (-1.01% of base) : 45561.dasm - BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this
          -7 (-4.40% of base) : 191797.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this
          -6 (-2.26% of base) : 98854.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData:PayloadValue(int):System.Object:this
          -6 (-1.02% of base) : 150243.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[Byte][System.Byte]:DecodeNamedArgumentType(byref,bool):ArgumentTypeInfo[Byte]:this
          -4 (-1.75% of base) : 17783.dasm - AppendInterpolatedStringHandler:AppendFormatted(ubyte):this
          -4 (-44.44% of base) : 2741.dasm - dictRefType@165[Int16][System.Int16]:Invoke(short):StructBox`1[Int16]:this
          -4 (-21.05% of base) : 105090.dasm - Microsoft.VisualBasic.FileSystem:SPC(short):Microsoft.VisualBasic.SpcInfo
          -4 (-40.00% of base) : 105088.dasm - Microsoft.VisualBasic.FileSystem:TAB():Microsoft.VisualBasic.TabInfo
          -4 (-18.18% of base) : 105089.dasm - Microsoft.VisualBasic.FileSystem:TAB(short):Microsoft.VisualBasic.TabInfo
          -4 (-44.44% of base) : 16232.dasm - System.ValueTuple:Create(short):System.ValueTuple`1[Int16]
          -3 (-42.86% of base) : 2739.dasm - dictRefType@165[Byte][System.Byte]:Invoke(ubyte):StructBox`1[Byte]:this
          -3 (-5.56% of base) : 159665.dasm - Internal.IL.ILDisassembler:ReadILDouble():double:this
          -3 (-6.67% of base) : 149129.dasm - System.Reflection.Metadata.BlobReader:ReadSignatureHeader():System.Reflection.Metadata.SignatureHeader:this
          -3 (-37.50% of base) : 16143.dasm - System.TupleExtensions:ToValueTuple(System.Tuple`1[Byte]):System.ValueTuple`1[Byte]
          -3 (-42.86% of base) : 16231.dasm - System.ValueTuple:Create(ubyte):System.ValueTuple`1[Byte]
          -1 (-0.14% of base) : 191777.dasm - System.Formats.Cbor.CborReader:ReadHalf():System.Half:this

Top method regressions (percentages):
           2 (66.67% of base) : 20369.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this
           2 (66.67% of base) : 191720.dasm - System.Formats.Cbor.HalfHelpers:Int16BitsToHalf(short):System.Half
           1 ( 0.12% of base) : 191796.dasm - System.Formats.Cbor.CborReader:PeekInitialByte():System.Formats.Cbor.CborInitialByte:this

Top method improvements (percentages):
          -4 (-44.44% of base) : 2741.dasm - dictRefType@165[Int16][System.Int16]:Invoke(short):StructBox`1[Int16]:this
          -4 (-44.44% of base) : 16232.dasm - System.ValueTuple:Create(short):System.ValueTuple`1[Int16]
          -3 (-42.86% of base) : 2739.dasm - dictRefType@165[Byte][System.Byte]:Invoke(ubyte):StructBox`1[Byte]:this
          -3 (-42.86% of base) : 16231.dasm - System.ValueTuple:Create(ubyte):System.ValueTuple`1[Byte]
          -4 (-40.00% of base) : 105088.dasm - Microsoft.VisualBasic.FileSystem:TAB():Microsoft.VisualBasic.TabInfo
          -3 (-37.50% of base) : 16143.dasm - System.TupleExtensions:ToValueTuple(System.Tuple`1[Byte]):System.ValueTuple`1[Byte]
          -4 (-21.05% of base) : 105090.dasm - Microsoft.VisualBasic.FileSystem:SPC(short):Microsoft.VisualBasic.SpcInfo
          -4 (-18.18% of base) : 105089.dasm - Microsoft.VisualBasic.FileSystem:TAB(short):Microsoft.VisualBasic.TabInfo
          -3 (-6.67% of base) : 149129.dasm - System.Reflection.Metadata.BlobReader:ReadSignatureHeader():System.Reflection.Metadata.SignatureHeader:this
          -3 (-5.56% of base) : 159665.dasm - Internal.IL.ILDisassembler:ReadILDouble():double:this
          -7 (-4.40% of base) : 191797.dasm - System.Formats.Cbor.CborReader:PeekInitialByte(ubyte):System.Formats.Cbor.CborInitialByte:this
         -11 (-3.36% of base) : 17784.dasm - AppendInterpolatedStringHandler:AppendFormatted(short):this
         -12 (-3.08% of base) : 45573.dasm - BinderFactoryVisitor:VisitXmlCrefAttributeInternal(Microsoft.CodeAnalysis.CSharp.Syntax.XmlCrefAttributeSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this
          -8 (-2.57% of base) : 103388.dasm - <>c__DisplayClass4_0:<.ctor>b__0(Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData):this
          -6 (-2.26% of base) : 98854.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData:PayloadValue(int):System.Object:this
          -4 (-1.75% of base) : 17783.dasm - AppendInterpolatedStringHandler:AppendFormatted(ubyte):this
          -6 (-1.02% of base) : 150243.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[Byte][System.Byte]:DecodeNamedArgumentType(byref,bool):ArgumentTypeInfo[Byte]:this
          -7 (-1.01% of base) : 45561.dasm - BinderFactoryVisitor:VisitTypeDeclarationCore(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.Binder:this
          -1 (-0.14% of base) : 191777.dasm - System.Formats.Cbor.CborReader:ReadHalf():System.Half:this

22 total methods with Code Size differences (19 improved, 3 regressed), 13 unchanged.


libraries_tests.pmi.windows.x64.checked.mch:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 2576
Total bytes of diff: 2514
Total bytes of delta: -62 (-2.41% of base)
Total relative delta: -5.47
    diff is an improvement.
    relative diff is an improvement.
Detail diffs


Top file regressions (bytes):
           2 : 241615.dasm (66.67% of base)
           2 : 166548.dasm (7.69% of base)

Top file improvements (bytes):
          -4 : 332961.dasm (-2.63% of base)
          -4 : 332949.dasm (-2.63% of base)
          -4 : 114117.dasm (-44.44% of base)
          -4 : 265312.dasm (-44.44% of base)
          -4 : 120141.dasm (-44.44% of base)
          -4 : 272305.dasm (-44.44% of base)
          -4 : 270523.dasm (-44.44% of base)
          -4 : 19469.dasm (-44.44% of base)
          -4 : 267502.dasm (-44.44% of base)
          -3 : 265311.dasm (-42.86% of base)
          -3 : 19468.dasm (-42.86% of base)
          -3 : 120138.dasm (-42.86% of base)
          -3 : 272304.dasm (-42.86% of base)
          -3 : 267501.dasm (-42.86% of base)
          -3 : 114114.dasm (-42.86% of base)
          -3 : 270522.dasm (-42.86% of base)
          -2 : 126237.dasm (-0.24% of base)
          -2 : 332960.dasm (-1.85% of base)
          -2 : 126236.dasm (-0.24% of base)
          -2 : 332948.dasm (-1.85% of base)

23 total files with Code Size differences (21 improved, 2 regressed), 0 unchanged.

Top method regressions (bytes):
           2 (66.67% of base) : 241615.dasm - ReferenceEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this
           2 ( 7.69% of base) : 166548.dasm - System.Linq.Parallel.Tests.CancelingEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this

Top method improvements (bytes):
          -4 (-44.44% of base) : 114117.dasm - Microsoft.Build.Shared.NGen`1[Int16][System.Int16]:op_Implicit(short):Microsoft.Build.Shared.NGen`1[Int16]
          -4 (-44.44% of base) : 120141.dasm - Microsoft.Build.Shared.NGen`1[Int16][System.Int16]:op_Implicit(short):Microsoft.Build.Shared.NGen`1[Int16]
          -4 (-44.44% of base) : 265312.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 272305.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 270523.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 19469.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 267502.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-2.63% of base) : 332961.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushStack|10_13(short,byref)
          -4 (-2.63% of base) : 332949.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushTrack|10_7(short,byref)
          -3 (-42.86% of base) : 120138.dasm - Microsoft.Build.Shared.NGen`1[Byte][System.Byte]:op_Implicit(ubyte):Microsoft.Build.Shared.NGen`1[Byte]
          -3 (-42.86% of base) : 114114.dasm - Microsoft.Build.Shared.NGen`1[Byte][System.Byte]:op_Implicit(ubyte):Microsoft.Build.Shared.NGen`1[Byte]
          -3 (-42.86% of base) : 265311.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 19468.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 272304.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 267501.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 270522.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -2 (-0.24% of base) : 126237.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.ExpressionGenerator:GenerateFloatLiteralExpression(Microsoft.CodeAnalysis.ITypeSymbol,byte,short,bool,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.Int16, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[Int16,Boolean],System.Func`2[Int16,Int16]):Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax
          -2 (-0.24% of base) : 126236.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.ExpressionGenerator:GenerateFloatLiteralExpression(Microsoft.CodeAnalysis.ITypeSymbol,byte,ubyte,bool,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[Byte,Boolean],System.Func`2[Byte,Byte]):Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax
          -2 (-1.85% of base) : 332960.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushStack|10_13(ubyte,byref)
          -2 (-1.85% of base) : 332948.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushTrack|10_7(ubyte,byref)

Top method regressions (percentages):
           2 (66.67% of base) : 241615.dasm - ReferenceEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this
           2 ( 7.69% of base) : 166548.dasm - System.Linq.Parallel.Tests.CancelingEqualityComparer`1[Int16][System.Int16]:GetHashCode(short):int:this

Top method improvements (percentages):
          -4 (-44.44% of base) : 114117.dasm - Microsoft.Build.Shared.NGen`1[Int16][System.Int16]:op_Implicit(short):Microsoft.Build.Shared.NGen`1[Int16]
          -4 (-44.44% of base) : 120141.dasm - Microsoft.Build.Shared.NGen`1[Int16][System.Int16]:op_Implicit(short):Microsoft.Build.Shared.NGen`1[Int16]
          -4 (-44.44% of base) : 265312.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 272305.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 270523.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 19469.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -4 (-44.44% of base) : 267502.dasm - System.Collections.Tests.ValueComparable:Create(short):System.Collections.Tests.ValueComparable`1[Int16]
          -3 (-42.86% of base) : 120138.dasm - Microsoft.Build.Shared.NGen`1[Byte][System.Byte]:op_Implicit(ubyte):Microsoft.Build.Shared.NGen`1[Byte]
          -3 (-42.86% of base) : 114114.dasm - Microsoft.Build.Shared.NGen`1[Byte][System.Byte]:op_Implicit(ubyte):Microsoft.Build.Shared.NGen`1[Byte]
          -3 (-42.86% of base) : 265311.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 19468.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 272304.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 267501.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -3 (-42.86% of base) : 270522.dasm - System.Collections.Tests.ValueComparable:Create(ubyte):System.Collections.Tests.ValueComparable`1[Byte]
          -4 (-2.63% of base) : 332961.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushStack|10_13(short,byref)
          -4 (-2.63% of base) : 332949.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushTrack|10_7(short,byref)
          -2 (-1.85% of base) : 332960.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushStack|10_13(ubyte,byref)
          -2 (-1.85% of base) : 332948.dasm - System.Text.RegularExpressions.Generator.RegexGenerator:<EmitCompleteGo>g__PushTrack|10_7(ubyte,byref)
          -1 (-0.36% of base) : 177554.dasm - System.Buffers.Text.Tests.StandardFormatTests:StandardFormatOpImplicitFromChar(ushort)
          -2 (-0.24% of base) : 126236.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGeneration.ExpressionGenerator:GenerateFloatLiteralExpression(Microsoft.CodeAnalysis.ITypeSymbol,byte,ubyte,bool,System.Collections.Generic.IEnumerable`1[[System.Collections.Generic.KeyValuePair`2[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[Byte,Boolean],System.Func`2[Byte,Byte]):Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax

23 total methods with Code Size differences (21 improved, 2 regressed), 0 unchanged.


// Try and see if we can make a subrange assertion.
if (((assertionKind == OAK_SUBRANGE) || (assertionKind == OAK_EQUAL)))
{
// Keep the casts on small struct fields.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can also delete this from the global propagation code too, I presume. Though we do not have practically any test coverage for that code.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, it did not result in any diffs except for when it pushed out some other assertions.

@jakobbotsch
Copy link
Member Author

PTAL @dotnet/jit-contrib @sandreenko

Copy link
Contributor

@sandreenko sandreenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jakobbotsch
Copy link
Member Author

@dotnet/jit-contrib Ping, need an MS org review in addition to @sandreenko's.

@jakobbotsch jakobbotsch merged commit 911944d into dotnet:main Oct 2, 2021
@jakobbotsch jakobbotsch deleted the fix-58373-2 branch October 2, 2021 11:13
@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants