Skip to content

Instantly share code, notes, and snippets.

@trylek
Created January 15, 2020 22:10
Show Gist options
  • Save trylek/0df9adf8e51b52f891b2f3dcef0656d8 to your computer and use it in GitHub Desktop.
Save trylek/0df9adf8e51b52f891b2f3dcef0656d8 to your computer and use it in GitHub Desktop.
JIT NgenDump for failing build of the System.Drawing.Primitives.dll framework assembly
D:\git\runtime3\.dotnet
****** START compiling System.Drawing.KnownColorTable:GetSystemColorId(int):int (MethodHash=119a4352)
Generating code for Windows x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: Jit invoked for ngen
IL to import:
IL_0000 02 ldarg.0
IL_0001 1f 1b ldc.i4.s 0x1B
IL_0003 32 19 blt.s 25 (IL_001e)
IL_0005 28 8b 01 00 06 call 0x600018B
IL_000a 0a stloc.0
IL_000b 12 00 ldloca.s 0x0
IL_000d 02 ldarg.0
IL_000e 20 a8 00 00 00 ldc.i4 0xA8
IL_0013 59 sub
IL_0014 1f 1a ldc.i4.s 0x1A
IL_0016 58 add
IL_0017 28 55 00 00 0a call 0xA000055
IL_001c 47 ldind.u1
IL_001d 2a ret
IL_001e 28 8b 01 00 06 call 0x600018B
IL_0023 0a stloc.0
IL_0024 12 00 ldloca.s 0x0
IL_0026 02 ldarg.0
IL_0027 17 ldc.i4.1
IL_0028 59 sub
IL_0029 28 55 00 00 0a call 0xA000055
IL_002e 47 ldind.u1
IL_002f 2a ret
Arg #0 passed in register(s) rcx
lvaGrabTemp returning 2 (V02 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 int
; V01 loc0 struct (16)
; V02 OutArgs lclBlk (na) "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for System.Drawing.KnownColorTable:GetSystemColorId(int):int
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 2
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 030h
1: 01h 01h V01 loc0 000h 030h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0007h ( STACK_EMPTY NOP CALL_SITE )
*************** In fgFindBasicBlocks() for System.Drawing.KnownColorTable:GetSystemColorId(int):int
weight= 10 : state 3 [ ldarg.0 ]
weight= 41 : state 32 [ ldc.i4.s ]
weight= 28 : state 50 [ blt.s ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 38 : state 33 [ ldc.i4 ]
weight=-15 : state 77 [ sub ]
weight= 41 : state 32 [ ldc.i4.s ]
weight=-12 : state 76 [ add ]
weight= 79 : state 40 [ call ]
weight= 17 : state 59 [ ldind.u1 ]
weight= 19 : state 42 [ ret ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 28 : state 24 [ ldc.i4.1 ]
weight=-15 : state 77 [ sub ]
weight= 79 : state 40 [ call ]
weight= 17 : state 59 [ ldind.u1 ]
weight= 19 : state 42 [ ret ]
Jump targets:
IL_001e
New Basic Block BB01 [0000] created.
BB01 [000..005)
New Basic Block BB02 [0001] created.
BB02 [005..01E)
New Basic Block BB03 [0002] created.
BB03 [01E..030)
Inline candidate has an arg that feeds a constant test. Multiplier increased to 1.
Prejit root candidate has arg that feeds a conditional. Multiplier increased to 4.
Inline candidate callsite is hot. Multiplier increased to 7.
calleeNativeSizeEstimate=686
callsiteNativeSizeEstimate=85
benefit multiplier=7
threshold=595
Native estimate for function size exceeds threshold for inlining 68.6 > 59.5 (multiplier = 7)
INLINER: during 'prejit' result 'failed this callee' reason 'unprofitable inline' for 'n/a' calling 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
INLINER: Marking System.Drawing.KnownColorTable:GetSystemColorId(int):int as NOINLINE because of unprofitable inline
INLINER: during 'prejit' result 'failed this callee' reason 'unprofitable inline'
IL Code Size,Instr 48, 23, Basic Block count 3, Local Variable Num,Ref count 3, 7 for method System.Drawing.KnownColorTable:GetSystemColorId(int):int
OPTIONS: opts.MinOpts() == false
Basic block list for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond )
BB02 [0001] 1 1 [005..01E) (return)
BB03 [0002] 1 1 [01E..030) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.Drawing.KnownColorTable:GetSystemColorId(int):int
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldc.i4.s 27
[ 2] 3 (0x003) blt.s
STMT00000 (IL 0x000... ???)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
impImportBlockPending for BB02
impImportBlockPending for BB03
Importing BB03 (PC=030) of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
[ 0] 30 (0x01e) call 0600018B
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
STMT00001 (IL 0x01E... ???)
[000004] I-C-G------- * CALL r2r_ind struct System.Drawing.KnownColorTable.get_SystemColorIdTable (exactContextHnd=0x00000000004204A9)
[ 1] 35 (0x023) stloc.0
STMT00002 (IL ???... ???)
[000005] --C--------- * RET_EXPR void (inl return from call [000004])
[ 0] 36 (0x024) ldloca.s 0
[ 1] 38 (0x026) ldarg.0
[ 2] 39 (0x027) ldc.i4.1 1
[ 3] 40 (0x028) sub
[ 2] 41 (0x029) call 0A000055
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
impIntrinsic: Expanding ReadOnlySpan<T>.get_Item, T=uint8, sizeof(T)=1
with ptr-to-span
[000009] ------------ * ADDR byref
[000008] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
and index
[000012] ------------ * SUB int
[000010] ------------ +--* LCL_VAR int V00 arg0
[000011] ------------ \--* CNS_INT int 1
[ 1] 46 (0x02e) ldind.u1
[ 1] 47 (0x02f) ret
STMT00003 (IL 0x024... ???)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* FIELD int _length
[000009] ------------ | \--* ADDR byref
[000008] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000024] ------------ \--* ADD byref
[000023] ------------ +--* FIELD byref _pointer
[000017] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
Importing BB02 (PC=005) of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
[ 0] 5 (0x005) call 0600018B
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
STMT00004 (IL 0x005... ???)
[000028] I-C-G------- * CALL r2r_ind struct System.Drawing.KnownColorTable.get_SystemColorIdTable (exactContextHnd=0x00000000004204A9)
[ 1] 10 (0x00a) stloc.0
STMT00005 (IL ???... ???)
[000029] --C--------- * RET_EXPR void (inl return from call [000028])
[ 0] 11 (0x00b) ldloca.s 0
[ 1] 13 (0x00d) ldarg.0
[ 2] 14 (0x00e) ldc.i4 168
[ 3] 19 (0x013) sub
[ 2] 20 (0x014) ldc.i4.s 26
[ 3] 22 (0x016) add
[ 2] 23 (0x017) call 0A000055
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
impIntrinsic: Expanding ReadOnlySpan<T>.get_Item, T=uint8, sizeof(T)=1
with ptr-to-span
[000033] ------------ * ADDR byref
[000032] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
and index
[000038] ------------ * ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
lvaGrabTemp returning 3 (V03 tmp1) called for Span.get_Item index.
STMT00006 (IL 0x00B... ???)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
[ 1] 28 (0x01c) ldind.u1
[ 1] 29 (0x01d) ret
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* FIELD int _length
[000033] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000051] ------------ \--* ADD byref
[000050] ------------ +--* FIELD byref _pointer
[000044] ------------ | \--* ADDR byref
[000043] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
*************** in fgTransformIndirectCalls(root)
-- no candidates to transform
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short)
*************** In fgMorph()
*************** In fgDebugCheckBBlist
*************** In fgInline()
Expanding INLINE_CANDIDATE in statement STMT00004 in BB02:
STMT00004 (IL 0x005...0x00A)
[000028] I-C-G------- * CALL r2r_ind void System.Drawing.KnownColorTable.get_SystemColorIdTable (exactContextHnd=0x00000000004204A9)
[000031] ------------ arg0 \--* ADDR byref
[000030] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
INLINER: inlineInfo.tokenLookupContextHandle for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> set to 0x00000000004204A9:
Invoking compiler for the inlinee method System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> :
IL to import:
IL_0000 7f d4 00 00 04 ldsflda 0x40000D4
IL_0005 1f 21 ldc.i4.s 0x21
IL_0007 73 54 00 00 0a newobj 0xA000054
IL_000c 2a ret
INLINER impTokenLookupContextHandle for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> is 0x00000000004204A9.
*************** In fgFindBasicBlocks() for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
Jump targets:
none
New Basic Block BB04 [0003] created.
BB04 [000..00D)
Basic block list for 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB04 [0003] 1 1 [000..00D) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
impImportBlockPending for BB04
Importing BB04 (PC=000) of 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
[ 0] 0 (0x000) ldsflda 040000D4
[ 1] 5 (0x005) ldc.i4.s 33
[ 2] 7 (0x007) newobj
lvaGrabTemp returning 4 (V04 tmp2) called for NewObj constructor temp.
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000058] ------------ \--* CNS_INT int 0
0A000054
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000062] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000061] ------------ this in rcx +--* ADDR byref
[000060] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000055] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000056] ------------ arg2 \--* CNS_INT int 33
[ 1] 12 (0x00c) ret
Inlinee Return expression (before normalization) =>
[000063] ------------ * LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000028] -----------
Inlinee method body:
STMT00008 (IL 0x005... ???)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000058] ------------ \--* CNS_INT int 0
STMT00009 (IL 0x005... ???)
[000062] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000061] ------------ this in rcx +--* ADDR byref
[000060] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000055] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000056] ------------ arg2 \--* CNS_INT int 33
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000028] is
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
Successfully inlined System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> (13 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00009 in BB02:
STMT00009 (IL 0x005... ???)
[000062] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000061] ------------ this in rcx +--* ADDR byref
[000060] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000055] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000056] ------------ arg2 \--* CNS_INT int 33
thisArg: is a constant is byref to a struct local
[000061] ------------ * ADDR byref
[000060] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
Argument #1: is a constant
[000055] ------------ * CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Argument #2: is a constant
[000056] ------------ * CNS_INT int 33
INLINER: inlineInfo.tokenLookupContextHandle for System.ReadOnlySpan`1:.ctor(long,int):this set to 0x0000000000420561:
Invoking compiler for the inlinee method System.ReadOnlySpan`1:.ctor(long,int):this :
IL to import:
IL_0000 28 45 01 00 2b call 0x2B000145
IL_0005 2c 0f brfalse.s 15 (IL_0016)
IL_0007 d0 03 00 00 1b ldtoken 0x1B000003
IL_000c 28 8c 0b 00 06 call 0x6000B8C
IL_0011 28 16 18 00 06 call 0x6001816
IL_0016 04 ldarg.2
IL_0017 16 ldc.i4.0
IL_0018 2f 05 bge.s 5 (IL_001f)
IL_001a 28 18 18 00 06 call 0x6001818
IL_001f 02 ldarg.0
IL_0020 03 ldarg.1
IL_0021 28 07 01 00 2b call 0x2B000107
IL_0026 73 a2 01 00 0a newobj 0xA0001A2
IL_002b 7d a3 01 00 0a stfld 0xA0001A3
IL_0030 02 ldarg.0
IL_0031 04 ldarg.2
IL_0032 7d a4 01 00 0a stfld 0xA0001A4
IL_0037 2a ret
INLINER impTokenLookupContextHandle for System.ReadOnlySpan`1:.ctor(long,int):this is 0x0000000000420561.
*************** In fgFindBasicBlocks() for System.ReadOnlySpan`1:.ctor(long,int):this
Jump targets:
IL_0016
IL_001f
New Basic Block BB05 [0004] created.
BB05 [000..007)
New Basic Block BB06 [0005] created.
BB06 [007..016)
New Basic Block BB07 [0006] created.
BB07 [016..01A)
New Basic Block BB08 [0007] created.
BB08 [01A..01F)
New Basic Block BB09 [0008] created.
BB09 [01F..038)
Basic block list for 'System.ReadOnlySpan`1:.ctor(long,int):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB05 [0004] 1 1 [000..007)-> BB07 ( cond )
BB06 [0005] 1 1 [007..016)
BB07 [0006] 2 1 [016..01A)-> BB09 ( cond )
BB08 [0007] 1 1 [01A..01F)
BB09 [0008] 2 1 [01F..038) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.ReadOnlySpan`1:.ctor(long,int):this
impImportBlockPending for BB05
Importing BB05 (PC=000) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 0 (0x000) call 2B000145
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
Named Intrinsic System.Runtime.CompilerServices.RuntimeHelpersIsReferenceOrContainsReferences: Not recognized
[000068] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
[ 1] 5 (0x005) brfalse.s
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000069] --C--------- | \--* RET_EXPR int (inl return from call [000068])
[000071] ------------ \--* CNS_INT int 0
impImportBlockPending for BB06
impImportBlockPending for BB07
Importing BB07 (PC=022) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 22 (0x016) ldarg.2
[ 1] 23 (0x017) ldc.i4.0 0
[ 2] 24 (0x018) bge.s
Folding operator with constant nodes into a constant:
[000076] ------------ * GE int
[000074] ------------ +--* CNS_INT int 33
[000075] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000076] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB09
impImportBlockPending for BB09
Importing BB09 (PC=031) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 31 (0x01f) ldarg.0
[ 1] 32 (0x020) ldarg.1
[ 2] 33 (0x021) call 2B000107
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
Named Intrinsic Internal.Runtime.CompilerServices.UnsafeAs: Not recognized
[000080] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000079] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[ 2] 38 (0x026) newobj
lvaGrabTemp returning 5 (V05 tmp3) called for NewObj constructor temp.
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000083] ------------ \--* CNS_INT int 0
0A0001A2
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000081] --C--------- \--* RET_EXPR byref (inl return from call [000080])
[ 2] 43 (0x02b) stfld 0A0001A3
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[ 0] 48 (0x030) ldarg.0
[ 1] 49 (0x031) ldarg.2
[ 2] 50 (0x032) stfld 0A0001A4
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000096] ------------ \--* CNS_INT int 33
[ 0] 55 (0x037) ret
Importing BB06 (PC=007) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 7 (0x007) ldtoken
[ 1] 12 (0x00c) call 06000B8C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 1] 17 (0x011) call 06001816
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000103] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
impImportBlockPending for BB07
** Note: inlinee IL was partially imported -- imported 47 of 56 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
BB08 was not imported, marked as removed (1)
Renumbering the basic blocks for fgRemoveEmptyBlocks
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB05 [0004] 1 1 [000..007)-> BB07 ( cond ) i
BB06 [0005] 1 1 [007..016) i
BB07 [0006] 2 1 [016..01A)-> BB09 (always) i
BB09 [0008] 2 1 [01F..038) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB05 to BB10
Renumber BB06 to BB11
Renumber BB07 to BB12
Renumber BB09 to BB13
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB10 [0004] 1 1 [000..007)-> BB12 ( cond ) i
BB11 [0005] 1 1 [007..016) i
BB12 [0006] 2 1 [016..01A)-> BB13 (always) i
BB13 [0008] 2 1 [01F..038) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short)
----------- Statements (and blocks) added due to the inlining of call [000062] -----------
Arguments setup:
Inlinee method body:New Basic Block BB14 [0009] created.
Convert bbJumpKind of BB13 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB10 [005..006) -> BB12 (cond), preds={} succs={BB11,BB12}
***** BB10
STMT00010 (IL 0x005... ???)
[000068] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
***** BB10
STMT00011 (IL 0x005... ???)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000069] --C--------- | \--* RET_EXPR int (inl return from call [000068])
[000071] ------------ \--* CNS_INT int 0
------------ BB11 [005..006), preds={} succs={BB12}
***** BB11
STMT00017 (IL 0x005... ???)
[000103] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB12 [005..006) -> BB13 (always), preds={} succs={BB13}
------------ BB13 [005..006), preds={} succs={BB14}
***** BB13
STMT00012 (IL 0x005... ???)
[000080] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000079] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB13
STMT00013 (IL 0x005... ???)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000083] ------------ \--* CNS_INT int 0
***** BB13
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000081] --C--------- \--* RET_EXPR byref (inl return from call [000080])
***** BB13
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
***** BB13
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000096] ------------ \--* CNS_INT int 33
-------------------------------------------------------------------------------------------------------------------
Successfully inlined System.ReadOnlySpan`1:.ctor(long,int):this (56 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.ReadOnlySpan`1:.ctor(long,int):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00010 in BB10:
STMT00010 (IL 0x005... ???)
[000068] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool set to 0x00000000004205F8:
Invoking compiler for the inlinee method System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool :
IL to import:
IL_0000 16 ldc.i4.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool is 0x00000000004205F8.
*************** In fgFindBasicBlocks() for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
Jump targets:
none
New Basic Block BB15 [0010] created.
BB15 [000..002)
Basic block list for 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB15 [0010] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
impImportBlockPending for BB15
Importing BB15 (PC=000) of 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
[ 0] 0 (0x000) ldc.i4.0 0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000105] ------------ * CNS_INT int 0
Inlinee Return expression (after normalization) =>
[000106] ------------ * CAST int <- bool <- int
[000105] ------------ \--* CNS_INT int 0
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000068] -----------
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000068] is
[000106] ------------ * CAST int <- bool <- int
[000105] ------------ \--* CNS_INT int 0
Successfully inlined System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool (2 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000069] with [000106]
[000069] --C--------- * RET_EXPR int (inl return from call [000106])
Inserting the inline return expression
[000106] ------------ * CAST int <- bool <- int
[000105] ------------ \--* CNS_INT int 0
Expanding INLINE_CANDIDATE in statement STMT00017 in BB11:
STMT00017 (IL 0x005... ???)
[000103] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
Argument #0: has global refs has side effects
[000102] --C-G------- * CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) set to 0x00000000004206A9:
Invoking compiler for the inlinee method System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) :
IL to import:
IL_0000 28 c9 07 00 06 call 0x60007C9
IL_0005 02 ldarg.0
IL_0006 28 5f 06 00 06 call 0x600065F
IL_000b 73 12 0f 00 06 newobj 0x6000F12
IL_0010 7a throw
INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) is 0x00000000004206A9.
*************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)
weight= 79 : state 40 [ call ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
Inline candidate callsite is boring. Multiplier increased to 1.3.
calleeNativeSizeEstimate=605
callsiteNativeSizeEstimate=85
benefit multiplier=1.3
threshold=110
Native estimate for function size exceeds threshold for inlining 60.5 > 11 (multiplier = 1.3)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement STMT00012 in BB13:
STMT00012 (IL 0x005... ???)
[000080] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000079] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Argument #0: is a constant
[000079] ------------ * CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
INLINER: inlineInfo.tokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref set to 0x0000000000420620:
Invoking compiler for the inlinee method Internal.Runtime.CompilerServices.Unsafe:As(byref):byref :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref is 0x0000000000420620.
*************** In fgFindBasicBlocks() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
Jump targets:
none
New Basic Block BB16 [0011] created.
BB16 [000..002)
Basic block list for 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB16 [0011] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
impImportBlockPending for BB16
Importing BB16 (PC=000) of 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000108] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Inlinee Return expression (after normalization) =>
[000108] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000080] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000080] is
[000108] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Successfully inlined Internal.Runtime.CompilerServices.Unsafe:As(byref):byref (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000081] with [000108]
[000081] --C--------- * RET_EXPR byref (inl return from call [000108])
Inserting the inline return expression
[000108] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Replacing the return expression placeholder [000029] with [000066]
[000029] --C--------- * RET_EXPR void (inl return from call [000066])
Inserting the inline return expression
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
Expanding INLINE_CANDIDATE in statement STMT00001 in BB03:
STMT00001 (IL 0x01E...0x023)
[000004] I-C-G------- * CALL r2r_ind void System.Drawing.KnownColorTable.get_SystemColorIdTable (exactContextHnd=0x00000000004204A9)
[000007] ------------ arg0 \--* ADDR byref
[000006] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
INLINER: inlineInfo.tokenLookupContextHandle for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> set to 0x00000000004204A9:
Invoking compiler for the inlinee method System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> :
IL to import:
IL_0000 7f d4 00 00 04 ldsflda 0x40000D4
IL_0005 1f 21 ldc.i4.s 0x21
IL_0007 73 54 00 00 0a newobj 0xA000054
IL_000c 2a ret
INLINER impTokenLookupContextHandle for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> is 0x00000000004204A9.
*************** In fgFindBasicBlocks() for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
Jump targets:
none
New Basic Block BB17 [0012] created.
BB17 [000..00D)
Basic block list for 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB17 [0012] 1 1 [000..00D) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
impImportBlockPending for BB17
Importing BB17 (PC=000) of 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
[ 0] 0 (0x000) ldsflda 040000D4
[ 1] 5 (0x005) ldc.i4.s 33
[ 2] 7 (0x007) newobj
lvaGrabTemp returning 6 (V06 tmp4) called for NewObj constructor temp.
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000113] ------------ \--* CNS_INT int 0
0A000054
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000117] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000116] ------------ this in rcx +--* ADDR byref
[000115] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000110] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000111] ------------ arg2 \--* CNS_INT int 33
[ 1] 12 (0x00c) ret
Inlinee Return expression (before normalization) =>
[000118] ------------ * LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000004] -----------
Inlinee method body:
STMT00018 (IL 0x01E... ???)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000113] ------------ \--* CNS_INT int 0
STMT00019 (IL 0x01E... ???)
[000117] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000116] ------------ this in rcx +--* ADDR byref
[000115] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000110] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000111] ------------ arg2 \--* CNS_INT int 33
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000004] is
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
Successfully inlined System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8> (13 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00019 in BB03:
STMT00019 (IL 0x01E... ???)
[000117] I-C-G------- * CALL r2r_ind void System.ReadOnlySpan`1..ctor (exactContextHnd=0x0000000000420561)
[000116] ------------ this in rcx +--* ADDR byref
[000115] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000110] ------------ arg1 +--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[000111] ------------ arg2 \--* CNS_INT int 33
thisArg: is a constant is byref to a struct local
[000116] ------------ * ADDR byref
[000115] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
Argument #1: is a constant
[000110] ------------ * CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Argument #2: is a constant
[000111] ------------ * CNS_INT int 33
INLINER: inlineInfo.tokenLookupContextHandle for System.ReadOnlySpan`1:.ctor(long,int):this set to 0x0000000000420561:
Invoking compiler for the inlinee method System.ReadOnlySpan`1:.ctor(long,int):this :
IL to import:
IL_0000 28 45 01 00 2b call 0x2B000145
IL_0005 2c 0f brfalse.s 15 (IL_0016)
IL_0007 d0 03 00 00 1b ldtoken 0x1B000003
IL_000c 28 8c 0b 00 06 call 0x6000B8C
IL_0011 28 16 18 00 06 call 0x6001816
IL_0016 04 ldarg.2
IL_0017 16 ldc.i4.0
IL_0018 2f 05 bge.s 5 (IL_001f)
IL_001a 28 18 18 00 06 call 0x6001818
IL_001f 02 ldarg.0
IL_0020 03 ldarg.1
IL_0021 28 07 01 00 2b call 0x2B000107
IL_0026 73 a2 01 00 0a newobj 0xA0001A2
IL_002b 7d a3 01 00 0a stfld 0xA0001A3
IL_0030 02 ldarg.0
IL_0031 04 ldarg.2
IL_0032 7d a4 01 00 0a stfld 0xA0001A4
IL_0037 2a ret
INLINER impTokenLookupContextHandle for System.ReadOnlySpan`1:.ctor(long,int):this is 0x0000000000420561.
*************** In fgFindBasicBlocks() for System.ReadOnlySpan`1:.ctor(long,int):this
Jump targets:
IL_0016
IL_001f
New Basic Block BB18 [0013] created.
BB18 [000..007)
New Basic Block BB19 [0014] created.
BB19 [007..016)
New Basic Block BB20 [0015] created.
BB20 [016..01A)
New Basic Block BB21 [0016] created.
BB21 [01A..01F)
New Basic Block BB22 [0017] created.
BB22 [01F..038)
Basic block list for 'System.ReadOnlySpan`1:.ctor(long,int):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB18 [0013] 1 1 [000..007)-> BB20 ( cond )
BB19 [0014] 1 1 [007..016)
BB20 [0015] 2 1 [016..01A)-> BB22 ( cond )
BB21 [0016] 1 1 [01A..01F)
BB22 [0017] 2 1 [01F..038) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.ReadOnlySpan`1:.ctor(long,int):this
impImportBlockPending for BB18
Importing BB18 (PC=000) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 0 (0x000) call 2B000145
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
Named Intrinsic System.Runtime.CompilerServices.RuntimeHelpersIsReferenceOrContainsReferences: Not recognized
[000123] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
[ 1] 5 (0x005) brfalse.s
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000124] --C--------- | \--* RET_EXPR int (inl return from call [000123])
[000126] ------------ \--* CNS_INT int 0
impImportBlockPending for BB19
impImportBlockPending for BB20
Importing BB20 (PC=022) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 22 (0x016) ldarg.2
[ 1] 23 (0x017) ldc.i4.0 0
[ 2] 24 (0x018) bge.s
Folding operator with constant nodes into a constant:
[000131] ------------ * GE int
[000129] ------------ +--* CNS_INT int 33
[000130] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000131] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB22
impImportBlockPending for BB22
Importing BB22 (PC=031) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 31 (0x01f) ldarg.0
[ 1] 32 (0x020) ldarg.1
[ 2] 33 (0x021) call 2B000107
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0
Named Intrinsic Internal.Runtime.CompilerServices.UnsafeAs: Not recognized
[000135] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000134] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
[ 2] 38 (0x026) newobj
lvaGrabTemp returning 7 (V07 tmp5) called for NewObj constructor temp.
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000138] ------------ \--* CNS_INT int 0
0A0001A2
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000136] --C--------- \--* RET_EXPR byref (inl return from call [000135])
[ 2] 43 (0x02b) stfld 0A0001A3
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[ 0] 48 (0x030) ldarg.0
[ 1] 49 (0x031) ldarg.2
[ 2] 50 (0x032) stfld 0A0001A4
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000151] ------------ \--* CNS_INT int 33
[ 0] 55 (0x037) ret
Importing BB19 (PC=007) of 'System.ReadOnlySpan`1:.ctor(long,int):this'
[ 0] 7 (0x007) ldtoken
[ 1] 12 (0x00c) call 06000B8C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 1] 17 (0x011) call 06001816
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000158] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
impImportBlockPending for BB20
** Note: inlinee IL was partially imported -- imported 47 of 56 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
BB21 was not imported, marked as removed (1)
Renumbering the basic blocks for fgRemoveEmptyBlocks
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB18 [0013] 1 1 [000..007)-> BB20 ( cond ) i
BB19 [0014] 1 1 [007..016) i
BB20 [0015] 2 1 [016..01A)-> BB22 (always) i
BB22 [0017] 2 1 [01F..038) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB18 to BB23
Renumber BB19 to BB24
Renumber BB20 to BB25
Renumber BB22 to BB26
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB23 [0013] 1 1 [000..007)-> BB25 ( cond ) i
BB24 [0014] 1 1 [007..016) i
BB25 [0015] 2 1 [016..01A)-> BB26 (always) i
BB26 [0017] 2 1 [01F..038) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short)
----------- Statements (and blocks) added due to the inlining of call [000117] -----------
Arguments setup:
Inlinee method body:New Basic Block BB27 [0018] created.
Convert bbJumpKind of BB26 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB23 [01E..01F) -> BB25 (cond), preds={} succs={BB24,BB25}
***** BB23
STMT00020 (IL 0x01E... ???)
[000123] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
***** BB23
STMT00021 (IL 0x01E... ???)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000124] --C--------- | \--* RET_EXPR int (inl return from call [000123])
[000126] ------------ \--* CNS_INT int 0
------------ BB24 [01E..01F), preds={} succs={BB25}
***** BB24
STMT00027 (IL 0x01E... ???)
[000158] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB25 [01E..01F) -> BB26 (always), preds={} succs={BB26}
------------ BB26 [01E..01F), preds={} succs={BB27}
***** BB26
STMT00022 (IL 0x01E... ???)
[000135] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000134] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB26
STMT00023 (IL 0x01E... ???)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000138] ------------ \--* CNS_INT int 0
***** BB26
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000136] --C--------- \--* RET_EXPR byref (inl return from call [000135])
***** BB26
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
***** BB26
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000151] ------------ \--* CNS_INT int 33
-------------------------------------------------------------------------------------------------------------------
Successfully inlined System.ReadOnlySpan`1:.ctor(long,int):this (56 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.ReadOnlySpan`1:.ctor(long,int):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement STMT00020 in BB23:
STMT00020 (IL 0x01E... ???)
[000123] I-C-G------- * CALL r2r_ind int System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences (exactContextHnd=0x00000000004205F8)
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool set to 0x00000000004205F8:
Invoking compiler for the inlinee method System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool :
IL to import:
IL_0000 16 ldc.i4.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool is 0x00000000004205F8.
*************** In fgFindBasicBlocks() for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
Jump targets:
none
New Basic Block BB28 [0019] created.
BB28 [000..002)
Basic block list for 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB28 [0019] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
impImportBlockPending for BB28
Importing BB28 (PC=000) of 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
[ 0] 0 (0x000) ldc.i4.0 0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000160] ------------ * CNS_INT int 0
Inlinee Return expression (after normalization) =>
[000161] ------------ * CAST int <- bool <- int
[000160] ------------ \--* CNS_INT int 0
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000123] -----------
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000123] is
[000161] ------------ * CAST int <- bool <- int
[000160] ------------ \--* CNS_INT int 0
Successfully inlined System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool (2 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000124] with [000161]
[000124] --C--------- * RET_EXPR int (inl return from call [000161])
Inserting the inline return expression
[000161] ------------ * CAST int <- bool <- int
[000160] ------------ \--* CNS_INT int 0
Expanding INLINE_CANDIDATE in statement STMT00027 in BB24:
STMT00027 (IL 0x01E... ???)
[000158] I-C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported (exactContextHnd=0x00000000004206A9)
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
Argument #0: has global refs has side effects
[000157] --C-G------- * CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) set to 0x00000000004206A9:
Invoking compiler for the inlinee method System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) :
IL to import:
IL_0000 28 c9 07 00 06 call 0x60007C9
IL_0005 02 ldarg.0
IL_0006 28 5f 06 00 06 call 0x600065F
IL_000b 73 12 0f 00 06 newobj 0x6000F12
IL_0010 7a throw
INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type) is 0x00000000004206A9.
*************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)
weight= 79 : state 40 [ call ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
Inline candidate callsite is boring. Multiplier increased to 1.3.
calleeNativeSizeEstimate=605
callsiteNativeSizeEstimate=85
benefit multiplier=1.3
threshold=110
Native estimate for function size exceeds threshold for inlining 60.5 > 11 (multiplier = 1.3)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement STMT00022 in BB26:
STMT00022 (IL 0x01E... ???)
[000135] I-C-G------- * CALL r2r_ind byref Internal.Runtime.CompilerServices.Unsafe.As (exactContextHnd=0x0000000000420620)
[000134] ------------ arg0 \--* CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Argument #0: is a constant
[000134] ------------ * CNS_INT(h) long 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
INLINER: inlineInfo.tokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref set to 0x0000000000420620:
Invoking compiler for the inlinee method Internal.Runtime.CompilerServices.Unsafe:As(byref):byref :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref is 0x0000000000420620.
*************** In fgFindBasicBlocks() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
Jump targets:
none
New Basic Block BB29 [0020] created.
BB29 [000..002)
Basic block list for 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB29 [0020] 1 1 [000..002) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
impImportBlockPending for BB29
Importing BB29 (PC=000) of 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000163] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Inlinee Return expression (after normalization) =>
[000163] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL
*************** in fgTransformIndirectCalls(inlinee)
-- no candidates to transform
----------- Statements (and blocks) added due to the inlining of call [000135] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000135] is
[000163] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Successfully inlined Internal.Runtime.CompilerServices.Unsafe:As(byref):byref (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' calling 'Internal.Runtime.CompilerServices.Unsafe:As(byref):byref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000136] with [000163]
[000136] --C--------- * RET_EXPR byref (inl return from call [000163])
Inserting the inline return expression
[000163] ------------ * CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Replacing the return expression placeholder [000005] with [000121]
[000005] --C--------- * RET_EXPR void (inl return from call [000121])
Inserting the inline return expression
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
*************** After fgInline()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
BB14 [0009] 1 1 [???..???) (return) internal
BB03 [0002] 1 1 [01E..030) i
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
BB27 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..005) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01
STMT00000 (IL 0x000...0x003)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
------------ BB02 [005..01E), preds={} succs={BB10}
***** BB02
STMT00008 (IL 0x005... ???)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000058] ------------ \--* CNS_INT int 0
------------ BB10 [005..006) -> BB12 (cond), preds={} succs={BB11,BB12}
***** BB10
STMT00011 (IL 0x005... ???)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000106] ------------ | \--* CAST int <- bool <- int
[000105] ------------ | \--* CNS_INT int 0
[000071] ------------ \--* CNS_INT int 0
------------ BB11 [005..006), preds={} succs={BB12}
***** BB11
STMT00017 (IL 0x005... ???)
[000103] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB12 [005..006) -> BB13 (always), preds={} succs={BB13}
------------ BB13 [005..006), preds={} succs={BB14}
***** BB13
STMT00013 (IL 0x005... ???)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000083] ------------ \--* CNS_INT int 0
***** BB13
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB13
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
***** BB13
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000096] ------------ \--* CNS_INT int 33
------------ BB14 [???..???) (return), preds={} succs={}
***** BB14
STMT00005 (IL ???... ???)
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
***** BB14
STMT00006 (IL 0x00B...0x01D)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
***** BB14
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* FIELD int _length
[000033] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000051] ------------ \--* ADD byref
[000050] ------------ +--* FIELD byref _pointer
[000044] ------------ | \--* ADDR byref
[000043] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
------------ BB03 [01E..030), preds={} succs={BB23}
***** BB03
STMT00018 (IL 0x01E... ???)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000113] ------------ \--* CNS_INT int 0
------------ BB23 [01E..01F) -> BB25 (cond), preds={} succs={BB24,BB25}
***** BB23
STMT00021 (IL 0x01E... ???)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000161] ------------ | \--* CAST int <- bool <- int
[000160] ------------ | \--* CNS_INT int 0
[000126] ------------ \--* CNS_INT int 0
------------ BB24 [01E..01F), preds={} succs={BB25}
***** BB24
STMT00027 (IL 0x01E... ???)
[000158] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB25 [01E..01F) -> BB26 (always), preds={} succs={BB26}
------------ BB26 [01E..01F), preds={} succs={BB27}
***** BB26
STMT00023 (IL 0x01E... ???)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000138] ------------ \--* CNS_INT int 0
***** BB26
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB26
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
***** BB26
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000151] ------------ \--* CNS_INT int 33
------------ BB27 [???..???) (return), preds={} succs={}
***** BB27
STMT00002 (IL ???... ???)
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
***** BB27
STMT00003 (IL 0x024...0x02F)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* FIELD int _length
[000009] ------------ | \--* ADDR byref
[000008] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000024] ------------ \--* ADD byref
[000023] ------------ +--* FIELD byref _pointer
[000017] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
**************** Inline Tree
Inlines into 0600018D System.Drawing.KnownColorTable:GetSystemColorId(int):int
[1 IL=0005 TR=000028 0600018B] [below ALWAYS_INLINE size] System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
[2 IL=0007 TR=000062 060016A3] [aggressive inline attribute] System.ReadOnlySpan`1:.ctor(long,int):this
[3 IL=0000 TR=000068 06003A20] [below ALWAYS_INLINE size] System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
[0 IL=0017 TR=000103 06001816] [FAILED: unprofitable inline] System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)
[4 IL=0033 TR=000080 06005B89] [aggressive inline attribute] Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
[5 IL=0030 TR=000004 0600018B] [below ALWAYS_INLINE size] System.Drawing.KnownColorTable:get_SystemColorIdTable():[S.P.CoreLib]System.ReadOnlySpan`1<uint8>
[6 IL=0007 TR=000117 060016A3] [aggressive inline attribute] System.ReadOnlySpan`1:.ctor(long,int):this
[7 IL=0000 TR=000123 06003A20] [below ALWAYS_INLINE size] System.Runtime.CompilerServices.RuntimeHelpers:IsReferenceOrContainsReferences():bool
[0 IL=0017 TR=000158 06001816] [FAILED: unprofitable inline] System.ThrowHelper:ThrowInvalidTypeWithPointersNotSupported([S.P.CoreLib]System.Type)
[8 IL=0033 TR=000135 06005B89] [aggressive inline attribute] Internal.Runtime.CompilerServices.Unsafe:As(byref):byref
Budget: initialTime=204, finalTime=332, initialBudget=2040, currentBudget=2040
Budget: discretionary inline caused a force inline
Budget: initialSize=1225, finalSize=1225
*************** In Allocate Objects
Trees before Allocate Objects
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
BB14 [0009] 1 1 [???..???) (return) internal
BB03 [0002] 1 1 [01E..030) i
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
BB27 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..005) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01
STMT00000 (IL 0x000...0x003)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
------------ BB02 [005..01E), preds={} succs={BB10}
***** BB02
STMT00008 (IL 0x005... ???)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000058] ------------ \--* CNS_INT int 0
------------ BB10 [005..006) -> BB12 (cond), preds={} succs={BB11,BB12}
***** BB10
STMT00011 (IL 0x005... ???)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000106] ------------ | \--* CAST int <- bool <- int
[000105] ------------ | \--* CNS_INT int 0
[000071] ------------ \--* CNS_INT int 0
------------ BB11 [005..006), preds={} succs={BB12}
***** BB11
STMT00017 (IL 0x005... ???)
[000103] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB12 [005..006) -> BB13 (always), preds={} succs={BB13}
------------ BB13 [005..006), preds={} succs={BB14}
***** BB13
STMT00013 (IL 0x005... ???)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000083] ------------ \--* CNS_INT int 0
***** BB13
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB13
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
***** BB13
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000096] ------------ \--* CNS_INT int 33
------------ BB14 [???..???) (return), preds={} succs={}
***** BB14
STMT00005 (IL ???... ???)
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
***** BB14
STMT00006 (IL 0x00B...0x01D)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
***** BB14
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* FIELD int _length
[000033] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000051] ------------ \--* ADD byref
[000050] ------------ +--* FIELD byref _pointer
[000044] ------------ | \--* ADDR byref
[000043] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
------------ BB03 [01E..030), preds={} succs={BB23}
***** BB03
STMT00018 (IL 0x01E... ???)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000113] ------------ \--* CNS_INT int 0
------------ BB23 [01E..01F) -> BB25 (cond), preds={} succs={BB24,BB25}
***** BB23
STMT00021 (IL 0x01E... ???)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000161] ------------ | \--* CAST int <- bool <- int
[000160] ------------ | \--* CNS_INT int 0
[000126] ------------ \--* CNS_INT int 0
------------ BB24 [01E..01F), preds={} succs={BB25}
***** BB24
STMT00027 (IL 0x01E... ???)
[000158] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB25 [01E..01F) -> BB26 (always), preds={} succs={BB26}
------------ BB26 [01E..01F), preds={} succs={BB27}
***** BB26
STMT00023 (IL 0x01E... ???)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000138] ------------ \--* CNS_INT int 0
***** BB26
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB26
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
***** BB26
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000151] ------------ \--* CNS_INT int 33
------------ BB27 [???..???) (return), preds={} succs={}
***** BB27
STMT00002 (IL ???... ???)
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
***** BB27
STMT00003 (IL 0x024...0x02F)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* FIELD int _length
[000009] ------------ | \--* ADDR byref
[000008] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000024] ------------ \--* ADD byref
[000023] ------------ +--* FIELD byref _pointer
[000017] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
-------------------------------------------------------------------------------------------------------------------
*** ObjectAllocationPhase: no newobjs in this method; punting
*************** Exiting Allocate Objects
Trees after Allocate Objects
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
BB14 [0009] 1 1 [???..???) (return) internal
BB03 [0002] 1 1 [01E..030) i
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
BB27 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..005) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01
STMT00000 (IL 0x000...0x003)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
------------ BB02 [005..01E), preds={} succs={BB10}
***** BB02
STMT00008 (IL 0x005... ???)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000058] ------------ \--* CNS_INT int 0
------------ BB10 [005..006) -> BB12 (cond), preds={} succs={BB11,BB12}
***** BB10
STMT00011 (IL 0x005... ???)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000106] ------------ | \--* CAST int <- bool <- int
[000105] ------------ | \--* CNS_INT int 0
[000071] ------------ \--* CNS_INT int 0
------------ BB11 [005..006), preds={} succs={BB12}
***** BB11
STMT00017 (IL 0x005... ???)
[000103] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB12 [005..006) -> BB13 (always), preds={} succs={BB13}
------------ BB13 [005..006), preds={} succs={BB14}
***** BB13
STMT00013 (IL 0x005... ???)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000083] ------------ \--* CNS_INT int 0
***** BB13
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB13
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V05 tmp3
***** BB13
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
[000096] ------------ \--* CNS_INT int 33
------------ BB14 [???..???) (return), preds={} succs={}
***** BB14
STMT00005 (IL ???... ???)
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V04 tmp2
***** BB14
STMT00006 (IL 0x00B...0x01D)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
***** BB14
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* FIELD int _length
[000033] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000051] ------------ \--* ADD byref
[000050] ------------ +--* FIELD byref _pointer
[000044] ------------ | \--* ADDR byref
[000043] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
------------ BB03 [01E..030), preds={} succs={BB23}
***** BB03
STMT00018 (IL 0x01E... ???)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000113] ------------ \--* CNS_INT int 0
------------ BB23 [01E..01F) -> BB25 (cond), preds={} succs={BB24,BB25}
***** BB23
STMT00021 (IL 0x01E... ???)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000161] ------------ | \--* CAST int <- bool <- int
[000160] ------------ | \--* CNS_INT int 0
[000126] ------------ \--* CNS_INT int 0
------------ BB24 [01E..01F), preds={} succs={BB25}
***** BB24
STMT00027 (IL 0x01E... ???)
[000158] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
------------ BB25 [01E..01F) -> BB26 (always), preds={} succs={BB26}
------------ BB26 [01E..01F), preds={} succs={BB27}
***** BB26
STMT00023 (IL 0x01E... ???)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000138] ------------ \--* CNS_INT int 0
***** BB26
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
***** BB26
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8> V07 tmp5
***** BB26
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
[000151] ------------ \--* CNS_INT int 33
------------ BB27 [???..???) (return), preds={} succs={}
***** BB27
STMT00002 (IL ???... ???)
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V06 tmp4
***** BB27
STMT00003 (IL 0x024...0x02F)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* FIELD int _length
[000009] ------------ | \--* ADDR byref
[000008] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000024] ------------ \--* ADD byref
[000023] ------------ +--* FIELD byref _pointer
[000017] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16> V01 loc0
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
-------------------------------------------------------------------------------------------------------------------
*************** After fgAddInternal()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
BB14 [0009] 1 1 [???..???) (return) internal
BB03 [0002] 1 1 [01E..030) i
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
BB27 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgRemoveEmptyTry()
No EH in this method, nothing to remove.
*************** In fgRemoveEmptyFinally()
No EH in this method, nothing to remove.
*************** In fgMergeFinallyChains()
No EH in this method, nothing to merge.
*************** In fgCloneFinally()
No EH in this method, no cloning.
Renumbering the basic blocks for fgComputePreds
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB10 [0004] 1 1 [005..006)-> BB12 ( cond ) i
BB11 [0005] 1 0.50 [005..006) i
BB12 [0006] 2 0.50 [005..006)-> BB13 (always) i
BB13 [0008] 2 1 [005..006) i
BB14 [0009] 1 1 [???..???) (return) internal
BB03 [0002] 1 1 [01E..030) i
BB23 [0013] 1 1 [01E..01F)-> BB25 ( cond ) i
BB24 [0014] 1 0.50 [01E..01F) i
BB25 [0015] 2 0.50 [01E..01F)-> BB26 (always) i
BB26 [0017] 2 1 [01E..01F) i
BB27 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB10 to BB03
Renumber BB11 to BB04
Renumber BB12 to BB05
Renumber BB13 to BB06
Renumber BB14 to BB07
Renumber BB03 to BB08
Renumber BB23 to BB09
Renumber BB24 to BB10
Renumber BB25 to BB11
Renumber BB26 to BB12
Renumber BB27 to BB13
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB03 [0004] 1 1 [005..006)-> BB05 ( cond ) i
BB04 [0005] 1 0.50 [005..006) i
BB05 [0006] 2 0.50 [005..006)-> BB06 (always) i
BB06 [0008] 2 1 [005..006) i
BB07 [0009] 1 1 [???..???) (return) internal
BB08 [0002] 1 1 [01E..030) i
BB09 [0013] 1 1 [01E..01F)-> BB11 ( cond ) i
BB10 [0014] 1 0.50 [01E..01F) i
BB11 [0015] 2 0.50 [01E..01F)-> BB12 (always) i
BB12 [0017] 2 1 [01E..01F) i
BB13 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 2, # of blocks (including unused BB00): 14, bitset array size: 1 (short)
*************** In fgComputePreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i
BB02 [0001] 1 1 [005..01E) i
BB03 [0004] 1 1 [005..006)-> BB05 ( cond ) i
BB04 [0005] 1 0.50 [005..006) i
BB05 [0006] 2 0.50 [005..006)-> BB06 (always) i
BB06 [0008] 2 1 [005..006) i
BB07 [0009] 1 1 [???..???) (return) internal
BB08 [0002] 1 1 [01E..030) i
BB09 [0013] 1 1 [01E..01F)-> BB11 ( cond ) i
BB10 [0014] 1 0.50 [01E..01F) i
BB11 [0015] 2 0.50 [01E..01F)-> BB12 (always) i
BB12 [0017] 2 1 [01E..01F) i
BB13 [0018] 1 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) i
BB03 [0004] 1 BB02 1 [005..006)-> BB05 ( cond ) i
BB04 [0005] 1 BB03 0.50 [005..006) i
BB05 [0006] 2 BB03,BB04 0.50 [005..006)-> BB06 (always) i label target
BB06 [0008] 1 BB05 1 [005..006) i label target
BB07 [0009] 1 BB06 1 [???..???) (return) internal
BB08 [0002] 1 BB01 1 [01E..030) i label target
BB09 [0013] 1 BB08 1 [01E..01F)-> BB11 ( cond ) i
BB10 [0014] 1 BB09 0.50 [01E..01F) i
BB11 [0015] 2 BB09,BB10 0.50 [01E..01F)-> BB12 (always) i label target
BB12 [0017] 1 BB11 1 [01E..01F) i label target
BB13 [0018] 1 BB12 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) i
BB03 [0004] 1 BB02 1 [005..006)-> BB05 ( cond ) i
BB04 [0005] 1 BB03 0.50 [005..006) i
BB05 [0006] 2 BB03,BB04 0.50 [005..006)-> BB06 (always) i label target
BB06 [0008] 1 BB05 1 [005..006) i label target
BB07 [0009] 1 BB06 1 [???..???) (return) internal
BB08 [0002] 1 BB01 1 [01E..030) i label target
BB09 [0013] 1 BB08 1 [01E..01F)-> BB11 ( cond ) i
BB10 [0014] 1 BB09 0.50 [01E..01F) i
BB11 [0015] 2 BB09,BB10 0.50 [01E..01F)-> BB12 (always) i label target
BB12 [0017] 1 BB11 1 [01E..01F) i label target
BB13 [0018] 1 BB12 1 [???..???) (return) internal
-----------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB02 and BB03:
*************** In fgDebugCheckBBlist
Optimizing a jump to an unconditional jump (BB02 -> BB05 -> BB06)
Compacting blocks BB04 and BB05:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB04 -> BB06) (converted BB04 to fall-through)
Compacting blocks BB06 and BB07:
*************** In fgDebugCheckBBlist
Compacting blocks BB08 and BB09:
*************** In fgDebugCheckBBlist
Optimizing a jump to an unconditional jump (BB08 -> BB11 -> BB12)
Compacting blocks BB10 and BB11:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB10 -> BB12) (converted BB10 to fall-through)
Compacting blocks BB12 and BB13:
*************** In fgDebugCheckBBlist
After updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB06 ( cond ) i
BB04 [0005] 1 BB02 0.50 [005..006) i
BB06 [0008] 2 BB02,BB04 1 [005..006) (return) i label target
BB08 [0002] 1 BB01 1 [01E..030)-> BB12 ( cond ) i label target
BB10 [0014] 1 BB08 0.50 [01E..01F) i
BB12 [0017] 2 BB08,BB10 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgResetImplicitByRefRefCount()
*************** In fgPromoteStructs()
lvaTable before fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 loc0 struct (16) ld-addr-op
; V02 OutArgs lclBlk (na) "OutgoingArgSpace"
; V03 tmp1 int "Span.get_Item index"
; V04 tmp2 struct (16) "NewObj constructor temp"
; V05 tmp3 struct ( 8) "NewObj constructor temp"
; V06 tmp4 struct (16) "NewObj constructor temp"
; V07 tmp5 struct ( 8) "NewObj constructor temp"
Promoting struct local V01 ([S.P.CoreLib]System.ReadOnlySpan`1<uint8>):
lvaGrabTemp returning 8 (V08 tmp6) (a long lifetime temp) called for field V01._pointer (fldOffset=0x0).
lvaGrabTemp returning 9 (V09 tmp7) (a long lifetime temp) called for field V01._length (fldOffset=0x8).
Promoting struct local V04 ([S.P.CoreLib]System.ReadOnlySpan`1<uint8>):
lvaGrabTemp returning 10 (V10 tmp8) (a long lifetime temp) called for field V04._pointer (fldOffset=0x0).
lvaGrabTemp returning 11 (V11 tmp9) (a long lifetime temp) called for field V04._length (fldOffset=0x8).
Promoting struct local V05 ([S.P.CoreLib]System.ByReference`1<uint8>):
lvaGrabTemp returning 12 (V12 tmp10) (a long lifetime temp) called for field V05._value (fldOffset=0x0).
Promoting struct local V06 ([S.P.CoreLib]System.ReadOnlySpan`1<uint8>):
lvaGrabTemp returning 13 (V13 tmp11) (a long lifetime temp) called for field V06._pointer (fldOffset=0x0).
lvaGrabTemp returning 14 (V14 tmp12) (a long lifetime temp) called for field V06._length (fldOffset=0x8).
Promoting struct local V07 ([S.P.CoreLib]System.ByReference`1<uint8>):
lvaGrabTemp returning 15 (V15 tmp13) (a long lifetime temp) called for field V07._value (fldOffset=0x0).
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 arg0 int
; V01 loc0 struct (16) ld-addr-op
; V02 OutArgs lclBlk (na) "OutgoingArgSpace"
; V03 tmp1 int "Span.get_Item index"
; V04 tmp2 struct (16) "NewObj constructor temp"
; V05 tmp3 struct ( 8) "NewObj constructor temp"
; V06 tmp4 struct (16) "NewObj constructor temp"
; V07 tmp5 struct ( 8) "NewObj constructor temp"
; V08 tmp6 byref V01._pointer(offs=0x00) P-INDEP "field V01._pointer (fldOffset=0x0)"
; V09 tmp7 int V01._length(offs=0x08) P-INDEP "field V01._length (fldOffset=0x8)"
; V10 tmp8 byref V04._pointer(offs=0x00) P-INDEP "field V04._pointer (fldOffset=0x0)"
; V11 tmp9 int V04._length(offs=0x08) P-INDEP "field V04._length (fldOffset=0x8)"
; V12 tmp10 byref V05._value(offs=0x00) P-INDEP "field V05._value (fldOffset=0x0)"
; V13 tmp11 byref V06._pointer(offs=0x00) P-INDEP "field V06._pointer (fldOffset=0x0)"
; V14 tmp12 int V06._length(offs=0x08) P-INDEP "field V06._length (fldOffset=0x8)"
; V15 tmp13 byref V07._value(offs=0x00) P-INDEP "field V07._value (fldOffset=0x0)"
*************** In fgMarkAddressExposedLocals()
LocalAddressVisitor visiting statement:
STMT00000 (IL 0x000...0x003)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
LocalAddressVisitor visiting statement:
STMT00008 (IL 0x005... ???)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
+--* byref V04._pointer (offs=0x00) -> V10 tmp8
+--* int V04._length (offs=0x08) -> V11 tmp9
[000058] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00011 (IL 0x005... ???)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000106] ------------ | \--* CAST int <- bool <- int
[000105] ------------ | \--* CNS_INT int 0
[000071] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00017 (IL 0x005... ???)
[000103] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
LocalAddressVisitor visiting statement:
STMT00013 (IL 0x005... ???)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
+--* byref V05._value (offs=0x00) -> V12 tmp10
[000083] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] -------N---- +--* FIELD byref _value
[000086] ------------ | \--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
| \--* byref V05._value (offs=0x00) -> V12 tmp10
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Replacing the field in promoted struct with local var V12
LocalAddressVisitor modified statement:
STMT00014 (IL 0x005... ???)
[000088] -AC--------- * ASG byref
[000087] D------N---- +--* LCL_VAR byref V12 tmp10
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
LocalAddressVisitor visiting statement:
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* FIELD struct _pointer
[000077] ------------ | \--* ADDR byref
[000078] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
| \--* byref V04._pointer (offs=0x00) -> V10 tmp8
| \--* int V04._length (offs=0x08) -> V11 tmp9
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
\--* byref V05._value (offs=0x00) -> V12 tmp10
Replacing the field in promoted struct with local var V10
LocalAddressVisitor modified statement:
STMT00015 (IL 0x005... ???)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* LCL_VAR byref V10 tmp8
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
\--* byref V05._value (offs=0x00) -> V12 tmp10
LocalAddressVisitor visiting statement:
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] -------N---- +--* FIELD int _length
[000094] ------------ | \--* ADDR byref
[000095] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
| \--* byref V04._pointer (offs=0x00) -> V10 tmp8
| \--* int V04._length (offs=0x08) -> V11 tmp9
[000096] ------------ \--* CNS_INT int 33
Replacing the field in promoted struct with local var V11
LocalAddressVisitor modified statement:
STMT00016 (IL 0x005... ???)
[000098] -A---------- * ASG int
[000097] D------N---- +--* LCL_VAR int V11 tmp9
[000096] ------------ \--* CNS_INT int 33
LocalAddressVisitor visiting statement:
STMT00005 (IL ???... ???)
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
\--* byref V04._pointer (offs=0x00) -> V10 tmp8
\--* int V04._length (offs=0x08) -> V11 tmp9
LocalAddressVisitor visiting statement:
STMT00006 (IL 0x00B...0x01D)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
LocalAddressVisitor visiting statement:
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* FIELD int _length
[000033] ------------ | \--* ADDR byref
[000032] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
| \--* byref V01._pointer (offs=0x00) -> V08 tmp6
| \--* int V01._length (offs=0x08) -> V09 tmp7
[000051] ------------ \--* ADD byref
[000050] ------------ +--* FIELD byref _pointer
[000044] ------------ | \--* ADDR byref
[000043] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
| \--* byref V01._pointer (offs=0x00) -> V08 tmp6
| \--* int V01._length (offs=0x08) -> V09 tmp7
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V09
Replacing the field in promoted struct with local var V08
LocalAddressVisitor modified statement:
STMT00007 (IL ???... ???)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* LCL_VAR int V09 tmp7
[000051] ------------ \--* ADD byref
[000050] ------------ +--* LCL_VAR byref V08 tmp6
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
LocalAddressVisitor visiting statement:
STMT00018 (IL 0x01E... ???)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
+--* byref V06._pointer (offs=0x00) -> V13 tmp11
+--* int V06._length (offs=0x08) -> V14 tmp12
[000113] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00021 (IL 0x01E... ???)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000161] ------------ | \--* CAST int <- bool <- int
[000160] ------------ | \--* CNS_INT int 0
[000126] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00027 (IL 0x01E... ???)
[000158] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
LocalAddressVisitor visiting statement:
STMT00023 (IL 0x01E... ???)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
+--* byref V07._value (offs=0x00) -> V15 tmp13
[000138] ------------ \--* CNS_INT int 0
LocalAddressVisitor visiting statement:
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] -------N---- +--* FIELD byref _value
[000141] ------------ | \--* ADDR byref
[000140] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
| \--* byref V07._value (offs=0x00) -> V15 tmp13
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
Replacing the field in promoted struct with local var V15
LocalAddressVisitor modified statement:
STMT00024 (IL 0x01E... ???)
[000143] -AC--------- * ASG byref
[000142] D------N---- +--* LCL_VAR byref V15 tmp13
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
LocalAddressVisitor visiting statement:
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* FIELD struct _pointer
[000132] ------------ | \--* ADDR byref
[000133] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
| \--* byref V06._pointer (offs=0x00) -> V13 tmp11
| \--* int V06._length (offs=0x08) -> V14 tmp12
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
\--* byref V07._value (offs=0x00) -> V15 tmp13
Replacing the field in promoted struct with local var V13
LocalAddressVisitor modified statement:
STMT00025 (IL 0x01E... ???)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* LCL_VAR byref V13 tmp11
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
\--* byref V07._value (offs=0x00) -> V15 tmp13
LocalAddressVisitor visiting statement:
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] -------N---- +--* FIELD int _length
[000149] ------------ | \--* ADDR byref
[000150] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
| \--* byref V06._pointer (offs=0x00) -> V13 tmp11
| \--* int V06._length (offs=0x08) -> V14 tmp12
[000151] ------------ \--* CNS_INT int 33
Replacing the field in promoted struct with local var V14
LocalAddressVisitor modified statement:
STMT00026 (IL 0x01E... ???)
[000153] -A---------- * ASG int
[000152] D------N---- +--* LCL_VAR int V14 tmp12
[000151] ------------ \--* CNS_INT int 33
LocalAddressVisitor visiting statement:
STMT00002 (IL ???... ???)
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
\--* byref V06._pointer (offs=0x00) -> V13 tmp11
\--* int V06._length (offs=0x08) -> V14 tmp12
LocalAddressVisitor visiting statement:
STMT00003 (IL 0x024...0x02F)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* FIELD int _length
[000009] ------------ | \--* ADDR byref
[000008] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
| \--* byref V01._pointer (offs=0x00) -> V08 tmp6
| \--* int V01._length (offs=0x08) -> V09 tmp7
[000024] ------------ \--* ADD byref
[000023] ------------ +--* FIELD byref _pointer
[000017] ------------ | \--* ADDR byref
[000016] ------------ | \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
| \--* byref V01._pointer (offs=0x00) -> V08 tmp6
| \--* int V01._length (offs=0x08) -> V09 tmp7
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
Replacing the field in promoted struct with local var V09
Replacing the field in promoted struct with local var V08
LocalAddressVisitor modified statement:
STMT00003 (IL 0x024...0x02F)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* LCL_VAR int V09 tmp7
[000024] ------------ \--* ADD byref
[000023] ------------ +--* LCL_VAR byref V08 tmp6
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
*************** In fgRetypeImplicitByRefArgs()
*************** In fgMorphBlocks()
Morphing BB01 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB01, STMT00000 (before)
[000003] ------------ * JTRUE void
[000002] ------------ \--* LT int
[000000] ------------ +--* LCL_VAR int V00 arg0
[000001] ------------ \--* CNS_INT int 27
Morphing BB02 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB02, STMT00008 (before)
[000059] IA---------- * ASG struct (init)
[000057] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
+--* byref V04._pointer (offs=0x00) -> V10 tmp8
+--* int V04._length (offs=0x08) -> V11 tmp9
[000058] ------------ \--* CNS_INT int 0
fgMorphInitBlock: using field by field initialization.
GenTreeNode creates assertion:
[000167] -A---------- * ASG byref
In BB02 New Local Constant Assertion: V10 == 0 index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000170] -A---------- * ASG int
In BB02 New Local Constant Assertion: V11 == 0 index=#02, mask=0000000000000002
fgMorphInitBlock (after):
[000171] -A---+------ * COMMA void
[000167] -A---------- +--* ASG byref
[000165] D------N---- | +--* LCL_VAR byref V10 tmp8
[000166] ------------ | \--* CNS_INT byref 0
[000170] -A---------- \--* ASG int
[000168] D------N---- +--* LCL_VAR int V11 tmp9
[000169] ------------ \--* CNS_INT int 0
fgMorphTree BB02, STMT00008 (after)
[000171] -A---+------ * COMMA void
[000167] -A---------- +--* ASG byref
[000165] D------N---- | +--* LCL_VAR byref V10 tmp8
[000166] ------------ | \--* CNS_INT byref 0
[000170] -A---------- \--* ASG int
[000168] D------N---- +--* LCL_VAR int V11 tmp9
[000169] ------------ \--* CNS_INT int 0
fgMorphTree BB02, STMT00011 (before)
[000073] --C--------- * JTRUE void
[000072] --C--------- \--* EQ int
[000070] --C--------- +--* CAST int <- bool <- int
[000106] ------------ | \--* CAST int <- bool <- int
[000105] ------------ | \--* CNS_INT int 0
[000071] ------------ \--* CNS_INT int 0
Folding operator with constant nodes into a constant:
[000072] J------N---- * EQ int
[000105] -----+------ +--* CNS_INT int 0
[000071] -----+------ \--* CNS_INT int 0
Bashed to int constant:
[000072] ------------ * CNS_INT int 1
fgMorphTree BB02, STMT00011 (after)
[000073] -----+------ * JTRUE void
[000072] -----+------ \--* CNS_INT int 1
Removing statement STMT00011 (IL 0x005... ???)
[000073] -----+------ * JTRUE void
[000072] -----+------ \--* CNS_INT int 1
in BB02 as useless:
Conditional folded at BB02
BB02 becomes a BBJ_ALWAYS to BB06
Morphing BB04 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB04, STMT00017 (before)
[000103] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----------- arg0 \--* IND long
[000099] ------------ \--* CNS_INT(h) long 0x420678 class
Initializing arg info for 103.CALL:
ArgTable for 103.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 102.CALL ref, 1 reg: rcx, align=1]
Morphing args for 103.CALL:
Initializing arg info for 102.CALL:
ArgTable for 102.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 100.IND long, 1 reg: rcx, align=1]
Morphing args for 102.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000100] n----+------ * IND long
[000099] -----+------ \--* CNS_INT(h) long 0x420678 class
Replaced with placeholder node:
[000172] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 102.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 100.IND long, 1 reg: rcx, align=1, lateArgInx=0, processed]
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000102] --C-G+------ * CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----+------ arg0 in rcx \--* IND long
[000099] -----+------ \--* CNS_INT(h) long 0x420678 class
Replaced with placeholder node:
[000173] ----------L- * ARGPLACE ref
Shuffled argument table: rcx
ArgTable for 103.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 102.CALL ref, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB04, STMT00017 (after)
[000103] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----+------ arg0 in rcx \--* IND long
[000099] -----+------ \--* CNS_INT(h) long 0x420678 class
Converting BB04 to BBJ_THROW
Morphing BB06 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB06, STMT00013 (before)
[000084] IA---------- * ASG struct (init)
[000082] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
+--* byref V05._value (offs=0x00) -> V12 tmp10
[000083] ------------ \--* CNS_INT int 0
fgMorphInitBlock: using field by field initialization.
GenTreeNode creates assertion:
[000176] -A---------- * ASG byref
In BB06 New Local Constant Assertion: V12 == 0 index=#01, mask=0000000000000001
fgMorphInitBlock (after):
[000176] -A---+------ * ASG byref
[000174] D------N---- +--* LCL_VAR byref V12 tmp10
[000175] ------------ \--* CNS_INT byref 0
The assignment [000176] using V12 removes: Constant Assertion: V12 == 0
GenTreeNode creates assertion:
[000176] -A---+------ * ASG byref
In BB06 New Local Constant Assertion: V12 == 0 index=#01, mask=0000000000000001
fgMorphTree BB06, STMT00013 (after)
[000176] -A---+------ * ASG byref
[000174] D------N---- +--* LCL_VAR byref V12 tmp10
[000175] ------------ \--* CNS_INT byref 0
fgMorphTree BB06, STMT00014 (before)
[000088] -AC--------- * ASG byref
[000087] D------N---- +--* LCL_VAR byref V12 tmp10
[000108] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
The assignment [000088] using V12 removes: Constant Assertion: V12 == 0
GenTreeNode creates assertion:
[000088] -A---------- * ASG byref
In BB06 New Local Constant Assertion: V12 == [00000000004205D0] index=#01, mask=0000000000000001
fgMorphTree BB06, STMT00015 (before)
[000093] -A---------- * ASG struct (copy)
[000092] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] ------------ | \--* ADDR byref
[000090] ------------ | \--* LCL_VAR byref V10 tmp8
[000089] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
\--* byref V05._value (offs=0x00) -> V12 tmp10
fgMorphCopyBlock:block assignment to morph:
[000093] -A---------- * ASG struct (copy)
[000092] n----+------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000091] -----+------ | \--* ADDR byref
[000090] D----+-N---- | \--* LCL_VAR byref V10 tmp8
[000089] -----+------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V05 tmp3
\--* byref V05._value (offs=0x00) -> V12 tmp10
(srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000179] -A---------- * ASG byref
In BB06 New Local Copy Assertion: V10 == V12 index=#02, mask=0000000000000002
fgMorphCopyBlock (after):
[000179] -A---+------ * ASG byref
[000177] D------N---- +--* LCL_VAR byref V10 tmp8
[000178] ------------ \--* LCL_VAR byref V12 tmp10
The assignment [000179] using V10 removes: Copy Assertion: V10 == V12
GenTreeNode creates assertion:
[000179] -A---+------ * ASG byref
In BB06 New Local Copy Assertion: V10 == V12 index=#02, mask=0000000000000002
fgMorphTree BB06, STMT00015 (after)
[000179] -A---+------ * ASG byref
[000177] D------N---- +--* LCL_VAR byref V10 tmp8
[000178] ------------ \--* LCL_VAR byref V12 tmp10
fgMorphTree BB06, STMT00016 (before)
[000098] -A---------- * ASG int
[000097] D------N---- +--* LCL_VAR int V11 tmp9
[000096] ------------ \--* CNS_INT int 33
GenTreeNode creates assertion:
[000098] -A---------- * ASG int
In BB06 New Local Constant Assertion: V11 == 33 index=#03, mask=0000000000000004
fgMorphTree BB06, STMT00005 (before)
[000066] -A---------- * ASG struct (copy)
[000065] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000063] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
\--* byref V04._pointer (offs=0x00) -> V10 tmp8
\--* int V04._length (offs=0x08) -> V11 tmp9
fgMorphCopyBlock:block assignment to morph:
[000066] -A---------- * ASG struct (copy)
[000065] D----+-N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000063] -----+------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V04 tmp2
\--* byref V04._pointer (offs=0x00) -> V10 tmp8
\--* int V04._length (offs=0x08) -> V11 tmp9
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000182] -A---------- * ASG byref
In BB06 New Local Copy Assertion: V08 == V10 index=#04, mask=0000000000000008
GenTreeNode creates assertion:
[000185] -A---------- * ASG int
In BB06 New Local Copy Assertion: V09 == V11 index=#05, mask=0000000000000010
fgMorphCopyBlock (after):
[000186] -A---+------ * COMMA void
[000182] -A---------- +--* ASG byref
[000180] D------N---- | +--* LCL_VAR byref V08 tmp6
[000181] ------------ | \--* LCL_VAR byref V10 tmp8
[000185] -A---------- \--* ASG int
[000183] D------N---- +--* LCL_VAR int V09 tmp7
[000184] ------------ \--* LCL_VAR int V11 tmp9
fgMorphTree BB06, STMT00005 (after)
[000186] -A---+------ * COMMA void
[000182] -A---------- +--* ASG byref
[000180] D------N---- | +--* LCL_VAR byref V08 tmp6
[000181] ------------ | \--* LCL_VAR byref V10 tmp8
[000185] -A---------- \--* ASG int
[000183] D------N---- +--* LCL_VAR int V09 tmp7
[000184] ------------ \--* LCL_VAR int V11 tmp9
fgMorphTree BB06, STMT00006 (before)
[000040] -A---------- * ASG int
[000039] D------N---- +--* LCL_VAR int V03 tmp1
[000038] ------------ \--* ADD int
[000036] ------------ +--* SUB int
[000034] ------------ | +--* LCL_VAR int V00 arg0
[000035] ------------ | \--* CNS_INT int 168
[000037] ------------ \--* CNS_INT int 26
fgMorphTree BB06, STMT00006 (after)
[000040] -A---+------ * ASG int
[000039] D----+-N---- +--* LCL_VAR int V03 tmp1
[000038] -----+------ \--* ADD int
[000034] -----+------ +--* LCL_VAR int V00 arg0
[000037] -----+------ \--* CNS_INT int -142
fgMorphTree BB06, STMT00007 (before)
[000054] ---XG------- * RETURN int
[000053] *--XG------- \--* IND ubyte
[000052] ---X-------- \--* COMMA byref
[000046] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000042] ------------ | +--* LCL_VAR int V03 tmp1
[000045] ------------ | \--* LCL_VAR int V09 tmp7
[000051] ------------ \--* ADD byref
[000050] ------------ +--* LCL_VAR byref V08 tmp6
[000049] ------------ \--* MUL long
[000047] ------------ +--* CAST long <- int
[000041] ------------ | \--* LCL_VAR int V03 tmp1
[000048] ------------ \--* CNS_INT int 1
Assertion prop in BB06:
Copy Assertion: V09 == V11 index=#05, mask=0000000000000010
[000045] ------------ * LCL_VAR int V11 tmp9
Assertion prop in BB06:
Constant Assertion: V11 == 33 index=#03, mask=0000000000000004
[000045] ------------ * CNS_INT int 33
Assertion prop in BB06:
Copy Assertion: V08 == V10 index=#04, mask=0000000000000008
[000050] ------------ * LCL_VAR byref V10 tmp8
Assertion prop in BB06:
Copy Assertion: V10 == V12 index=#02, mask=0000000000000002
[000050] ------------ * LCL_VAR byref V12 tmp10
Assertion prop in BB06:
Constant Assertion: V12 == [00000000004205D0] index=#01, mask=0000000000000001
[000187] ------------ * CNS_INT(h) long 0x4205D0 static
fgMorphTree BB06, STMT00007 (after)
[000054] ---XG+------ * RETURN int
[000052] ---XG+------ \--* COMMA ubyte
[000046] ---X-+------ +--* ARR_BOUNDS_CHECK_Rng void
[000042] -----+------ | +--* LCL_VAR int V03 tmp1
[000045] -----+------ | \--* CNS_INT int 33
[000188] *--X-+------ \--* IND ubyte
[000051] -----+------ \--* ADD long
[000047] -----+------ +--* CAST long <- int
[000041] -----+------ | \--* LCL_VAR int V03 tmp1
[000187] -----+------ \--* CNS_INT(h) long 0x4205D0 static
Morphing BB08 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB08, STMT00018 (before)
[000114] IA---------- * ASG struct (init)
[000112] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
+--* byref V06._pointer (offs=0x00) -> V13 tmp11
+--* int V06._length (offs=0x08) -> V14 tmp12
[000113] ------------ \--* CNS_INT int 0
fgMorphInitBlock: using field by field initialization.
GenTreeNode creates assertion:
[000191] -A---------- * ASG byref
In BB08 New Local Constant Assertion: V13 == 0 index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000194] -A---------- * ASG int
In BB08 New Local Constant Assertion: V14 == 0 index=#02, mask=0000000000000002
fgMorphInitBlock (after):
[000195] -A---+------ * COMMA void
[000191] -A---------- +--* ASG byref
[000189] D------N---- | +--* LCL_VAR byref V13 tmp11
[000190] ------------ | \--* CNS_INT byref 0
[000194] -A---------- \--* ASG int
[000192] D------N---- +--* LCL_VAR int V14 tmp12
[000193] ------------ \--* CNS_INT int 0
fgMorphTree BB08, STMT00018 (after)
[000195] -A---+------ * COMMA void
[000191] -A---------- +--* ASG byref
[000189] D------N---- | +--* LCL_VAR byref V13 tmp11
[000190] ------------ | \--* CNS_INT byref 0
[000194] -A---------- \--* ASG int
[000192] D------N---- +--* LCL_VAR int V14 tmp12
[000193] ------------ \--* CNS_INT int 0
fgMorphTree BB08, STMT00021 (before)
[000128] --C--------- * JTRUE void
[000127] --C--------- \--* EQ int
[000125] --C--------- +--* CAST int <- bool <- int
[000161] ------------ | \--* CAST int <- bool <- int
[000160] ------------ | \--* CNS_INT int 0
[000126] ------------ \--* CNS_INT int 0
Folding operator with constant nodes into a constant:
[000127] J------N---- * EQ int
[000160] -----+------ +--* CNS_INT int 0
[000126] -----+------ \--* CNS_INT int 0
Bashed to int constant:
[000127] ------------ * CNS_INT int 1
fgMorphTree BB08, STMT00021 (after)
[000128] -----+------ * JTRUE void
[000127] -----+------ \--* CNS_INT int 1
Removing statement STMT00021 (IL 0x01E... ???)
[000128] -----+------ * JTRUE void
[000127] -----+------ \--* CNS_INT int 1
in BB08 as useless:
Conditional folded at BB08
BB08 becomes a BBJ_ALWAYS to BB12
Morphing BB10 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB10, STMT00027 (before)
[000158] --C-G------- * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----------- arg0 \--* IND long
[000154] ------------ \--* CNS_INT(h) long 0x420678 class
Initializing arg info for 158.CALL:
ArgTable for 158.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 157.CALL ref, 1 reg: rcx, align=1]
Morphing args for 158.CALL:
Initializing arg info for 157.CALL:
ArgTable for 157.CALL after fgInitArgInfo:
fgArgTabEntry[arg 0 155.IND long, 1 reg: rcx, align=1]
Morphing args for 157.CALL:
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000155] n----+------ * IND long
[000154] -----+------ \--* CNS_INT(h) long 0x420678 class
Replaced with placeholder node:
[000196] ----------L- * ARGPLACE long
Shuffled argument table: rcx
ArgTable for 157.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 155.IND long, 1 reg: rcx, align=1, lateArgInx=0, processed]
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000157] --C-G+------ * CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----+------ arg0 in rcx \--* IND long
[000154] -----+------ \--* CNS_INT(h) long 0x420678 class
Replaced with placeholder node:
[000197] ----------L- * ARGPLACE ref
Shuffled argument table: rcx
ArgTable for 158.CALL after fgMorphArgs:
fgArgTabEntry[arg 0 157.CALL ref, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB10, STMT00027 (after)
[000158] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----+------ arg0 in rcx \--* IND long
[000154] -----+------ \--* CNS_INT(h) long 0x420678 class
Converting BB10 to BBJ_THROW
Morphing BB12 of 'System.Drawing.KnownColorTable:GetSystemColorId(int):int'
fgMorphTree BB12, STMT00023 (before)
[000139] IA---------- * ASG struct (init)
[000137] D------N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
+--* byref V07._value (offs=0x00) -> V15 tmp13
[000138] ------------ \--* CNS_INT int 0
fgMorphInitBlock: using field by field initialization.
GenTreeNode creates assertion:
[000200] -A---------- * ASG byref
In BB12 New Local Constant Assertion: V15 == 0 index=#01, mask=0000000000000001
fgMorphInitBlock (after):
[000200] -A---+------ * ASG byref
[000198] D------N---- +--* LCL_VAR byref V15 tmp13
[000199] ------------ \--* CNS_INT byref 0
The assignment [000200] using V15 removes: Constant Assertion: V15 == 0
GenTreeNode creates assertion:
[000200] -A---+------ * ASG byref
In BB12 New Local Constant Assertion: V15 == 0 index=#01, mask=0000000000000001
fgMorphTree BB12, STMT00023 (after)
[000200] -A---+------ * ASG byref
[000198] D------N---- +--* LCL_VAR byref V15 tmp13
[000199] ------------ \--* CNS_INT byref 0
fgMorphTree BB12, STMT00024 (before)
[000143] -AC--------- * ASG byref
[000142] D------N---- +--* LCL_VAR byref V15 tmp13
[000163] ------------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
The assignment [000143] using V15 removes: Constant Assertion: V15 == 0
GenTreeNode creates assertion:
[000143] -A---------- * ASG byref
In BB12 New Local Constant Assertion: V15 == [00000000004205D0] index=#01, mask=0000000000000001
fgMorphTree BB12, STMT00025 (before)
[000148] -A---------- * ASG struct (copy)
[000147] ------------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] ------------ | \--* ADDR byref
[000145] ------------ | \--* LCL_VAR byref V13 tmp11
[000144] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
\--* byref V07._value (offs=0x00) -> V15 tmp13
fgMorphCopyBlock:block assignment to morph:
[000148] -A---------- * ASG struct (copy)
[000147] n----+------ +--* OBJ struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>
[000146] -----+------ | \--* ADDR byref
[000145] D----+-N---- | \--* LCL_VAR byref V13 tmp11
[000144] -----+------ \--* LCL_VAR struct<[S.P.CoreLib]System.ByReference`1<uint8>, 8>(P) V07 tmp5
\--* byref V07._value (offs=0x00) -> V15 tmp13
(srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000203] -A---------- * ASG byref
In BB12 New Local Copy Assertion: V13 == V15 index=#02, mask=0000000000000002
fgMorphCopyBlock (after):
[000203] -A---+------ * ASG byref
[000201] D------N---- +--* LCL_VAR byref V13 tmp11
[000202] ------------ \--* LCL_VAR byref V15 tmp13
The assignment [000203] using V13 removes: Copy Assertion: V13 == V15
GenTreeNode creates assertion:
[000203] -A---+------ * ASG byref
In BB12 New Local Copy Assertion: V13 == V15 index=#02, mask=0000000000000002
fgMorphTree BB12, STMT00025 (after)
[000203] -A---+------ * ASG byref
[000201] D------N---- +--* LCL_VAR byref V13 tmp11
[000202] ------------ \--* LCL_VAR byref V15 tmp13
fgMorphTree BB12, STMT00026 (before)
[000153] -A---------- * ASG int
[000152] D------N---- +--* LCL_VAR int V14 tmp12
[000151] ------------ \--* CNS_INT int 33
GenTreeNode creates assertion:
[000153] -A---------- * ASG int
In BB12 New Local Constant Assertion: V14 == 33 index=#03, mask=0000000000000004
fgMorphTree BB12, STMT00002 (before)
[000121] -A---------- * ASG struct (copy)
[000120] D----------- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000118] ------------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
\--* byref V06._pointer (offs=0x00) -> V13 tmp11
\--* int V06._length (offs=0x08) -> V14 tmp12
fgMorphCopyBlock:block assignment to morph:
[000121] -A---------- * ASG struct (copy)
[000120] D----+-N---- +--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V01 loc0
+--* byref V01._pointer (offs=0x00) -> V08 tmp6
+--* int V01._length (offs=0x08) -> V09 tmp7
[000118] -----+------ \--* LCL_VAR struct<[S.P.CoreLib]System.ReadOnlySpan`1<uint8>, 16>(P) V06 tmp4
\--* byref V06._pointer (offs=0x00) -> V13 tmp11
\--* int V06._length (offs=0x08) -> V14 tmp12
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000206] -A---------- * ASG byref
In BB12 New Local Copy Assertion: V08 == V13 index=#04, mask=0000000000000008
GenTreeNode creates assertion:
[000209] -A---------- * ASG int
In BB12 New Local Copy Assertion: V09 == V14 index=#05, mask=0000000000000010
fgMorphCopyBlock (after):
[000210] -A---+------ * COMMA void
[000206] -A---------- +--* ASG byref
[000204] D------N---- | +--* LCL_VAR byref V08 tmp6
[000205] ------------ | \--* LCL_VAR byref V13 tmp11
[000209] -A---------- \--* ASG int
[000207] D------N---- +--* LCL_VAR int V09 tmp7
[000208] ------------ \--* LCL_VAR int V14 tmp12
fgMorphTree BB12, STMT00002 (after)
[000210] -A---+------ * COMMA void
[000206] -A---------- +--* ASG byref
[000204] D------N---- | +--* LCL_VAR byref V08 tmp6
[000205] ------------ | \--* LCL_VAR byref V13 tmp11
[000209] -A---------- \--* ASG int
[000207] D------N---- +--* LCL_VAR int V09 tmp7
[000208] ------------ \--* LCL_VAR int V14 tmp12
fgMorphTree BB12, STMT00003 (before)
[000027] ---XG------- * RETURN int
[000026] *--XG------- \--* IND ubyte
[000025] ---X-------- \--* COMMA byref
[000019] ---X-------- +--* ARR_BOUNDS_CHECK_Rng void
[000012] ------------ | +--* SUB int
[000010] ------------ | | +--* LCL_VAR int V00 arg0
[000011] ------------ | | \--* CNS_INT int 1
[000018] ------------ | \--* LCL_VAR int V09 tmp7
[000024] ------------ \--* ADD byref
[000023] ------------ +--* LCL_VAR byref V08 tmp6
[000022] ------------ \--* MUL long
[000020] ------------ +--* CAST long <- int
[000015] ------------ | \--* SUB int
[000013] ------------ | +--* LCL_VAR int V00 arg0
[000014] ------------ | \--* CNS_INT int 1
[000021] ------------ \--* CNS_INT int 1
Assertion prop in BB12:
Copy Assertion: V09 == V14 index=#05, mask=0000000000000010
[000018] ------------ * LCL_VAR int V14 tmp12
Assertion prop in BB12:
Constant Assertion: V14 == 33 index=#03, mask=0000000000000004
[000018] ------------ * CNS_INT int 33
Assertion prop in BB12:
Copy Assertion: V08 == V13 index=#04, mask=0000000000000008
[000023] ------------ * LCL_VAR byref V13 tmp11
Assertion prop in BB12:
Copy Assertion: V13 == V15 index=#02, mask=0000000000000002
[000023] ------------ * LCL_VAR byref V15 tmp13
Assertion prop in BB12:
Constant Assertion: V15 == [00000000004205D0] index=#01, mask=0000000000000001
[000211] ------------ * CNS_INT(h) long 0x4205D0 static
fgMorphTree BB12, STMT00003 (after)
[000027] ---XG+------ * RETURN int
[000025] ---XG+------ \--* COMMA ubyte
[000019] ---X-+------ +--* ARR_BOUNDS_CHECK_Rng void
[000012] -----+------ | +--* ADD int
[000010] -----+------ | | +--* LCL_VAR int V00 arg0
[000011] -----+------ | | \--* CNS_INT int -1
[000018] -----+------ | \--* CNS_INT int 33
[000212] *--X-+------ \--* IND ubyte
[000024] -----+------ \--* ADD long
[000020] -----+------ +--* CAST long <- int
[000015] -----+------ | \--* ADD int
[000013] -----+------ | +--* LCL_VAR int V00 arg0
[000014] -----+------ | \--* CNS_INT int -1
[000211] -----+------ \--* CNS_INT(h) long 0x4205D0 static
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB08 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB06 (always) i
BB04 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB06 [0008] 1 BB02 1 [005..006) (return) i label target
BB08 [0002] 1 BB01 1 [01E..030)-> BB12 (always) i label target
BB10 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB12 [0017] 1 BB08 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB04 to BB03
Renumber BB06 to BB04
Renumber BB08 to BB05
Renumber BB10 to BB06
Renumber BB12 to BB07
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB04 (always) i
BB03 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB04 [0008] 1 BB02 1 [005..006) (return) i label target
BB05 [0002] 1 BB01 1 [01E..030)-> BB07 (always) i label target
BB06 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB07 [0017] 1 BB05 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 3, # of blocks (including unused BB00): 8, bitset array size: 1 (short)
*************** In fgComputeBlockAndEdgeWeights()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB04 (always) i
BB03 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB04 [0008] 1 BB02 1 [005..006) (return) i label target
BB05 [0002] 1 BB01 1 [01E..030)-> BB07 (always) i label target
BB06 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB07 [0017] 1 BB05 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
-- no profile data, so using default called count
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 4 edges, using 1 passes.
Edge weights into BB02 :BB01 (100)
Edge weights into BB04 :BB02 (100)
Edge weights into BB05 :BB01 (100)
Edge weights into BB07 :BB05 (100)
*************** In fgCreateFunclets()
After fgCreateFunclets()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB04 (always) i
BB03 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB04 [0008] 1 BB02 1 [005..006) (return) i label target
BB05 [0002] 1 BB01 1 [01E..030)-> BB07 (always) i label target
BB06 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB07 [0017] 1 BB05 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgTailMergeThrows
*** Does not return call
[000158] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----+------ arg0 in rcx \--* IND long
[000154] -----+------ \--* CNS_INT(h) long 0x420678 class
in BB06 is unique, marking it as canonical
*** Does not return call
[000103] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----+------ arg0 in rcx \--* IND long
[000099] -----+------ \--* CNS_INT(h) long 0x420678 class
in BB03 can be dup'd to canonical BB06
*** found 1 merge candidates, rewriting flow
*************** After fgTailMergeThrows(0 updates)
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB04 (always) i
BB03 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB04 [0008] 1 BB02 1 [005..006) (return) i label target
BB05 [0002] 1 BB01 1 [01E..030)-> BB07 (always) i label target
BB06 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB07 [0017] 1 BB05 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E)-> BB04 (always) i
BB03 [0005] 0 0 [005..006) (throw ) i rare gcsafe
BB04 [0008] 1 BB02 1 [005..006) (return) i label target
BB05 [0002] 1 BB01 1 [01E..030)-> BB07 (always) i label target
BB06 [0014] 0 0 [01E..01F) (throw ) i rare gcsafe
BB07 [0017] 1 BB05 1 [01E..01F) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
fgRemoveBlock BB03
Removing unreachable BB03
Removing statement STMT00017 (IL 0x005... ???)
[000103] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000102] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000100] n----+------ arg0 in rcx \--* IND long
[000099] -----+------ \--* CNS_INT(h) long 0x420678 class
in BB03 as useless:
BB03 becomes empty
fgRemoveBlock BB06
Removing unreachable BB06
Removing statement STMT00027 (IL 0x01E... ???)
[000158] --CXG+------ * CALL r2r_ind void System.ThrowHelper.ThrowInvalidTypeWithPointersNotSupported
[000157] --C-G+------ arg0 in rcx \--* CALL help ref HELPER.CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE
[000155] n----+------ arg0 in rcx \--* IND long
[000154] -----+------ \--* CNS_INT(h) long 0x420678 class
in BB06 as useless:
BB06 becomes empty
Compacting blocks BB02 and BB04:
*************** In fgDebugCheckBBlist
Compacting blocks BB05 and BB07:
*************** In fgDebugCheckBBlist
After updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB05 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB05 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB05 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeReachability
*************** In fgDebugCheckBBlist
Renumbering the basic blocks for fgComputeReachability pass #1
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB05 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB05 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB05 to BB03
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB03 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
New BlockSet epoch 4, # of blocks (including unused BB00): 4, bitset array size: 1 (short)
Enter blocks: BB01
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB03
After computing reachability:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 1 [005..01E) (return) i
BB03 [0002] 1 BB01 1 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeDoms
*************** In fgDebugCheckBBlist
Dominator computation start blocks (those blocks with no incoming edges):
BB01
------------------------------------------------
BBnum Dominated by
------------------------------------------------
BB01: BB01
BB02: BB02 BB01
BB03: BB03 BB01
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB03 BB02
After numbering the dominator tree:
BB01: pre=01, post=03
BB02: pre=03, post=02
BB03: pre=02, post=01
*************** In optOptimizeLoops()
After optSetBlockWeights:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..005)-> BB03 ( cond ) i label target
BB02 [0001] 1 BB01 0.50 [005..01E) (return) i
BB03 [0002] 1 BB01 0.50 [01E..030) (return) i label target
-----------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
*** lvaComputeRefCounts ***
*** lvaComputeRefCounts -- explicit counts ***
*** marking local variables in block BB01 (weight=1 )
STMT00000 (IL 0x000...0x003)
[000003] -----+------ * JTRUE void
[000002] J----+-N---- \--* LT int
[000000] -----+------ +--* LCL_VAR int V00 arg0
[000001] -----+------ \--* CNS_INT int 27
New refCnts for V00: refCnt = 1, refCntWtd = 1
*** marking local variables in block BB02 (weight=0.50)
STMT00008 (IL 0x005... ???)
[000171] -A---+------ * COMMA void
[000167] -A---------- +--* ASG byref
[000165] D------N---- | +--* LCL_VAR byref V10 tmp8
[000166] ------------ | \--* CNS_INT byref 0
[000170] -A---------- \--* ASG int
[000168] D------N---- +--* LCL_VAR int V11 tmp9
[000169] ------------ \--* CNS_INT int 0
New refCnts for V10: refCnt = 1, refCntWtd = 0.50
New refCnts for V11: refCnt = 1, refCntWtd = 0.50
STMT00013 (IL 0x005... ???)
[000176] -A---+------ * ASG byref
[000174] D------N---- +--* LCL_VAR byref V12 tmp10
[000175] ------------ \--* CNS_INT byref 0
New refCnts for V12: refCnt = 1, refCntWtd = 0.50
STMT00014 (IL 0x005... ???)
[000088] -A---+------ * ASG byref
[000087] D----+-N---- +--* LCL_VAR byref V12 tmp10
[000108] -----+------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
New refCnts for V12: refCnt = 2, refCntWtd = 1
STMT00015 (IL 0x005... ???)
[000179] -A---+------ * ASG byref
[000177] D------N---- +--* LCL_VAR byref V10 tmp8
[000178] ------------ \--* LCL_VAR byref V12 tmp10
New refCnts for V10: refCnt = 2, refCntWtd = 1
New refCnts for V12: refCnt = 3, refCntWtd = 1.50
STMT00016 (IL 0x005... ???)
[000098] -A---+------ * ASG int
[000097] D----+-N---- +--* LCL_VAR int V11 tmp9
[000096] -----+------ \--* CNS_INT int 33
New refCnts for V11: refCnt = 2, refCntWtd = 1
STMT00005 (IL ???... ???)
[000186] -A---+------ * COMMA void
[000182] -A---------- +--* ASG byref
[000180] D------N---- | +--* LCL_VAR byref V08 tmp6
[000181] ------------ | \--* LCL_VAR byref V10 tmp8
[000185] -A---------- \--* ASG int
[000183] D------N---- +--* LCL_VAR int V09 tmp7
[000184] ------------ \--* LCL_VAR int V11 tmp9
New refCnts for V08: refCnt = 1, refCntWtd = 0.50
New refCnts for V10: refCnt = 3, refCntWtd = 1.50
New refCnts for V09: refCnt = 1, refCntWtd = 0.50
New refCnts for V11: refCnt = 3, refCntWtd = 1.50
STMT00006 (IL 0x00B...0x01D)
[000040] -A---+------ * ASG int
[000039] D----+-N---- +--* LCL_VAR int V03 tmp1
[000038] -----+------ \--* ADD int
[000034] -----+------ +--* LCL_VAR int V00 arg0
[000037] -----+------ \--* CNS_INT int -142
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 2, refCntWtd = 1.50
STMT00007 (IL ???... ???)
[000054] ---XG+------ * RETURN int
[000052] ---XG+------ \--* COMMA ubyte
[000046] ---X-+------ +--* ARR_BOUNDS_CHECK_Rng void
[000042] -----+------ | +--* LCL_VAR int V03 tmp1
[000045] -----+------ | \--* CNS_INT int 33
[000188] *--X-+------ \--* IND ubyte
[000051] -----+------ \--* ADD long
[000047] -----+------ +--* CAST long <- int
[000041] -----+------ | \--* LCL_VAR int V03 tmp1
[000187] -----+------ \--* CNS_INT(h) long 0x4205D0 static
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB03 (weight=0.50)
STMT00018 (IL 0x01E... ???)
[000195] -A---+------ * COMMA void
[000191] -A---------- +--* ASG byref
[000189] D------N---- | +--* LCL_VAR byref V13 tmp11
[000190] ------------ | \--* CNS_INT byref 0
[000194] -A---------- \--* ASG int
[000192] D------N---- +--* LCL_VAR int V14 tmp12
[000193] ------------ \--* CNS_INT int 0
New refCnts for V13: refCnt = 1, refCntWtd = 0.50
New refCnts for V14: refCnt = 1, refCntWtd = 0.50
STMT00023 (IL 0x01E... ???)
[000200] -A---+------ * ASG byref
[000198] D------N---- +--* LCL_VAR byref V15 tmp13
[000199] ------------ \--* CNS_INT byref 0
New refCnts for V15: refCnt = 1, refCntWtd = 0.50
STMT00024 (IL 0x01E... ???)
[000143] -A---+------ * ASG byref
[000142] D----+-N---- +--* LCL_VAR byref V15 tmp13
[000163] -----+------ \--* CNS_INT(h) byref 0x4205D0 static Fseq[5BA88E4D75E602A110836E9E38358016215A1533AE7CED3DFB2B8D2403F7D1C3]
New refCnts for V15: refCnt = 2, refCntWtd = 1
STMT00025 (IL 0x01E... ???)
[000203] -A---+------ * ASG byref
[000201] D------N---- +--* LCL_VAR byref V13 tmp11
[000202] ------------ \--* LCL_VAR byref V15 tmp13
New refCnts for V13: refCnt = 2, refCntWtd = 1
New refCnts for V15: refCnt = 3, refCntWtd = 1.50
STMT00026 (IL 0x01E... ???)
[000153] -A---+------ * ASG int
[000152] D----+-N---- +--* LCL_VAR int V14 tmp12
[000151] -----+------ \--* CNS_INT int 33
New refCnts for V14: refCnt = 2, refCntWtd = 1
STMT00002 (IL ???... ???)
[000210] -A---+------ * COMMA void
[000206] -A---------- +--* ASG byref
[000204] D------N---- | +--* LCL_VAR byref V08 tmp6
[000205] ------------ | \--* LCL_VAR byref V13 tmp11
[000209] -A---------- \--* ASG int
[000207] D------N---- +--* LCL_VAR int V09 tmp7
[000208] ------------ \--* LCL_VAR int V14 tmp12
New refCnts for V08: refCnt = 2, refCntWtd = 1
New refCnts for V13: refCnt = 3, refCntWtd = 1.50
New refCnts for V09: refCnt = 2, refCntWtd = 1
New refCnts for V14: refCnt = 3, refCntWtd = 1.50
STMT00003 (IL 0x024...0x02F)
[000027] ---XG+------ * RETURN int
[000025] ---XG+------ \--* COMMA ubyte
[000019] ---X-+------ +--* ARR_BOUNDS_CHECK_Rng void
[000012] -----+------ | +--* ADD int
[000010] -----+------ | | +--* LCL_VAR int V00 arg0
[000011] -----+------ | | \--* CNS_INT int -1
[000018] -----+------ | \--* CNS_INT int 33
[000212] *--X-+------ \--* IND ubyte
[000024] -----+------ \--* ADD long
[000020] -----+------ +--* CAST long <- int
[000015] -----+------ | \--* ADD int
[000013] -----+------ | +--* LCL_VAR int V00 arg0
[000014] -----+------ | \--* CNS_INT int -1
[000211] -----+------ \--* CNS_INT(h) long 0x4205D0 static
New refCnts for V00: refCnt = 3, refCntWtd = 2
New refCnts for V00: refCnt = 4, refCntWtd = 2.50
*** lvaComputeRefCounts -- implicit counts ***
New refCnts for V00: refCnt = 5, refCntWtd = 3.50
New refCnts for V00: refCnt = 6, refCntWtd = 4.50
*************** In optAddCopies()
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
D:\git\runtime3\src\coreclr\src\jit\codegencommon.cpp:1379
Assertion failed 'op2->AsIntConCommon()->ImmedValCanBeFolded(compiler, addr->OperGet())' in 'System.Drawing.KnownColorTable:GetSystemColorId(int):int' (IL size 48)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment