Created
January 15, 2020 22:10
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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