Created
April 30, 2024 02:10
-
-
Save AndyAyersMS/5c161009b027e4d146edb5032a526487 to your computer and use it in GitHub Desktop.
Jit dump for runtime 101695
This file has been truncated, but you can view the full file.
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
****** START compiling System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[] (MethodHash=ddfd2475) | |
Generating code for Unix x64 | |
OPTIONS: Tier-1 compilation | |
OPTIONS: compCodeOpt = FAST_CODE | |
OPTIONS: compDbgCode = false | |
OPTIONS: compDbgInfo = true | |
OPTIONS: compDbgEnC = false | |
OPTIONS: compProcedureSplitting = false | |
OPTIONS: compProcedureSplittingEH = false | |
OPTIONS: optimizer should use profile data | |
IL to import: | |
IL_0000 04 ldarg.2 | |
IL_0001 2d 07 brtrue.s 7 (IL_000a) | |
IL_0003 28 a7 00 00 0a call 0xA0000A7 | |
IL_0008 10 02 starg.s 0x2 | |
IL_000a 73 a8 00 00 0a newobj 0xA0000A8 | |
IL_000f 25 dup | |
IL_0010 02 ldarg.0 | |
IL_0011 6f a9 00 00 0a callvirt 0xA0000A9 | |
IL_0016 0a stloc.0 | |
IL_0017 04 ldarg.2 | |
IL_0018 73 aa 00 00 0a newobj 0xA0000AA | |
IL_001d 02 ldarg.0 | |
IL_001e 13 06 stloc.s 0x6 | |
IL_0020 25 dup | |
IL_0021 11 06 ldloc.s 0x6 | |
IL_0023 16 ldc.i4.0 | |
IL_0024 6f ab 00 00 0a callvirt 0xA0000AB | |
IL_0029 0b stloc.1 | |
IL_002a 73 ac 00 00 0a newobj 0xA0000AC | |
IL_002f 0c stloc.2 | |
IL_0030 73 ad 00 00 0a newobj 0xA0000AD | |
IL_0035 0d stloc.3 | |
IL_0036 16 ldc.i4.0 | |
IL_0037 13 07 stloc.s 0x7 | |
IL_0039 38 c1 00 00 00 br 193 (IL_00ff) | |
IL_003e 06 ldloc.0 | |
IL_003f 11 07 ldloc.s 0x7 | |
IL_0041 6f ae 00 00 0a callvirt 0xA0000AE | |
IL_0046 13 08 stloc.s 0x8 | |
IL_0048 03 ldarg.1 | |
IL_0049 11 08 ldloc.s 0x8 | |
IL_004b 6f af 00 00 0a callvirt 0xA0000AF | |
IL_0050 13 09 stloc.s 0x9 | |
IL_0052 11 09 ldloc.s 0x9 | |
IL_0054 6f b0 00 00 0a callvirt 0xA0000B0 | |
IL_0059 13 0a stloc.s 0xA | |
IL_005b 11 0a ldloc.s 0xA | |
IL_005d 2d 14 brtrue.s 20 (IL_0073) | |
IL_005f 08 ldloc.2 | |
IL_0060 14 ldnull | |
IL_0061 6f b1 00 00 0a callvirt 0xA0000B1 | |
IL_0066 09 ldloc.3 | |
IL_0067 11 07 ldloc.s 0x7 | |
IL_0069 6f b2 00 00 0a callvirt 0xA0000B2 | |
IL_006e 38 86 00 00 00 br 134 (IL_00f9) | |
IL_0073 06 ldloc.0 | |
IL_0074 6f b3 00 00 0a callvirt 0xA0000B3 | |
IL_0079 11 0a ldloc.s 0xA | |
IL_007b 28 4b 00 00 0a call 0xA00004B | |
IL_0080 8d 54 00 00 01 newarr 0x1000054 | |
IL_0085 13 0b stloc.s 0xB | |
IL_0087 11 09 ldloc.s 0x9 | |
IL_0089 6f b4 00 00 0a callvirt 0xA0000B4 | |
IL_008e 13 0c stloc.s 0xC | |
IL_0090 2b 48 br.s 72 (IL_00da) | |
IL_0092 11 0c ldloc.s 0xC | |
IL_0094 6f b5 00 00 0a callvirt 0xA0000B5 | |
IL_0099 13 0d stloc.s 0xD | |
IL_009b 07 ldloc.1 | |
IL_009c 11 0d ldloc.s 0xD | |
IL_009e 12 0e ldloca.s 0xE | |
IL_00a0 6f b6 00 00 0a callvirt 0xA0000B6 | |
IL_00a5 2d 1a brtrue.s 26 (IL_00c1) | |
IL_00a7 06 ldloc.0 | |
IL_00a8 6f b3 00 00 0a callvirt 0xA0000B3 | |
IL_00ad 13 0e stloc.s 0xE | |
IL_00af 07 ldloc.1 | |
IL_00b0 11 0d ldloc.s 0xD | |
IL_00b2 11 0e ldloc.s 0xE | |
IL_00b4 6f b7 00 00 0a callvirt 0xA0000B7 | |
IL_00b9 06 ldloc.0 | |
IL_00ba 11 0d ldloc.s 0xD | |
IL_00bc 6f a9 00 00 0a callvirt 0xA0000A9 | |
IL_00c1 11 0e ldloc.s 0xE | |
IL_00c3 11 0b ldloc.s 0xB | |
IL_00c5 8e ldlen | |
IL_00c6 69 conv.i4 | |
IL_00c7 32 0b blt.s 11 (IL_00d4) | |
IL_00c9 12 0b ldloca.s 0xB | |
IL_00cb 11 0e ldloc.s 0xE | |
IL_00cd 17 ldc.i4.1 | |
IL_00ce 58 add | |
IL_00cf 28 12 00 00 2b call 0x2B000012 | |
IL_00d4 11 0b ldloc.s 0xB | |
IL_00d6 11 0e ldloc.s 0xE | |
IL_00d8 17 ldc.i4.1 | |
IL_00d9 9c stelem.i1 | |
IL_00da 11 0c ldloc.s 0xC | |
IL_00dc 6f b8 00 00 0a callvirt 0xA0000B8 | |
IL_00e1 2d af brtrue.s -81 (IL_0092) | |
IL_00e3 de 0c leave.s 12 (IL_00f1) | |
IL_00e5 11 0c ldloc.s 0xC | |
IL_00e7 2c 07 brfalse.s 7 (IL_00f0) | |
IL_00e9 11 0c ldloc.s 0xC | |
IL_00eb 6f 7c 00 00 0a callvirt 0xA00007C | |
IL_00f0 dc endfinally | |
IL_00f1 08 ldloc.2 | |
IL_00f2 11 0b ldloc.s 0xB | |
IL_00f4 6f b1 00 00 0a callvirt 0xA0000B1 | |
IL_00f9 11 07 ldloc.s 0x7 | |
IL_00fb 17 ldc.i4.1 | |
IL_00fc 58 add | |
IL_00fd 13 07 stloc.s 0x7 | |
IL_00ff 11 07 ldloc.s 0x7 | |
IL_0101 06 ldloc.0 | |
IL_0102 6f b3 00 00 0a callvirt 0xA0000B3 | |
IL_0107 3f 32 ff ff ff blt -206 (IL_003e) | |
IL_010c 06 ldloc.0 | |
IL_010d 6f b3 00 00 0a callvirt 0xA0000B3 | |
IL_0112 8d 0f 00 00 1b newarr 0x1B00000F | |
IL_0117 13 04 stloc.s 0x4 | |
IL_0119 11 04 ldloc.s 0x4 | |
IL_011b 8e ldlen | |
IL_011c 69 conv.i4 | |
IL_011d 13 05 stloc.s 0x5 | |
IL_011f 09 ldloc.3 | |
IL_0120 6f b9 00 00 0a callvirt 0xA0000B9 | |
IL_0125 13 0f stloc.s 0xF | |
IL_0127 11 04 ldloc.s 0x4 | |
IL_0129 11 05 ldloc.s 0x5 | |
IL_012b 17 ldc.i4.1 | |
IL_012c 59 sub | |
IL_012d 25 dup | |
IL_012e 13 05 stloc.s 0x5 | |
IL_0130 06 ldloc.0 | |
IL_0131 11 0f ldloc.s 0xF | |
IL_0133 6f ae 00 00 0a callvirt 0xA0000AE | |
IL_0138 a4 0f 00 00 1b stelem 0x1B00000F | |
IL_013d 16 ldc.i4.0 | |
IL_013e 13 10 stloc.s 0x10 | |
IL_0140 2b 41 br.s 65 (IL_0183) | |
IL_0142 08 ldloc.2 | |
IL_0143 11 10 ldloc.s 0x10 | |
IL_0145 6f ba 00 00 0a callvirt 0xA0000BA | |
IL_014a 13 11 stloc.s 0x11 | |
IL_014c 11 11 ldloc.s 0x11 | |
IL_014e 2c 2d brfalse.s 45 (IL_017d) | |
IL_0150 11 0f ldloc.s 0xF | |
IL_0152 11 11 ldloc.s 0x11 | |
IL_0154 8e ldlen | |
IL_0155 69 conv.i4 | |
IL_0156 2f 25 bge.s 37 (IL_017d) | |
IL_0158 11 11 ldloc.s 0x11 | |
IL_015a 11 0f ldloc.s 0xF | |
IL_015c 91 ldelem.u1 | |
IL_015d 2c 1e brfalse.s 30 (IL_017d) | |
IL_015f 11 11 ldloc.s 0x11 | |
IL_0161 11 0f ldloc.s 0xF | |
IL_0163 16 ldc.i4.0 | |
IL_0164 9c stelem.i1 | |
IL_0165 11 11 ldloc.s 0x11 | |
IL_0167 28 13 00 00 2b call 0x2B000013 | |
IL_016c 17 ldc.i4.1 | |
IL_016d 28 14 00 00 2b call 0x2B000014 | |
IL_0172 15 ldc.i4.m1 | |
IL_0173 33 08 bne.un.s 8 (IL_017d) | |
IL_0175 09 ldloc.3 | |
IL_0176 11 10 ldloc.s 0x10 | |
IL_0178 6f b2 00 00 0a callvirt 0xA0000B2 | |
IL_017d 11 10 ldloc.s 0x10 | |
IL_017f 17 ldc.i4.1 | |
IL_0180 58 add | |
IL_0181 13 10 stloc.s 0x10 | |
IL_0183 11 10 ldloc.s 0x10 | |
IL_0185 08 ldloc.2 | |
IL_0186 6f bd 00 00 0a callvirt 0xA0000BD | |
IL_018b 32 b5 blt.s -75 (IL_0142) | |
IL_018d 09 ldloc.3 | |
IL_018e 6f be 00 00 0a callvirt 0xA0000BE | |
IL_0193 16 ldc.i4.0 | |
IL_0194 30 89 bgt.s -119 (IL_011f) | |
IL_0196 11 04 ldloc.s 0x4 | |
IL_0198 2a ret | |
'GenCtxt' passed in register rdi | |
lvaSetClass: setting class for V01 to (0x7f4875ec5f70) System.__Canon | |
Arg #1 passed in register(s) rsi | |
lvaSetClass: setting class for V02 to (0x7f487636c658) System.Func`2[System.__Canon,System.__Canon] | |
Arg #2 passed in register(s) rdx | |
lvaSetClass: setting class for V03 to (0x7f4875f8acb0) System.Collections.Generic.IEqualityComparer`1[System.__Canon] | |
Arg #3 passed in register(s) rcx | |
Parameter V00 ABI info: [00..08) reg rdi | |
Parameter V01 ABI info: [00..08) reg rsi | |
Parameter V02 ABI info: [00..08) reg rdx | |
Parameter V03 ABI info: [00..08) reg rcx | |
lvaSetClass: setting class for V04 to (0x7f4876028ee8) System.Collections.Generic.List`1[System.__Canon] | |
lvaSetClass: setting class for V05 to (0x7f487806e338) System.Collections.Generic.Dictionary`2[System.__Canon,int] | |
lvaSetClass: setting class for V06 to (0x7f487dd16108) System.Collections.Generic.List`1[ubyte[]] | |
lvaSetClass: setting class for V07 to (0x7f487dd15f40) System.Collections.Generic.Queue`1[int] | |
lvaSetClass: setting class for V08 to (0x7f487709c3f0) System.__Canon[] | |
lvaSetClass: setting class for V10 to (0x7f4875ec5f70) System.__Canon | |
lvaSetClass: setting class for V12 to (0x7f4875ec5f70) System.__Canon | |
lvaSetClass: setting class for V13 to (0x7f4876029890) System.Collections.Generic.ICollection`1[System.__Canon] | |
lvaSetClass: setting class for V15 to (0x7f48767c27d0) ubyte[] | |
lvaSetClass: setting class for V16 to (0x7f48764cb588) System.Collections.Generic.IEnumerator`1[System.__Canon] | |
lvaSetClass: setting class for V17 to (0x7f4875ec5f70) System.__Canon | |
lvaSetClass: setting class for V21 to (0x7f48767c27d0) ubyte[] | |
lvaGrabTemp returning 22 (V22 loc18) (a long lifetime temp) called for OutgoingArgSpace. | |
Local V22 should not be enregistered because: it is address exposed | |
; Initial local variable assignments | |
; | |
; V00 TypeCtx long | |
; V01 arg0 ref class-hnd <System.__Canon> | |
; V02 arg1 ref class-hnd <System.Func`2[System.__Canon,System.__Canon]> | |
; V03 arg2 ref class-hnd <System.Collections.Generic.IEqualityComparer`1[System.__Canon]> | |
; V04 loc0 ref class-hnd <System.Collections.Generic.List`1[System.__Canon]> | |
; V05 loc1 ref class-hnd <System.Collections.Generic.Dictionary`2[System.__Canon,int]> | |
; V06 loc2 ref class-hnd <System.Collections.Generic.List`1[ubyte[]]> | |
; V07 loc3 ref class-hnd <System.Collections.Generic.Queue`1[int]> | |
; V08 loc4 ref class-hnd <System.__Canon[]> | |
; V09 loc5 int | |
; V10 loc6 ref class-hnd <System.__Canon> | |
; V11 loc7 int | |
; V12 loc8 ref class-hnd <System.__Canon> | |
; V13 loc9 ref class-hnd <System.Collections.Generic.ICollection`1[System.__Canon]> | |
; V14 loc10 int | |
; V15 loc11 ref class-hnd <ubyte[]> | |
; V16 loc12 ref class-hnd <System.Collections.Generic.IEnumerator`1[System.__Canon]> | |
; V17 loc13 ref class-hnd <System.__Canon> | |
; V18 loc14 int | |
; V19 loc15 int | |
; V20 loc16 int | |
; V21 loc17 ref class-hnd <ubyte[]> | |
; V22 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace" | |
*************** In compInitDebuggingInfo() for System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[] | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 22 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 TypeCtx 000h 199h | |
1: 01h 01h V01 arg0 000h 199h | |
2: 02h 02h V02 arg1 000h 199h | |
3: 03h 03h V03 arg2 000h 199h | |
4: 04h 04h V04 loc0 000h 199h | |
5: 05h 05h V05 loc1 000h 199h | |
6: 06h 06h V06 loc2 000h 199h | |
7: 07h 07h V07 loc3 000h 199h | |
8: 08h 08h V08 loc4 000h 199h | |
9: 09h 09h V09 loc5 000h 199h | |
10: 0Ah 0Ah V10 loc6 000h 199h | |
11: 0Bh 0Bh V11 loc7 000h 199h | |
12: 0Ch 0Ch V12 loc8 000h 199h | |
13: 0Dh 0Dh V13 loc9 000h 199h | |
14: 0Eh 0Eh V14 loc10 000h 199h | |
15: 0Fh 0Fh V15 loc11 000h 199h | |
16: 10h 10h V16 loc12 000h 199h | |
17: 11h 11h V17 loc13 000h 199h | |
18: 12h 12h V18 loc14 000h 199h | |
19: 13h 13h V19 loc15 000h 199h | |
20: 14h 14h V20 loc16 000h 199h | |
21: 15h 15h V21 loc17 000h 199h | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[] | |
Marked V04 as a single def local | |
Marked V05 as a single def local | |
Marked V06 as a single def local | |
Marked V07 as a single def local | |
Marked V08 as a single def local | |
Marked V10 as a single def local | |
Marked V12 as a single def local | |
Marked V13 as a single def local | |
Marked V14 as a single def local | |
Marked V16 as a single def local | |
Marked V17 as a single def local | |
Marked V19 as a single def local | |
Marked V21 as a single def local | |
Jump targets: | |
IL_000a | |
IL_003e | |
IL_0073 | |
IL_0090 | |
IL_0092 | |
IL_00c1 | |
IL_00d4 | |
IL_00da | |
IL_00e5 | |
IL_00f0 | |
IL_00f1 | |
IL_00f9 | |
IL_00ff | |
IL_011f | |
IL_0142 | |
IL_017d | |
IL_0183 | |
New Basic Block BB01 [0000] created. | |
BB01 [0000] [000..003) | |
New Basic Block BB02 [0001] created. | |
BB02 [0001] [003..00A) | |
New Basic Block BB03 [0002] created. | |
BB03 [0002] [00A..03E) | |
New Basic Block BB04 [0003] created. | |
BB04 [0003] [03E..05F) | |
New Basic Block BB05 [0004] created. | |
BB05 [0004] [05F..073) | |
New Basic Block BB06 [0005] created. | |
BB06 [0005] [073..090) | |
New Basic Block BB07 [0006] created. | |
BB07 [0006] [090..092) | |
New Basic Block BB08 [0007] created. | |
BB08 [0007] [092..0A7) | |
New Basic Block BB09 [0008] created. | |
BB09 [0008] [0A7..0C1) | |
New Basic Block BB10 [0009] created. | |
BB10 [0009] [0C1..0C9) | |
New Basic Block BB11 [0010] created. | |
BB11 [0010] [0C9..0D4) | |
New Basic Block BB12 [0011] created. | |
BB12 [0011] [0D4..0DA) | |
New Basic Block BB13 [0012] created. | |
BB13 [0012] [0DA..0E3) | |
New Basic Block BB14 [0013] created. | |
BB14 [0013] [0E3..0E5) | |
New Basic Block BB15 [0014] created. | |
BB15 [0014] [0E5..0E9) | |
New Basic Block BB16 [0015] created. | |
BB16 [0015] [0E9..0F0) | |
New Basic Block BB17 [0016] created. | |
BB17 [0016] [0F0..0F1) | |
New Basic Block BB18 [0017] created. | |
BB18 [0017] [0F1..0F9) | |
New Basic Block BB19 [0018] created. | |
BB19 [0018] [0F9..0FF) | |
New Basic Block BB20 [0019] created. | |
BB20 [0019] [0FF..10C) | |
New Basic Block BB21 [0020] created. | |
BB21 [0020] [10C..11F) | |
New Basic Block BB22 [0021] created. | |
BB22 [0021] [11F..142) | |
New Basic Block BB23 [0022] created. | |
BB23 [0022] [142..150) | |
New Basic Block BB24 [0023] created. | |
BB24 [0023] [150..158) | |
New Basic Block BB25 [0024] created. | |
BB25 [0024] [158..15F) | |
New Basic Block BB26 [0025] created. | |
BB26 [0025] [15F..175) | |
New Basic Block BB27 [0026] created. | |
BB27 [0026] [175..17D) | |
New Basic Block BB28 [0027] created. | |
BB28 [0027] [17D..183) | |
New Basic Block BB29 [0028] created. | |
BB29 [0028] [183..18D) | |
New Basic Block BB30 [0029] created. | |
BB30 [0029] [18D..196) | |
New Basic Block BB31 [0030] created. | |
BB31 [0030] [196..199) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
setting likelihood of BB03 -> BB20 to 1 | |
setting likelihood of BB04 -> BB06 to 0.5 | |
setting likelihood of BB04 -> BB05 to 0.5 | |
setting likelihood of BB05 -> BB19 to 1 | |
setting likelihood of BB06 -> BB07 to 1 | |
setting likelihood of BB07 -> BB13 to 1 | |
setting likelihood of BB08 -> BB10 to 0.5 | |
setting likelihood of BB08 -> BB09 to 0.5 | |
setting likelihood of BB09 -> BB10 to 1 | |
setting likelihood of BB10 -> BB12 to 0.5 | |
setting likelihood of BB10 -> BB11 to 0.5 | |
setting likelihood of BB11 -> BB12 to 1 | |
setting likelihood of BB12 -> BB13 to 1 | |
setting likelihood of BB13 -> BB08 to 0.5 | |
setting likelihood of BB13 -> BB14 to 0.5 | |
setting likelihood of BB14 -> BB18 to 1 | |
setting likelihood of BB15 -> BB17 to 0.5 | |
setting likelihood of BB15 -> BB16 to 0.5 | |
setting likelihood of BB16 -> BB17 to 1 | |
setting likelihood of BB18 -> BB19 to 1 | |
setting likelihood of BB19 -> BB20 to 1 | |
setting likelihood of BB20 -> BB04 to 0.5 | |
setting likelihood of BB20 -> BB21 to 0.5 | |
setting likelihood of BB21 -> BB22 to 1 | |
setting likelihood of BB22 -> BB29 to 1 | |
setting likelihood of BB23 -> BB28 to 0.5 | |
setting likelihood of BB23 -> BB24 to 0.5 | |
setting likelihood of BB24 -> BB28 to 0.5 | |
setting likelihood of BB24 -> BB25 to 0.5 | |
setting likelihood of BB25 -> BB28 to 0.5 | |
setting likelihood of BB25 -> BB26 to 0.5 | |
setting likelihood of BB26 -> BB28 to 0.5 | |
setting likelihood of BB26 -> BB27 to 0.5 | |
setting likelihood of BB27 -> BB28 to 1 | |
setting likelihood of BB28 -> BB29 to 1 | |
setting likelihood of BB29 -> BB23 to 0.5 | |
setting likelihood of BB29 -> BB30 to 0.5 | |
setting likelihood of BB30 -> BB22 to 0.5 | |
setting likelihood of BB30 -> BB31 to 0.5 | |
EH clause #0: | |
Flags: 0x2 (finally) | |
TryOffset: 0x90 | |
TryLength: 0x55 | |
HandlerOffset: 0xe5 | |
HandlerLength: 0xc | |
ClassToken: 0x0 | |
*************** After fgFindBasicBlocks() has created the EH table | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
*************** In fgNormalizeEH() | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 100 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0001] 1 BB01 100 [003..00A)-> BB03(1) (always) | |
BB03 [0002] 2 BB01,BB02 100 [00A..03E)-> BB20(1) (always) | |
BB04 [0003] 1 BB20 100 [03E..05F)-> BB06(0.5),BB05(0.5) ( cond ) bwd bwd-target | |
BB05 [0004] 1 BB04 100 [05F..073)-> BB19(1) (always) bwd | |
BB06 [0005] 1 BB04 100 [073..090)-> BB07(1) (always) bwd | |
BB07 [0006] 1 0 BB06 100 [090..092)-> BB13(1) (always) T0 try { keep bwd | |
BB08 [0007] 1 0 BB13 100 [092..0A7)-> BB10(0.5),BB09(0.5) ( cond ) T0 bwd bwd-target | |
BB09 [0008] 1 0 BB08 100 [0A7..0C1)-> BB10(1) (always) T0 bwd | |
BB10 [0009] 2 0 BB08,BB09 100 [0C1..0C9)-> BB12(0.5),BB11(0.5) ( cond ) T0 bwd | |
BB11 [0010] 1 0 BB10 100 [0C9..0D4)-> BB12(1) (always) T0 bwd | |
BB12 [0011] 2 0 BB10,BB11 100 [0D4..0DA)-> BB13(1) (always) T0 bwd | |
BB13 [0012] 2 0 BB07,BB12 100 [0DA..0E3)-> BB08(0.5),BB14(0.5) ( cond ) T0 bwd bwd-src | |
BB14 [0013] 1 0 BB13 100 [0E3..0E5)-> BB18(1) (leave ) T0 } bwd | |
BB15 [0014] 1 0 100 [0E5..0E9)-> BB17(0.5),BB16(0.5) ( cond ) H0 finally { keep bwd | |
BB16 [0015] 1 0 BB15 100 [0E9..0F0)-> BB17(1) (always) H0 bwd | |
BB17 [0016] 2 0 BB15,BB16 100 [0F0..0F1)-> ???? (finret) H0 } bwd | |
BB18 [0017] 1 BB14 100 [0F1..0F9)-> BB19(1) (always) bwd | |
BB19 [0018] 2 BB05,BB18 100 [0F9..0FF)-> BB20(1) (always) bwd | |
BB20 [0019] 2 BB03,BB19 100 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) bwd bwd-src | |
BB21 [0020] 1 BB20 100 [10C..11F)-> BB22(1) (always) | |
BB22 [0021] 2 BB21,BB30 100 [11F..142)-> BB29(1) (always) bwd bwd-target | |
BB23 [0022] 1 BB29 100 [142..150)-> BB28(0.5),BB24(0.5) ( cond ) bwd bwd-target | |
BB24 [0023] 1 BB23 100 [150..158)-> BB28(0.5),BB25(0.5) ( cond ) bwd | |
BB25 [0024] 1 BB24 100 [158..15F)-> BB28(0.5),BB26(0.5) ( cond ) bwd | |
BB26 [0025] 1 BB25 100 [15F..175)-> BB28(0.5),BB27(0.5) ( cond ) bwd | |
BB27 [0026] 1 BB26 100 [175..17D)-> BB28(1) (always) bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 100 [17D..183)-> BB29(1) (always) bwd | |
BB29 [0028] 2 BB22,BB28 100 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) bwd bwd-src | |
BB30 [0029] 1 BB29 100 [18D..196)-> BB22(0.5),BB31(0.5) ( cond ) bwd bwd-src | |
BB31 [0030] 1 BB30 100 [196..199) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
No EH normalization performed. | |
IL Code Size,Instr 409, 173, Basic Block count 31, Local Variable Num,Ref count 23, 87 for method System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[] | |
OPTIONS: opts.MinOpts() == false | |
Basic block list for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 100 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0001] 1 BB01 100 [003..00A)-> BB03(1) (always) | |
BB03 [0002] 2 BB01,BB02 100 [00A..03E)-> BB20(1) (always) | |
BB04 [0003] 1 BB20 100 [03E..05F)-> BB06(0.5),BB05(0.5) ( cond ) bwd bwd-target | |
BB05 [0004] 1 BB04 100 [05F..073)-> BB19(1) (always) bwd | |
BB06 [0005] 1 BB04 100 [073..090)-> BB07(1) (always) bwd | |
BB07 [0006] 1 0 BB06 100 [090..092)-> BB13(1) (always) T0 try { keep bwd | |
BB08 [0007] 1 0 BB13 100 [092..0A7)-> BB10(0.5),BB09(0.5) ( cond ) T0 bwd bwd-target | |
BB09 [0008] 1 0 BB08 100 [0A7..0C1)-> BB10(1) (always) T0 bwd | |
BB10 [0009] 2 0 BB08,BB09 100 [0C1..0C9)-> BB12(0.5),BB11(0.5) ( cond ) T0 bwd | |
BB11 [0010] 1 0 BB10 100 [0C9..0D4)-> BB12(1) (always) T0 bwd | |
BB12 [0011] 2 0 BB10,BB11 100 [0D4..0DA)-> BB13(1) (always) T0 bwd | |
BB13 [0012] 2 0 BB07,BB12 100 [0DA..0E3)-> BB08(0.5),BB14(0.5) ( cond ) T0 bwd bwd-src | |
BB14 [0013] 1 0 BB13 100 [0E3..0E5)-> BB18(1) (leave ) T0 } bwd | |
BB15 [0014] 1 0 100 [0E5..0E9)-> BB17(0.5),BB16(0.5) ( cond ) H0 finally { keep bwd | |
BB16 [0015] 1 0 BB15 100 [0E9..0F0)-> BB17(1) (always) H0 bwd | |
BB17 [0016] 2 0 BB15,BB16 100 [0F0..0F1)-> ???? (finret) H0 } bwd | |
BB18 [0017] 1 BB14 100 [0F1..0F9)-> BB19(1) (always) bwd | |
BB19 [0018] 2 BB05,BB18 100 [0F9..0FF)-> BB20(1) (always) bwd | |
BB20 [0019] 2 BB03,BB19 100 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) bwd bwd-src | |
BB21 [0020] 1 BB20 100 [10C..11F)-> BB22(1) (always) | |
BB22 [0021] 2 BB21,BB30 100 [11F..142)-> BB29(1) (always) bwd bwd-target | |
BB23 [0022] 1 BB29 100 [142..150)-> BB28(0.5),BB24(0.5) ( cond ) bwd bwd-target | |
BB24 [0023] 1 BB23 100 [150..158)-> BB28(0.5),BB25(0.5) ( cond ) bwd | |
BB25 [0024] 1 BB24 100 [158..15F)-> BB28(0.5),BB26(0.5) ( cond ) bwd | |
BB26 [0025] 1 BB25 100 [15F..175)-> BB28(0.5),BB27(0.5) ( cond ) bwd | |
BB27 [0026] 1 BB26 100 [175..17D)-> BB28(1) (always) bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 100 [17D..183)-> BB29(1) (always) bwd | |
BB29 [0028] 2 BB22,BB28 100 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) bwd bwd-src | |
BB30 [0029] 1 BB29 100 [18D..196)-> BB22(0.5),BB31(0.5) ( cond ) bwd bwd-src | |
BB31 [0030] 1 BB30 100 [196..199) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Starting PHASE Pre-import | |
*************** Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 100 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0001] 1 BB01 100 [003..00A)-> BB03(1) (always) | |
BB03 [0002] 2 BB01,BB02 100 [00A..03E)-> BB20(1) (always) | |
BB04 [0003] 1 BB20 100 [03E..05F)-> BB06(0.5),BB05(0.5) ( cond ) bwd bwd-target | |
BB05 [0004] 1 BB04 100 [05F..073)-> BB19(1) (always) bwd | |
BB06 [0005] 1 BB04 100 [073..090)-> BB07(1) (always) bwd | |
BB07 [0006] 1 0 BB06 100 [090..092)-> BB13(1) (always) T0 try { keep bwd | |
BB08 [0007] 1 0 BB13 100 [092..0A7)-> BB10(0.5),BB09(0.5) ( cond ) T0 bwd bwd-target | |
BB09 [0008] 1 0 BB08 100 [0A7..0C1)-> BB10(1) (always) T0 bwd | |
BB10 [0009] 2 0 BB08,BB09 100 [0C1..0C9)-> BB12(0.5),BB11(0.5) ( cond ) T0 bwd | |
BB11 [0010] 1 0 BB10 100 [0C9..0D4)-> BB12(1) (always) T0 bwd | |
BB12 [0011] 2 0 BB10,BB11 100 [0D4..0DA)-> BB13(1) (always) T0 bwd | |
BB13 [0012] 2 0 BB07,BB12 100 [0DA..0E3)-> BB08(0.5),BB14(0.5) ( cond ) T0 bwd bwd-src | |
BB14 [0013] 1 0 BB13 100 [0E3..0E5)-> BB18(1) (leave ) T0 } bwd | |
BB15 [0014] 1 0 100 [0E5..0E9)-> BB17(0.5),BB16(0.5) ( cond ) H0 finally { keep bwd | |
BB16 [0015] 1 0 BB15 100 [0E9..0F0)-> BB17(1) (always) H0 bwd | |
BB17 [0016] 2 0 BB15,BB16 100 [0F0..0F1)-> ???? (finret) H0 } bwd | |
BB18 [0017] 1 BB14 100 [0F1..0F9)-> BB19(1) (always) bwd | |
BB19 [0018] 2 BB05,BB18 100 [0F9..0FF)-> BB20(1) (always) bwd | |
BB20 [0019] 2 BB03,BB19 100 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) bwd bwd-src | |
BB21 [0020] 1 BB20 100 [10C..11F)-> BB22(1) (always) | |
BB22 [0021] 2 BB21,BB30 100 [11F..142)-> BB29(1) (always) bwd bwd-target | |
BB23 [0022] 1 BB29 100 [142..150)-> BB28(0.5),BB24(0.5) ( cond ) bwd bwd-target | |
BB24 [0023] 1 BB23 100 [150..158)-> BB28(0.5),BB25(0.5) ( cond ) bwd | |
BB25 [0024] 1 BB24 100 [158..15F)-> BB28(0.5),BB26(0.5) ( cond ) bwd | |
BB26 [0025] 1 BB25 100 [15F..175)-> BB28(0.5),BB27(0.5) ( cond ) bwd | |
BB27 [0026] 1 BB26 100 [175..17D)-> BB28(1) (always) bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 100 [17D..183)-> BB29(1) (always) bwd | |
BB29 [0028] 2 BB22,BB28 100 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) bwd bwd-src | |
BB30 [0029] 1 BB29 100 [18D..196)-> BB22(0.5),BB31(0.5) ( cond ) bwd bwd-src | |
BB31 [0030] 1 BB30 100 [196..199) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0001] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0002] [00A..03E) -> BB20(1) (always), preds={BB01,BB02} succs={BB20} | |
------------ BB04 [0003] [03E..05F) -> BB06(0.5),BB05(0.5) (cond), preds={BB20} succs={BB05,BB06} | |
------------ BB05 [0004] [05F..073) -> BB19(1) (always), preds={BB04} succs={BB19} | |
------------ BB06 [0005] [073..090) -> BB07(1) (always), preds={BB04} succs={BB07} | |
------------ BB07 [0006] [090..092) -> BB13(1) (always), preds={BB06} succs={BB13} | |
------------ BB08 [0007] [092..0A7) -> BB10(0.5),BB09(0.5) (cond), preds={BB13} succs={BB09,BB10} | |
------------ BB09 [0008] [0A7..0C1) -> BB10(1) (always), preds={BB08} succs={BB10} | |
------------ BB10 [0009] [0C1..0C9) -> BB12(0.5),BB11(0.5) (cond), preds={BB08,BB09} succs={BB11,BB12} | |
------------ BB11 [0010] [0C9..0D4) -> BB12(1) (always), preds={BB10} succs={BB12} | |
------------ BB12 [0011] [0D4..0DA) -> BB13(1) (always), preds={BB10,BB11} succs={BB13} | |
------------ BB13 [0012] [0DA..0E3) -> BB08(0.5),BB14(0.5) (cond), preds={BB07,BB12} succs={BB14,BB08} | |
------------ BB14 [0013] [0E3..0E5) -> BB18(1) (leave), preds={BB13} succs={BB18} | |
------------ BB15 [0014] [0E5..0E9) -> BB17(0.5),BB16(0.5) (cond), preds={} succs={BB16,BB17} | |
------------ BB16 [0015] [0E9..0F0) -> BB17(1) (always), preds={BB15} succs={BB17} | |
------------ BB17 [0016] [0F0..0F1) -> ???? (finret), preds={BB15,BB16} succs={} | |
------------ BB18 [0017] [0F1..0F9) -> BB19(1) (always), preds={BB14} succs={BB19} | |
------------ BB19 [0018] [0F9..0FF) -> BB20(1) (always), preds={BB05,BB18} succs={BB20} | |
------------ BB20 [0019] [0FF..10C) -> BB04(0.5),BB21(0.5) (cond), preds={BB03,BB19} succs={BB21,BB04} | |
------------ BB21 [0020] [10C..11F) -> BB22(1) (always), preds={BB20} succs={BB22} | |
------------ BB22 [0021] [11F..142) -> BB29(1) (always), preds={BB21,BB30} succs={BB29} | |
------------ BB23 [0022] [142..150) -> BB28(0.5),BB24(0.5) (cond), preds={BB29} succs={BB24,BB28} | |
------------ BB24 [0023] [150..158) -> BB28(0.5),BB25(0.5) (cond), preds={BB23} succs={BB25,BB28} | |
------------ BB25 [0024] [158..15F) -> BB28(0.5),BB26(0.5) (cond), preds={BB24} succs={BB26,BB28} | |
------------ BB26 [0025] [15F..175) -> BB28(0.5),BB27(0.5) (cond), preds={BB25} succs={BB27,BB28} | |
------------ BB27 [0026] [175..17D) -> BB28(1) (always), preds={BB26} succs={BB28} | |
------------ BB28 [0027] [17D..183) -> BB29(1) (always), preds={BB23,BB24,BB25,BB26,BB27} succs={BB29} | |
------------ BB29 [0028] [183..18D) -> BB23(0.5),BB30(0.5) (cond), preds={BB22,BB28} succs={BB30,BB23} | |
------------ BB30 [0029] [18D..196) -> BB22(0.5),BB31(0.5) (cond), preds={BB29} succs={BB31,BB22} | |
------------ BB31 [0030] [196..199) (return), preds={BB30} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Starting PHASE Profile instrumentation prep | |
Using edge profiling | |
EfficientEdgeCountInstrumentor: preparing for instrumentation | |
New BlockSet epoch 1, # of blocks (including unused BB00): 32, bitset array size: 1 (short) | |
[0] New probe for BB30 -> BB22 [edge] | |
[1] New probe for BB31 -> BB01 [source] | |
[2] New probe for BB28 -> BB29 [source] | |
[3] New probe for BB24 -> BB28 [edge] | |
[4] New probe for BB25 -> BB28 [edge] | |
[5] New probe for BB26 -> BB28 [edge] | |
[6] New probe for BB27 -> BB28 [source] | |
[7] New probe for BB19 -> BB20 [source] | |
[8] New probe for BB18 -> BB19 [source] | |
[9] New probe for BB12 -> BB13 [source] | |
[10] New probe for BB11 -> BB12 [source] | |
[11] New probe for BB09 -> BB10 [source] | |
[12] New probe for BB02 -> BB03 [source] | |
[13] New probe for BB17 -> BB15 [source] | |
[14] New probe for BB16 -> BB17 [source] | |
31 blocks, 15 probes (4 on critical edges) | |
*************** Finishing PHASE Profile instrumentation prep [no changes] | |
*************** Starting PHASE Profile incorporation | |
Have Static PGO: 15 schema records (schema at 0x7f07c42ccef0, data at 0x7f07c42cceb0) | |
Profile summary: 1 runs, 0 block probes, 15 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 2 | |
... adding known edge BB09 -> BB10: weight 0 | |
... adding known edge BB11 -> BB12: weight 0 | |
... adding known edge BB12 -> BB13: weight 0 | |
... adding known edge BB16 -> BB17: weight 0 | |
... adding known edge BB17 -> BB15: weight 0 | |
... adding known edge BB18 -> BB19: weight 0 | |
... adding known edge BB19 -> BB20: weight 2 | |
... adding known edge BB27 -> BB28: weight 0 | |
... adding known edge BB28 -> BB29: weight 2 | |
... adding known edge BB31 -> BB01: weight 2 | |
... adding known edge BB30 -> BB22: weight 0 | |
... adding known edge BB26 -> BB28: weight 0 | |
... adding known edge BB25 -> BB28: weight 0 | |
... adding known edge BB24 -> BB28: weight 0 | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB03 -> BB20 | |
... unknown edge BB20 -> BB04 | |
... unknown edge BB20 -> BB21 | |
... unknown edge BB21 -> BB22 | |
... unknown edge BB22 -> BB29 | |
... unknown edge BB29 -> BB23 | |
... unknown edge BB29 -> BB30 | |
... unknown edge BB30 -> BB31 | |
... known edge BB30 -> BB22 | |
... pseudo edge BB31 -> BB01 | |
... unknown edge BB23 -> BB24 | |
... unknown edge BB23 -> BB28 | |
... known edge BB28 -> BB29 | |
... unknown edge BB24 -> BB25 | |
... known edge BB24 -> BB28 | |
... unknown edge BB25 -> BB26 | |
... known edge BB25 -> BB28 | |
... unknown edge BB26 -> BB27 | |
... known edge BB26 -> BB28 | |
... known edge BB27 -> BB28 | |
... unknown edge BB04 -> BB06 | |
... unknown edge BB04 -> BB05 | |
... unknown edge BB05 -> BB19 | |
... known edge BB19 -> BB20 | |
... unknown edge BB06 -> BB07 | |
... unknown edge BB07 -> BB13 | |
... unknown edge BB13 -> BB08 | |
... unknown edge BB13 -> BB14 | |
... unknown edge BB14 -> BB18 | |
... known edge BB18 -> BB19 | |
... unknown edge BB08 -> BB09 | |
... unknown edge BB08 -> BB10 | |
... unknown edge BB10 -> BB11 | |
... unknown edge BB10 -> BB12 | |
... known edge BB12 -> BB13 | |
... known edge BB11 -> BB12 | |
... known edge BB09 -> BB10 | |
... known edge BB02 -> BB03 | |
... unknown edge BB15 -> BB16 | |
... unknown edge BB15 -> BB17 | |
... pseudo edge BB17 -> BB15 | |
... known edge BB16 -> BB17 | |
Solver: 31 blocks, 31 unknown; 44 edges, 29 unknown, 0 zero | |
Pass [1]: 31 unknown blocks, 29 unknown edges | |
BB31: 1 incoming unknown, 0 outgoing unknown | |
BB31: all outgoing edge weights known, summing... | |
BB31 -> BB01 has weight 2 | |
BB31: all outgoing edge weights known, sum is 2 | |
BB30 -> BB31: target block weight and all other incoming edge weights known, so weight is 2 | |
BB30: 1 incoming unknown, 0 outgoing unknown | |
BB30: all outgoing edge weights known, summing... | |
BB30 -> BB22 has weight 0 | |
BB30 -> BB31 has weight 2 | |
BB30: all outgoing edge weights known, sum is 2 | |
BB29 -> BB30: target block weight and all other incoming edge weights known, so weight is 2 | |
BB29: 1 incoming unknown, 1 outgoing unknown | |
BB28: 1 incoming unknown, 0 outgoing unknown | |
BB28: all outgoing edge weights known, summing... | |
BB28 -> BB29 has weight 2 | |
BB28: all outgoing edge weights known, sum is 2 | |
BB23 -> BB28: target block weight and all other incoming edge weights known, so weight is 2 | |
BB27: 1 incoming unknown, 0 outgoing unknown | |
BB27: all outgoing edge weights known, summing... | |
BB27 -> BB28 has weight 0 | |
BB27: all outgoing edge weights known, sum is 0 | |
BB26 -> BB27: target block weight and all other incoming edge weights known, so weight is 0 | |
BB26: 1 incoming unknown, 0 outgoing unknown | |
BB26: all outgoing edge weights known, summing... | |
BB26 -> BB28 has weight 0 | |
BB26 -> BB27 has weight 0 | |
BB26: all outgoing edge weights known, sum is 0 | |
BB25 -> BB26: target block weight and all other incoming edge weights known, so weight is 0 | |
BB25: 1 incoming unknown, 0 outgoing unknown | |
BB25: all outgoing edge weights known, summing... | |
BB25 -> BB28 has weight 0 | |
BB25 -> BB26 has weight 0 | |
BB25: all outgoing edge weights known, sum is 0 | |
BB24 -> BB25: target block weight and all other incoming edge weights known, so weight is 0 | |
BB24: 1 incoming unknown, 0 outgoing unknown | |
BB24: all outgoing edge weights known, summing... | |
BB24 -> BB28 has weight 0 | |
BB24 -> BB25 has weight 0 | |
BB24: all outgoing edge weights known, sum is 0 | |
BB23 -> BB24: target block weight and all other incoming edge weights known, so weight is 0 | |
BB23: 1 incoming unknown, 0 outgoing unknown | |
BB23: all outgoing edge weights known, summing... | |
BB23 -> BB28 has weight 2 | |
BB23 -> BB24 has weight 0 | |
BB23: all outgoing edge weights known, sum is 2 | |
BB29 -> BB23: target block weight and all other incoming edge weights known, so weight is 2 | |
BB22: 1 incoming unknown, 1 outgoing unknown | |
BB21: 1 incoming unknown, 1 outgoing unknown | |
BB20: 1 incoming unknown, 2 outgoing unknown | |
BB19: 1 incoming unknown, 0 outgoing unknown | |
BB19: all outgoing edge weights known, summing... | |
BB19 -> BB20 has weight 2 | |
BB19: all outgoing edge weights known, sum is 2 | |
BB05 -> BB19: target block weight and all other incoming edge weights known, so weight is 2 | |
BB18: 1 incoming unknown, 0 outgoing unknown | |
BB18: all outgoing edge weights known, summing... | |
BB18 -> BB19 has weight 0 | |
BB18: all outgoing edge weights known, sum is 0 | |
BB14 -> BB18: target block weight and all other incoming edge weights known, so weight is 0 | |
BB17: 1 incoming unknown, 0 outgoing unknown | |
BB17: all outgoing edge weights known, summing... | |
BB17 -> BB15 has weight 0 | |
BB17: all outgoing edge weights known, sum is 0 | |
BB15 -> BB17: target block weight and all other incoming edge weights known, so weight is 0 | |
BB16: 1 incoming unknown, 0 outgoing unknown | |
BB16: all outgoing edge weights known, summing... | |
BB16 -> BB17 has weight 0 | |
BB16: all outgoing edge weights known, sum is 0 | |
BB15 -> BB16: target block weight and all other incoming edge weights known, so weight is 0 | |
BB15: 0 incoming unknown, 0 outgoing unknown | |
BB15: all incoming edge weights known, summing... | |
BB17 -> BB15 has weight 0 | |
BB15: all incoming edge weights known, sum is 0 | |
BB14: 1 incoming unknown, 0 outgoing unknown | |
BB14: all outgoing edge weights known, summing... | |
BB14 -> BB18 has weight 0 | |
BB14: all outgoing edge weights known, sum is 0 | |
BB13 -> BB14: target block weight and all other incoming edge weights known, so weight is 0 | |
BB13: 1 incoming unknown, 1 outgoing unknown | |
BB12: 1 incoming unknown, 0 outgoing unknown | |
BB12: all outgoing edge weights known, summing... | |
BB12 -> BB13 has weight 0 | |
BB12: all outgoing edge weights known, sum is 0 | |
BB10 -> BB12: target block weight and all other incoming edge weights known, so weight is 0 | |
BB11: 1 incoming unknown, 0 outgoing unknown | |
BB11: all outgoing edge weights known, summing... | |
BB11 -> BB12 has weight 0 | |
BB11: all outgoing edge weights known, sum is 0 | |
BB10 -> BB11: target block weight and all other incoming edge weights known, so weight is 0 | |
BB10: 1 incoming unknown, 0 outgoing unknown | |
BB10: all outgoing edge weights known, summing... | |
BB10 -> BB12 has weight 0 | |
BB10 -> BB11 has weight 0 | |
BB10: all outgoing edge weights known, sum is 0 | |
BB08 -> BB10: target block weight and all other incoming edge weights known, so weight is 0 | |
BB09: 1 incoming unknown, 0 outgoing unknown | |
BB09: all outgoing edge weights known, summing... | |
BB09 -> BB10 has weight 0 | |
BB09: all outgoing edge weights known, sum is 0 | |
BB08 -> BB09: target block weight and all other incoming edge weights known, so weight is 0 | |
BB08: 1 incoming unknown, 0 outgoing unknown | |
BB08: all outgoing edge weights known, summing... | |
BB08 -> BB10 has weight 0 | |
BB08 -> BB09 has weight 0 | |
BB08: all outgoing edge weights known, sum is 0 | |
BB13 -> BB08: target block weight and all other incoming edge weights known, so weight is 0 | |
BB07: 1 incoming unknown, 1 outgoing unknown | |
BB06: 1 incoming unknown, 1 outgoing unknown | |
BB05: 1 incoming unknown, 0 outgoing unknown | |
BB05: all outgoing edge weights known, summing... | |
BB05 -> BB19 has weight 2 | |
BB05: all outgoing edge weights known, sum is 2 | |
BB04 -> BB05: target block weight and all other incoming edge weights known, so weight is 2 | |
BB04: 1 incoming unknown, 1 outgoing unknown | |
BB03: 1 incoming unknown, 1 outgoing unknown | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB03 has weight 2 | |
BB02: all outgoing edge weights known, sum is 2 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 2 | |
BB01: 0 incoming unknown, 1 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB31 -> BB01 has weight 2 | |
BB01: all incoming edge weights known, sum is 2 | |
BB01 -> BB03: source block weight and all other outgoing edge weights known, so weight is 0 | |
Pass [2]: 9 unknown blocks, 8 unknown edges | |
BB29: 1 incoming unknown, 0 outgoing unknown | |
BB29: all outgoing edge weights known, summing... | |
BB29 -> BB30 has weight 2 | |
BB29 -> BB23 has weight 2 | |
BB29: all outgoing edge weights known, sum is 4 | |
BB22 -> BB29: target block weight and all other incoming edge weights known, so weight is 2 | |
BB22: 1 incoming unknown, 0 outgoing unknown | |
BB22: all outgoing edge weights known, summing... | |
BB22 -> BB29 has weight 2 | |
BB22: all outgoing edge weights known, sum is 2 | |
BB21 -> BB22: target block weight and all other incoming edge weights known, so weight is 2 | |
BB21: 1 incoming unknown, 0 outgoing unknown | |
BB21: all outgoing edge weights known, summing... | |
BB21 -> BB22 has weight 2 | |
BB21: all outgoing edge weights known, sum is 2 | |
BB20 -> BB21: target block weight and all other incoming edge weights known, so weight is 2 | |
BB20: 1 incoming unknown, 1 outgoing unknown | |
BB13: 1 incoming unknown, 0 outgoing unknown | |
BB13: all outgoing edge weights known, summing... | |
BB13 -> BB14 has weight 0 | |
BB13 -> BB08 has weight 0 | |
BB13: all outgoing edge weights known, sum is 0 | |
BB07 -> BB13: target block weight and all other incoming edge weights known, so weight is 0 | |
BB07: 1 incoming unknown, 0 outgoing unknown | |
BB07: all outgoing edge weights known, summing... | |
BB07 -> BB13 has weight 0 | |
BB07: all outgoing edge weights known, sum is 0 | |
BB06 -> BB07: target block weight and all other incoming edge weights known, so weight is 0 | |
BB06: 1 incoming unknown, 0 outgoing unknown | |
BB06: all outgoing edge weights known, summing... | |
BB06 -> BB07 has weight 0 | |
BB06: all outgoing edge weights known, sum is 0 | |
BB04 -> BB06: target block weight and all other incoming edge weights known, so weight is 0 | |
BB04: 1 incoming unknown, 0 outgoing unknown | |
BB04: all outgoing edge weights known, summing... | |
BB04 -> BB05 has weight 2 | |
BB04 -> BB06 has weight 0 | |
BB04: all outgoing edge weights known, sum is 2 | |
BB20 -> BB04: target block weight and all other incoming edge weights known, so weight is 2 | |
BB03: 0 incoming unknown, 1 outgoing unknown | |
BB03: all incoming edge weights known, summing... | |
BB02 -> BB03 has weight 2 | |
BB01 -> BB03 has weight 0 | |
BB03: all incoming edge weights known, sum is 2 | |
BB03 -> BB20: source block weight and all other outgoing edge weights known, so weight is 2 | |
Pass [3]: 1 unknown blocks, 0 unknown edges | |
BB20: 0 incoming unknown, 0 outgoing unknown | |
BB20: all incoming edge weights known, summing... | |
BB19 -> BB20 has weight 2 | |
BB03 -> BB20 has weight 2 | |
BB20: all incoming edge weights known, sum is 4 | |
Solver: converged in 3 passes | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB01 -> BB03 to 0 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0 | |
Setting likelihood of BB01 -> BB02 to 1 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB02 -> BB03 to 1 (uniq) | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB03 -> BB20 to 1 (uniq) | |
setting likelihood of BB03 -> BB20 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB04 -> BB05 to 1 (pgo) | |
setting likelihood of BB04 -> BB05 from 0.5 to 1 | |
Setting likelihood of BB04 -> BB06 to 0 (pgo) | |
setting likelihood of BB04 -> BB06 from 0.5 to 0 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB05 -> BB19 to 1 (uniq) | |
setting likelihood of BB05 -> BB19 from 1 to 1 | |
BB06 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB06 -> BB07 to 1 (heur) | |
setting likelihood of BB06 -> BB07 from 1 to 1 | |
BB07 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB07 -> BB13 to 1 (heur) | |
setting likelihood of BB07 -> BB13 from 1 to 1 | |
BB08 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB08 -> BB09 to 0.5 (heur) | |
setting likelihood of BB08 -> BB09 from 0.5 to 0.5 | |
Setting likelihood of BB08 -> BB10 to 0.5 (heur) | |
setting likelihood of BB08 -> BB10 from 0.5 to 0.5 | |
BB09 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB09 -> BB10 to 1 (heur) | |
setting likelihood of BB09 -> BB10 from 1 to 1 | |
BB10 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB10 -> BB11 to 0.5 (heur) | |
setting likelihood of BB10 -> BB11 from 0.5 to 0.5 | |
Setting likelihood of BB10 -> BB12 to 0.5 (heur) | |
setting likelihood of BB10 -> BB12 from 0.5 to 0.5 | |
BB11 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB11 -> BB12 to 1 (heur) | |
setting likelihood of BB11 -> BB12 from 1 to 1 | |
BB12 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB12 -> BB13 to 1 (heur) | |
setting likelihood of BB12 -> BB13 from 1 to 1 | |
BB13 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB13 -> BB14 to 0.5 (heur) | |
setting likelihood of BB13 -> BB14 from 0.5 to 0.5 | |
Setting likelihood of BB13 -> BB08 to 0.5 (heur) | |
setting likelihood of BB13 -> BB08 from 0.5 to 0.5 | |
BB14 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB14 -> BB18 to 1 (heur) | |
setting likelihood of BB14 -> BB18 from 1 to 1 | |
BB15 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB15 -> BB16 to 0.5 (heur) | |
setting likelihood of BB15 -> BB16 from 0.5 to 0.5 | |
Setting likelihood of BB15 -> BB17 to 0.5 (heur) | |
setting likelihood of BB15 -> BB17 from 0.5 to 0.5 | |
BB16 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB16 -> BB17 to 1 (heur) | |
setting likelihood of BB16 -> BB17 from 1 to 1 | |
BB18 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB18 -> BB19 to 1 (heur) | |
setting likelihood of BB18 -> BB19 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB19 -> BB20 to 1 (uniq) | |
setting likelihood of BB19 -> BB20 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/4 | |
Setting likelihood of BB20 -> BB21 to 0.5 (pgo) | |
setting likelihood of BB20 -> BB21 from 0.5 to 0.5 | |
Setting likelihood of BB20 -> BB04 to 0.5 (pgo) | |
setting likelihood of BB20 -> BB04 from 0.5 to 0.5 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB21 -> BB22 to 1 (uniq) | |
setting likelihood of BB21 -> BB22 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB22 -> BB29 to 1 (uniq) | |
setting likelihood of BB22 -> BB29 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB23 -> BB28 to 1 (pgo) | |
setting likelihood of BB23 -> BB28 from 0.5 to 1 | |
Setting likelihood of BB23 -> BB24 to 0 (pgo) | |
setting likelihood of BB23 -> BB24 from 0.5 to 0 | |
BB24 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB24 -> BB25 to 0.5 (heur) | |
setting likelihood of BB24 -> BB25 from 0.5 to 0.5 | |
Setting likelihood of BB24 -> BB28 to 0.5 (heur) | |
setting likelihood of BB24 -> BB28 from 0.5 to 0.5 | |
BB25 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB25 -> BB26 to 0.5 (heur) | |
setting likelihood of BB25 -> BB26 from 0.5 to 0.5 | |
Setting likelihood of BB25 -> BB28 to 0.5 (heur) | |
setting likelihood of BB25 -> BB28 from 0.5 to 0.5 | |
BB26 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB26 -> BB27 to 0.5 (heur) | |
setting likelihood of BB26 -> BB27 from 0.5 to 0.5 | |
Setting likelihood of BB26 -> BB28 to 0.5 (heur) | |
setting likelihood of BB26 -> BB28 from 0.5 to 0.5 | |
BB27 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB27 -> BB28 to 1 (heur) | |
setting likelihood of BB27 -> BB28 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB28 -> BB29 to 1 (uniq) | |
setting likelihood of BB28 -> BB29 from 1 to 1 | |
Normalizing successor likelihoods with factor 1/4 | |
Setting likelihood of BB29 -> BB30 to 0.5 (pgo) | |
setting likelihood of BB29 -> BB30 from 0.5 to 0.5 | |
Setting likelihood of BB29 -> BB23 to 0.5 (pgo) | |
setting likelihood of BB29 -> BB23 from 0.5 to 0.5 | |
Normalizing successor likelihoods with factor 1/2 | |
Setting likelihood of BB30 -> BB22 to 0 (pgo) | |
setting likelihood of BB30 -> BB22 from 0.5 to 0 | |
Setting likelihood of BB30 -> BB31 to 1 (pgo) | |
setting likelihood of BB30 -> BB31 from 0.5 to 1 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 30] | |
01 -> BB02[1, 29] | |
02 -> BB03[2, 28] | |
03 -> BB20[3, 27] | |
04 -> BB04[15, 26] | |
05 -> BB06[18, 25] | |
06 -> BB07[19, 24] | |
07 -> BB13[20, 23] | |
08 -> BB08[26, 22] | |
09 -> BB09[27, 21] | |
10 -> BB10[28, 20] | |
11 -> BB11[29, 19] | |
12 -> BB12[30, 18] | |
13 -> BB14[21, 17] | |
14 -> BB15[23, 16] | |
15 -> BB16[24, 15] | |
16 -> BB17[25, 14] | |
17 -> BB18[22, 13] | |
18 -> BB05[16, 12] | |
19 -> BB19[17, 11] | |
20 -> BB21[4, 10] | |
21 -> BB22[5, 9] | |
22 -> BB29[6, 8] | |
23 -> BB23[9, 7] | |
24 -> BB24[10, 6] | |
25 -> BB25[11, 5] | |
26 -> BB26[12, 4] | |
27 -> BB27[13, 3] | |
28 -> BB28[14, 2] | |
29 -> BB30[7, 1] | |
30 -> BB31[8, 0] | |
BB19 -> BB20 is a backedge | |
BB20 is the header of a DFS loop with 1 back edges | |
Loop has 14 blocks | |
BB20 -> BB21 is an exit edge | |
BB03 -> BB20 is an entry edge | |
Added loop L00 with header BB20 | |
BB12 -> BB13 is a backedge | |
BB13 is the header of a DFS loop with 1 back edges | |
Loop has 6 blocks | |
BB13 -> BB14 is an exit edge | |
BB07 -> BB13 is an entry edge | |
Nested within loop starting at BB20 | |
Added loop L01 with header BB13 | |
BB30 -> BB22 is a backedge | |
BB22 is the header of a DFS loop with 1 back edges | |
Loop has 9 blocks | |
BB30 -> BB31 is an exit edge | |
BB21 -> BB22 is an entry edge | |
Added loop L02 with header BB22 | |
BB28 -> BB29 is a backedge | |
BB29 is the header of a DFS loop with 1 back edges | |
Loop has 7 blocks | |
BB29 -> BB30 is an exit edge | |
BB22 -> BB29 is an entry edge | |
Nested within loop starting at BB22 | |
Added loop L03 with header BB29 | |
Found 4 loops | |
*************** Natural loop graph | |
L00 header: BB20 | |
Members (14): [BB04..BB14];[BB18..BB20] | |
Entry: BB03 -> BB20 | |
Exit: BB20 -> BB21 | |
Back: BB19 -> BB20 | |
L01 header: BB13 parent: L00 | |
Members (6): [BB08..BB13] | |
Entry: BB07 -> BB13 | |
Exit: BB13 -> BB14 | |
Back: BB12 -> BB13 | |
L02 header: BB22 | |
Members (9): [BB22..BB30] | |
Entry: BB21 -> BB22 | |
Exit: BB30 -> BB31 | |
Back: BB30 -> BB22 | |
L03 header: BB29 parent: L02 | |
Members (7): [BB23..BB29] | |
Entry: BB22 -> BB29 | |
Exit: BB29 -> BB30 | |
Back: BB28 -> BB29 | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
setting likelihood of BB03 -> BB20 from 1 to 1 | |
setting likelihood of BB05 -> BB19 from 1 to 1 | |
setting likelihood of BB06 -> BB07 from 1 to 1 | |
setting likelihood of BB07 -> BB13 from 1 to 1 | |
Repairing likelihoods in BB08; zero weight block | |
setting likelihood of BB08 -> BB10 from 0.5 to 0.48 | |
setting likelihood of BB08 -> BB09 from 0.5 to 0.52 | |
setting likelihood of BB09 -> BB10 from 1 to 1 | |
Repairing likelihoods in BB10; zero weight block | |
setting likelihood of BB10 -> BB12 from 0.5 to 0.48 | |
setting likelihood of BB10 -> BB11 from 0.5 to 0.52 | |
setting likelihood of BB11 -> BB12 from 1 to 1 | |
setting likelihood of BB12 -> BB13 from 1 to 1 | |
Repairing likelihoods in BB13; zero weight block | |
BB13->BB14 is loop exit edge | |
setting likelihood of BB13 -> BB08 from 0.5 to 0.9 | |
setting likelihood of BB13 -> BB14 from 0.5 to 0.1 | |
setting likelihood of BB14 -> BB18 from 1 to 1 | |
Repairing likelihoods in BB15; zero weight block | |
setting likelihood of BB15 -> BB17 from 0.5 to 0.48 | |
setting likelihood of BB15 -> BB16 from 0.5 to 0.52 | |
setting likelihood of BB16 -> BB17 from 1 to 1 | |
setting likelihood of BB18 -> BB19 from 1 to 1 | |
setting likelihood of BB19 -> BB20 from 1 to 1 | |
setting likelihood of BB21 -> BB22 from 1 to 1 | |
setting likelihood of BB22 -> BB29 from 1 to 1 | |
Repairing likelihoods in BB24; zero weight block | |
setting likelihood of BB24 -> BB28 from 0.5 to 0.48 | |
setting likelihood of BB24 -> BB25 from 0.5 to 0.52 | |
Repairing likelihoods in BB25; zero weight block | |
setting likelihood of BB25 -> BB28 from 0.5 to 0.48 | |
setting likelihood of BB25 -> BB26 from 0.5 to 0.52 | |
Repairing likelihoods in BB26; zero weight block | |
setting likelihood of BB26 -> BB28 from 0.5 to 0.48 | |
setting likelihood of BB26 -> BB27 from 0.5 to 0.52 | |
setting likelihood of BB27 -> BB28 from 1 to 1 | |
setting likelihood of BB28 -> BB29 from 1 to 1 | |
ccp: BB29 :: 1.0 (header) | |
ccp: BB23 :: 0.5 | |
ccp: BB24 :: 0 | |
ccp: BB25 :: 0 | |
ccp: BB26 :: 0 | |
ccp: BB27 :: 0 | |
ccp: BB28 :: 0.5 | |
ccp backedge BB28 (0.5) -> BB29 likelihood 1 | |
For loop at BB29 cyclic weight is 0.5 cyclic probability is 2 | |
ccp: BB22 :: 1.0 (header) | |
ccp: BB29 :: 2 (nested header) | |
ccp: BB23 :: 1 | |
ccp: BB24 :: 0 | |
ccp: BB25 :: 0 | |
ccp: BB26 :: 0 | |
ccp: BB27 :: 0 | |
ccp: BB28 :: 1 | |
ccp: BB30 :: 1 | |
ccp backedge BB30 (1) -> BB22 likelihood 0 | |
For loop at BB22 cyclic weight is 0 cyclic probability is 1 | |
ccp: BB13 :: 1.0 (header) | |
ccp: BB08 :: 0.9 | |
ccp: BB09 :: 0.468 | |
ccp: BB10 :: 0.9 | |
ccp: BB11 :: 0.468 | |
ccp: BB12 :: 0.9 | |
ccp backedge BB12 (0.9) -> BB13 likelihood 1 | |
For loop at BB13 cyclic weight is 0.9 cyclic probability is 10 | |
ccp: BB20 :: 1.0 (header) | |
ccp: BB04 :: 0.5 | |
ccp: BB06 :: 0 | |
ccp: BB07 :: 0 | |
ccp: BB13 :: 0 (nested header) | |
ccp: BB08 :: 0 | |
ccp: BB09 :: 0 | |
ccp: BB10 :: 0 | |
ccp: BB11 :: 0 | |
ccp: BB12 :: 0 | |
ccp: BB14 :: 0 | |
ccp: BB18 :: 0 | |
ccp: BB05 :: 0.5 | |
ccp: BB19 :: 0.5 | |
ccp backedge BB19 (0.5) -> BB20 likelihood 1 | |
For loop at BB20 cyclic weight is 0.5 cyclic probability is 2 | |
Synthesis: entry BB01 has input weight 2 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (31 profiled blocks, 0 unprofiled) | |
*************** Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) IBC | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) IBC bwd bwd-target | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 IBC rare bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 IBC rare bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 IBC rare bwd bwd-src | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB18(1) (leave ) T0 } IBC rare bwd | |
BB15 [0014] 1 0 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 IBC bwd | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> ???? (finret) H0 } IBC bwd | |
BB18 [0017] 1 BB14 0 0 [0F1..0F9)-> BB19(1) (always) IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) IBC | |
BB22 [0021] 2 BB21,BB30 2 2 [11F..142)-> BB29(1) (always) IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB28(0.48),BB25(0.52) ( cond ) IBC rare bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB28(0.48),BB26(0.52) ( cond ) IBC rare bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB28(0.48),BB27(0.52) ( cond ) IBC rare bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) IBC rare bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 2 2 [17D..183)-> BB29(1) (always) IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB22(0),BB31(1) ( cond ) IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..003) -> BB03(0),BB02(1) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0001] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0002] [00A..03E) -> BB20(1) (always), preds={BB01,BB02} succs={BB20} | |
------------ BB04 [0003] [03E..05F) -> BB06(0),BB05(1) (cond), preds={BB20} succs={BB05,BB06} | |
------------ BB05 [0004] [05F..073) -> BB19(1) (always), preds={BB04} succs={BB19} | |
------------ BB06 [0005] [073..090) -> BB07(1) (always), preds={BB04} succs={BB07} | |
------------ BB07 [0006] [090..092) -> BB13(1) (always), preds={BB06} succs={BB13} | |
------------ BB08 [0007] [092..0A7) -> BB10(0.48),BB09(0.52) (cond), preds={BB13} succs={BB09,BB10} | |
------------ BB09 [0008] [0A7..0C1) -> BB10(1) (always), preds={BB08} succs={BB10} | |
------------ BB10 [0009] [0C1..0C9) -> BB12(0.48),BB11(0.52) (cond), preds={BB08,BB09} succs={BB11,BB12} | |
------------ BB11 [0010] [0C9..0D4) -> BB12(1) (always), preds={BB10} succs={BB12} | |
------------ BB12 [0011] [0D4..0DA) -> BB13(1) (always), preds={BB10,BB11} succs={BB13} | |
------------ BB13 [0012] [0DA..0E3) -> BB08(0.9),BB14(0.1) (cond), preds={BB07,BB12} succs={BB14,BB08} | |
------------ BB14 [0013] [0E3..0E5) -> BB18(1) (leave), preds={BB13} succs={BB18} | |
------------ BB15 [0014] [0E5..0E9) -> BB17(0.48),BB16(0.52) (cond), preds={} succs={BB16,BB17} | |
------------ BB16 [0015] [0E9..0F0) -> BB17(1) (always), preds={BB15} succs={BB17} | |
------------ BB17 [0016] [0F0..0F1) -> ???? (finret), preds={BB15,BB16} succs={} | |
------------ BB18 [0017] [0F1..0F9) -> BB19(1) (always), preds={BB14} succs={BB19} | |
------------ BB19 [0018] [0F9..0FF) -> BB20(1) (always), preds={BB05,BB18} succs={BB20} | |
------------ BB20 [0019] [0FF..10C) -> BB04(0.5),BB21(0.5) (cond), preds={BB03,BB19} succs={BB21,BB04} | |
------------ BB21 [0020] [10C..11F) -> BB22(1) (always), preds={BB20} succs={BB22} | |
------------ BB22 [0021] [11F..142) -> BB29(1) (always), preds={BB21,BB30} succs={BB29} | |
------------ BB23 [0022] [142..150) -> BB28(1),BB24(0) (cond), preds={BB29} succs={BB24,BB28} | |
------------ BB24 [0023] [150..158) -> BB28(0.48),BB25(0.52) (cond), preds={BB23} succs={BB25,BB28} | |
------------ BB25 [0024] [158..15F) -> BB28(0.48),BB26(0.52) (cond), preds={BB24} succs={BB26,BB28} | |
------------ BB26 [0025] [15F..175) -> BB28(0.48),BB27(0.52) (cond), preds={BB25} succs={BB27,BB28} | |
------------ BB27 [0026] [175..17D) -> BB28(1) (always), preds={BB26} succs={BB28} | |
------------ BB28 [0027] [17D..183) -> BB29(1) (always), preds={BB23,BB24,BB25,BB26,BB27} succs={BB29} | |
------------ BB29 [0028] [183..18D) -> BB23(0.5),BB30(0.5) (cond), preds={BB22,BB28} succs={BB30,BB23} | |
------------ BB30 [0029] [18D..196) -> BB22(0),BB31(1) (cond), preds={BB29} succs={BB31,BB22} | |
------------ BB31 [0030] [196..199) (return), preds={BB30} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (31 profiled blocks, 0 unprofiled) | |
*************** Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 0 (0x000) ldarg.2 | |
[ 1] 1 (0x001) brtrue.s | |
STMT00000 ( 0x000[E-] ... ??? ) | |
[000003] ----------- * JTRUE void | |
[000002] ----------- \--* NE int | |
[000000] ----------- +--* LCL_VAR ref V03 arg2 | |
[000001] ----------- \--* CNS_INT ref null | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=010) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 10 (0x00a) newobj | |
lvaGrabTemp returning 23 (V23 tmp1) called for NewObj constructor temp. | |
Registering 0x7f487e597e80 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 24 (V24 tmp2) called for spilling helperCall. | |
STMT00001 ( 0x00A[E-] ... ??? ) | |
[000007] DAC-G------ * STORE_LCL_VAR long V24 tmp2 | |
[000006] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000004] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000005] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e597e80 global ptr | |
STMT00002 ( ??? ... ??? ) | |
[000011] DA--------- * STORE_LCL_VAR ref V23 tmp1 | |
[000010] ----------- \--* ALLOCOBJ ref | |
[000009] ----------- \--* RUNTIMELOOKUP long 0x7f4876028ee8 class | |
[000008] ----------- \--* LCL_VAR long V24 tmp2 | |
Marked V23 as a single def local | |
lvaSetClass: setting class for V23 to (0x7f4876028ee8) System.Collections.Generic.List`1[System.__Canon] [exact] | |
0A0000A8 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00003 ( ??? ... ??? ) | |
[000013] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f4876028ee9) | |
[000012] ----------- this \--* LCL_VAR ref V23 tmp1 | |
[ 1] 15 (0x00f) dup | |
[ 2] 16 (0x010) ldarg.0 | |
[ 3] 17 (0x011) callvirt 0A0000A9 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Add -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00004 ( 0x00F[--] ... ??? ) | |
[000017] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000015] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 arg0 | |
[ 1] 22 (0x016) stloc.0 | |
lvaUpdateClass: Updating class for V04 from (0x7f4876028ee8) System.Collections.Generic.List`1[System.__Canon] to (0x7f4876028ee8) System.Collections.Generic.List`1[System.__Canon] [exact] | |
STMT00005 ( 0x016[--] ... ??? ) | |
[000018] DA--------- * STORE_LCL_VAR ref V04 loc0 | |
[000014] ----------- \--* LCL_VAR ref V23 tmp1 | |
[ 0] 23 (0x017) ldarg.2 | |
[ 1] 24 (0x018) newobj | |
lvaGrabTemp returning 25 (V25 tmp3) called for NewObj constructor temp. | |
Registering 0x7f487e5982b0 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 26 (V26 tmp4) called for spilling helperCall. | |
STMT00006 ( 0x017[E-] ... ??? ) | |
[000023] DAC-G------ * STORE_LCL_VAR long V26 tmp4 | |
[000022] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000020] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000021] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5982b0 global ptr | |
STMT00007 ( ??? ... ??? ) | |
[000027] DA--------- * STORE_LCL_VAR ref V25 tmp3 | |
[000026] ----------- \--* ALLOCOBJ ref | |
[000025] ----------- \--* RUNTIMELOOKUP long 0x7f487806e338 class | |
[000024] ----------- \--* LCL_VAR long V26 tmp4 | |
Marked V25 as a single def local | |
lvaSetClass: setting class for V25 to (0x7f487806e338) System.Collections.Generic.Dictionary`2[System.__Canon,int] [exact] | |
0A0000AA | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f487806e339 | |
Class context: System.Collections.Generic.Dictionary`2[System.__Canon,int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00008 ( ??? ... ??? ) | |
[000029] I-C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (exactContextHnd=0x0x7f487806e339) | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000019] ----------- arg1 \--* LCL_VAR ref V03 arg2 | |
[ 1] 29 (0x01d) ldarg.0 | |
[ 2] 30 (0x01e) stloc.s 6 | |
STMT00009 ( 0x01D[--] ... ??? ) | |
[000032] DA--------- * STORE_LCL_VAR ref V10 loc6 | |
[000031] ----------- \--* LCL_VAR ref V01 arg0 | |
[ 1] 32 (0x020) dup | |
[ 2] 33 (0x021) ldloc.s 6 | |
[ 3] 35 (0x023) ldc.i4.0 0 | |
[ 4] 36 (0x024) callvirt 0A0000AB | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate set_Item -- context 0x7f487806e339 | |
Class context: System.Collections.Generic.Dictionary`2[System.__Canon,int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00010 ( ??? ... ??? ) | |
[000036] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000035] ----------- arg2 \--* CNS_INT int 0 | |
[ 1] 41 (0x029) stloc.1 | |
lvaUpdateClass: Updating class for V05 from (0x7f487806e338) System.Collections.Generic.Dictionary`2[System.__Canon,int] to (0x7f487806e338) System.Collections.Generic.Dictionary`2[System.__Canon,int] [exact] | |
STMT00011 ( 0x029[--] ... ??? ) | |
[000037] DA--------- * STORE_LCL_VAR ref V05 loc1 | |
[000030] ----------- \--* LCL_VAR ref V25 tmp3 | |
[ 0] 42 (0x02a) newobj | |
lvaGrabTemp returning 27 (V27 tmp5) called for NewObj constructor temp. | |
STMT00012 ( 0x02A[E-] ... ??? ) | |
[000040] DA--------- * STORE_LCL_VAR ref V27 tmp5 | |
[000039] ----------- \--* ALLOCOBJ ref | |
[000038] H---------- \--* CNS_INT(h) long 0x7f487dd16108 class System.Collections.Generic.List`1[ubyte[]] | |
Marked V27 as a single def local | |
lvaSetClass: setting class for V27 to (0x7f487dd16108) System.Collections.Generic.List`1[ubyte[]] [exact] | |
0A0000AC | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f487dd16109 | |
Class context: System.Collections.Generic.List`1[ubyte[]] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00013 ( ??? ... ??? ) | |
[000042] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f487dd16109) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
[ 1] 47 (0x02f) stloc.2 | |
lvaUpdateClass: Updating class for V06 from (0x7f487dd16108) System.Collections.Generic.List`1[ubyte[]] to (0x7f487dd16108) System.Collections.Generic.List`1[ubyte[]] [exact] | |
STMT00014 ( 0x02F[--] ... ??? ) | |
[000044] DA--------- * STORE_LCL_VAR ref V06 loc2 | |
[000043] ----------- \--* LCL_VAR ref V27 tmp5 | |
[ 0] 48 (0x030) newobj | |
lvaGrabTemp returning 28 (V28 tmp6) called for NewObj constructor temp. | |
STMT00015 ( 0x030[E-] ... ??? ) | |
[000047] DA--------- * STORE_LCL_VAR ref V28 tmp6 | |
[000046] ----------- \--* ALLOCOBJ ref | |
[000045] H---------- \--* CNS_INT(h) long 0x7f487dd15f40 class System.Collections.Generic.Queue`1[int] | |
Marked V28 as a single def local | |
lvaSetClass: setting class for V28 to (0x7f487dd15f40) System.Collections.Generic.Queue`1[int] [exact] | |
0A0000AD | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00016 ( ??? ... ??? ) | |
[000049] I-C-G------ * CALL void System.Collections.Generic.Queue`1[int]:.ctor():this (exactContextHnd=0x0x7f487dd15f41) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
[ 1] 53 (0x035) stloc.3 | |
lvaUpdateClass: Updating class for V07 from (0x7f487dd15f40) System.Collections.Generic.Queue`1[int] to (0x7f487dd15f40) System.Collections.Generic.Queue`1[int] [exact] | |
STMT00017 ( 0x035[--] ... ??? ) | |
[000051] DA--------- * STORE_LCL_VAR ref V07 loc3 | |
[000050] ----------- \--* LCL_VAR ref V28 tmp6 | |
[ 0] 54 (0x036) ldc.i4.0 0 | |
[ 1] 55 (0x037) stloc.s 7 | |
STMT00018 ( 0x036[E-] ... ??? ) | |
[000053] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000052] ----------- \--* CNS_INT int 0 | |
[ 0] 57 (0x039) br | |
impImportBlockPending for BB20 | |
Importing BB20 (PC=255) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 255 (0x0ff) ldloc.s 7 | |
[ 1] 257 (0x101) ldloc.0 | |
[ 2] 258 (0x102) callvirt 0A0000B3 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00019 ( 0x0FF[E-] ... ??? ) | |
[000056] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000055] ----------- this \--* LCL_VAR ref V04 loc0 | |
[ 2] 263 (0x107) blt | |
STMT00020 ( 0x0FF[E-] ... ??? ) | |
[000059] --C-------- * JTRUE void | |
[000058] --C-------- \--* LT int | |
[000054] ----------- +--* LCL_VAR int V11 loc7 | |
[000057] --C-------- \--* RET_EXPR int (for [000056]) | |
impImportBlockPending for BB21 | |
impImportBlockPending for BB04 | |
Importing BB04 (PC=062) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 62 (0x03e) ldloc.0 | |
[ 1] 63 (0x03f) ldloc.s 7 | |
[ 2] 65 (0x041) callvirt 0A0000AE | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ref, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Item -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00021 ( 0x03E[E-] ... ??? ) | |
[000062] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000060] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000061] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
[ 1] 70 (0x046) stloc.s 8 | |
STMT00022 ( 0x03E[E-] ... ??? ) | |
[000064] DAC-------- * STORE_LCL_VAR ref V12 loc8 | |
[000063] --C-------- \--* RET_EXPR ref (for [000062]) | |
[ 0] 72 (0x048) ldarg.1 | |
[ 1] 73 (0x049) ldloc.s 8 | |
[ 2] 75 (0x04b) callvirt 0A0000AF | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ref, structSize is 0 | |
... marking [000067] in BB04 for method/class profile instrumentation | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has no body' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this' | |
INLINER: Marking System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this as NOINLINE because of has no body | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has no body' | |
[ 1] 80 (0x050) stloc.s 9 | |
lvaUpdateClass: NOT Updating class for V13 from (0x7f4876029890) System.Collections.Generic.ICollection`1[System.__Canon] to (0x7f4875ec5f70) System.__Canon | |
STMT00023 ( 0x048[E-] ... ??? ) | |
[000068] DAC-G------ * STORE_LCL_VAR ref V13 loc9 | |
[000067] --C-G------ \--* CALL ref System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this | |
[000065] ----------- this +--* LCL_VAR ref V02 arg1 | |
[000066] ----------- arg1 \--* LCL_VAR ref V12 loc8 | |
[ 0] 82 (0x052) ldloc.s 9 | |
[ 1] 84 (0x054) callvirt 0A0000B0 | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is int, structSize is 0 | |
Registering 0x7f487e5983a8 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 29 (V29 tmp7) called for spilling helperCall. | |
STMT00024 ( 0x052[E-] ... ??? ) | |
[000073] DAC-G------ * STORE_LCL_VAR long V29 tmp7 | |
[000072] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000070] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000071] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983a8 global ptr | |
lvaGrabTemp returning 30 (V30 tmp8) called for VirtualCall with runtime lookup. | |
STMT00025 ( ??? ... ??? ) | |
[000075] DA--------- * STORE_LCL_VAR long V30 tmp8 | |
[000074] ----------- \--* LCL_VAR long V29 tmp7 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is System.Collections.Generic.ICollection`1[System.__Canon] (attrib 20220400) | |
base method is System.Collections.Generic.ICollection`1[System.__Canon]::get_Count | |
Considering guarded devirtualization at IL offset 84 (0x54) | |
Too many exact classes implementing System.Collections.Generic.ICollection`1[System.__Canon] (-1 > 1) | |
Not guessing; no PGO and no exact classes | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 89 (0x059) stloc.s 10 | |
STMT00026 ( ??? ... ??? ) | |
[000078] DACXG------ * STORE_LCL_VAR int V14 loc10 | |
[000077] --CXG------ \--* CALL ind stub int | |
[000069] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000076] ----------- calli tgt \--* LCL_VAR long V30 tmp8 | |
[ 0] 91 (0x05b) ldloc.s 10 | |
[ 1] 93 (0x05d) brtrue.s | |
STMT00027 ( 0x05B[E-] ... ??? ) | |
[000082] ----------- * JTRUE void | |
[000081] ----------- \--* NE int | |
[000079] ----------- +--* LCL_VAR int V14 loc10 | |
[000080] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB05 | |
impImportBlockPending for BB06 | |
Importing BB06 (PC=115) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 115 (0x073) ldloc.0 | |
[ 1] 116 (0x074) callvirt 0A0000B3 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00028 ( 0x073[E-] ... ??? ) | |
[000084] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000083] ----------- this \--* LCL_VAR ref V04 loc0 | |
[ 1] 121 (0x079) ldloc.s 10 | |
[ 2] 123 (0x07b) call 0A00004B | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Max -- context 0x7f4875f5cb69 | |
Class context: System.Math | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Math:Max(int,int):int' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00029 ( 0x073[E-] ... ??? ) | |
[000087] I-C-G------ * CALL int System.Math:Max(int,int):int (exactContextHnd=0x0x7f4875f5cb69) | |
[000085] --C-------- arg0 +--* RET_EXPR int (for [000084]) | |
[000086] ----------- arg1 \--* LCL_VAR int V14 loc10 | |
[ 1] 128 (0x080) newarr 01000054 | |
[ 1] 133 (0x085) stloc.s 11 | |
STMT00030 ( 0x073[E-] ... ??? ) | |
[000092] DACXG------ * STORE_LCL_VAR ref V15 loc11 | |
[000091] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_VC | |
[000089] H---------- arg0 +--* CNS_INT(h) long 0x7f48767c27d0 class ubyte[] | |
[000090] --C-------- arg1 \--* CAST long <- int | |
[000088] --C-------- \--* RET_EXPR int (for [000087]) | |
[ 0] 135 (0x087) ldloc.s 9 | |
[ 1] 137 (0x089) callvirt 0A0000B4 | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0 | |
Registering 0x7f487e5983c0 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 31 (V31 tmp9) called for spilling helperCall. | |
STMT00031 ( 0x087[E-] ... ??? ) | |
[000097] DAC-G------ * STORE_LCL_VAR long V31 tmp9 | |
[000096] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000094] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000095] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983c0 global ptr | |
lvaGrabTemp returning 32 (V32 tmp10) called for VirtualCall with runtime lookup. | |
STMT00032 ( ??? ... ??? ) | |
[000099] DA--------- * STORE_LCL_VAR long V32 tmp10 | |
[000098] ----------- \--* LCL_VAR long V31 tmp9 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is System.Collections.Generic.ICollection`1[System.__Canon] (attrib 20220400) | |
base method is System.Collections.Generic.IEnumerable`1[System.__Canon]::GetEnumerator | |
Considering guarded devirtualization at IL offset 137 (0x89) | |
Too many exact classes implementing System.Collections.Generic.IEnumerable`1[System.__Canon] (-1 > 1) | |
Not guessing; no PGO and no exact classes | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 142 (0x08e) stloc.s 12 | |
STMT00033 ( ??? ... ??? ) | |
[000102] DACXG------ * STORE_LCL_VAR ref V16 loc12 | |
[000101] --CXG------ \--* CALL ind stub ref | |
[000093] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000100] ----------- calli tgt \--* LCL_VAR long V32 tmp10 | |
impImportBlockPending for BB07 | |
impImportBlockPending for BB15 | |
Importing BB07 (PC=144) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 144 (0x090) br.s | |
impImportBlockPending for BB13 | |
Importing BB13 (PC=218) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 218 (0x0da) ldloc.s 12 | |
[ 1] 220 (0x0dc) callvirt 0A0000B8 | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ubyte, structSize is 0 | |
... marking [000104] in BB13 for method/class profile instrumentation | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.IEnumerator:MoveNext():ubyte:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 225 (0x0e1) brtrue.s | |
STMT00034 ( 0x0DA[E-] ... ??? ) | |
[000107] --C-G------ * JTRUE void | |
[000106] --C-G------ \--* NE int | |
[000104] --C-G------ +--* CALLV stub int System.Collections.IEnumerator:MoveNext():ubyte:this | |
[000103] ----------- this | \--* LCL_VAR ref V16 loc12 | |
[000105] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB14 | |
impImportBlockPending for BB08 | |
Importing BB08 (PC=146) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 146 (0x092) ldloc.s 12 | |
[ 1] 148 (0x094) callvirt 0A0000B5 | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0 | |
Registering 0x7f487e5983d8 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 33 (V33 tmp11) called for spilling helperCall. | |
STMT00035 ( 0x092[E-] ... ??? ) | |
[000112] DAC-G------ * STORE_LCL_VAR long V33 tmp11 | |
[000111] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000109] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000110] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983d8 global ptr | |
lvaGrabTemp returning 34 (V34 tmp12) called for VirtualCall with runtime lookup. | |
STMT00036 ( ??? ... ??? ) | |
[000114] DA--------- * STORE_LCL_VAR long V34 tmp12 | |
[000113] ----------- \--* LCL_VAR long V33 tmp11 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is System.Collections.Generic.IEnumerator`1[System.__Canon] (attrib 20220400) | |
base method is System.Collections.Generic.IEnumerator`1[System.__Canon]::get_Current | |
Considering guarded devirtualization at IL offset 148 (0x94) | |
Too many exact classes implementing System.Collections.Generic.IEnumerator`1[System.__Canon] (-1 > 1) | |
Not guessing; no PGO and no exact classes | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 153 (0x099) stloc.s 13 | |
STMT00037 ( ??? ... ??? ) | |
[000117] DACXG------ * STORE_LCL_VAR ref V17 loc13 | |
[000116] --CXG------ \--* CALL ind stub ref | |
[000108] ----------- this +--* LCL_VAR ref V16 loc12 | |
[000115] ----------- calli tgt \--* LCL_VAR long V34 tmp12 | |
[ 0] 155 (0x09b) ldloc.1 | |
[ 1] 156 (0x09c) ldloc.s 13 | |
[ 2] 158 (0x09e) ldloca.s 14 | |
[ 3] 160 (0x0a0) callvirt 0A0000B6 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ubyte, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate TryGetValue -- context 0x7f487806e339 | |
Class context: System.Collections.Generic.Dictionary`2[System.__Canon,int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00038 ( 0x09B[E-] ... ??? ) | |
[000121] I-C-G------ * CALL nullcheck int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this (exactContextHnd=0x0x7f487806e339) | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000120] ----------- arg2 \--* LCL_ADDR byref V18 loc14 [+0] | |
[ 1] 165 (0x0a5) brtrue.s | |
STMT00039 ( 0x09B[E-] ... ??? ) | |
[000125] --C-------- * JTRUE void | |
[000124] --C-------- \--* NE int | |
[000122] --C-------- +--* RET_EXPR int (for [000121]) | |
[000123] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB09 | |
impImportBlockPending for BB10 | |
Importing BB10 (PC=193) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 193 (0x0c1) ldloc.s 14 | |
[ 1] 195 (0x0c3) ldloc.s 11 | |
[ 2] 197 (0x0c5) ldlen | |
[ 2] 198 (0x0c6) conv.i4 | |
[ 2] 199 (0x0c7) blt.s | |
STMT00040 ( 0x0C1[E-] ... ??? ) | |
[000130] ---X------- * JTRUE void | |
[000129] ---X------- \--* LT int | |
[000126] ----------- +--* LCL_VAR int V18 loc14 | |
[000128] ---X------- \--* ARR_LENGTH int | |
[000127] ----------- \--* LCL_VAR ref V15 loc11 | |
impImportBlockPending for BB11 | |
impImportBlockPending for BB12 | |
Importing BB12 (PC=212) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 212 (0x0d4) ldloc.s 11 | |
[ 1] 214 (0x0d6) ldloc.s 14 | |
[ 2] 216 (0x0d8) ldc.i4.1 1 | |
[ 3] 217 (0x0d9) stelem.i1 | |
STMT00041 ( 0x0D4[E-] ... ??? ) | |
[000135] nA-XG------ * STOREIND byte | |
[000134] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000131] ----------- | +--* LCL_VAR ref V15 loc11 | |
[000132] ----------- | \--* LCL_VAR int V18 loc14 | |
[000133] ----------- \--* CNS_INT int 1 | |
impImportBlockPending for BB13 | |
Importing BB11 (PC=201) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 201 (0x0c9) ldloca.s 11 | |
[ 1] 203 (0x0cb) ldloc.s 14 | |
[ 2] 205 (0x0cd) ldc.i4.1 1 | |
[ 3] 206 (0x0ce) add | |
[ 2] 207 (0x0cf) call 2B000012 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Resize -- context 0x7f487dd1f070 | |
Method context: System.Array:Resize[ubyte](byref,int) | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Array:Resize[ubyte](byref,int)' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00042 ( 0x0C9[E-] ... ??? ) | |
[000140] I-C-G------ * CALL void System.Array:Resize[ubyte](byref,int) (exactContextHnd=0x0x7f487dd1f070) | |
[000136] ----------- arg0 +--* LCL_ADDR byref V15 loc11 [+0] | |
[000139] ----------- arg1 \--* ADD int | |
[000137] ----------- +--* LCL_VAR int V18 loc14 | |
[000138] ----------- \--* CNS_INT int 1 | |
impImportBlockPending for BB12 | |
Importing BB09 (PC=167) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 167 (0x0a7) ldloc.0 | |
[ 1] 168 (0x0a8) callvirt 0A0000B3 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00043 ( 0x0A7[E-] ... ??? ) | |
[000142] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000141] ----------- this \--* LCL_VAR ref V04 loc0 | |
[ 1] 173 (0x0ad) stloc.s 14 | |
STMT00044 ( 0x0A7[E-] ... ??? ) | |
[000144] DAC-------- * STORE_LCL_VAR int V18 loc14 | |
[000143] --C-------- \--* RET_EXPR int (for [000142]) | |
[ 0] 175 (0x0af) ldloc.1 | |
[ 1] 176 (0x0b0) ldloc.s 13 | |
[ 2] 178 (0x0b2) ldloc.s 14 | |
[ 3] 180 (0x0b4) callvirt 0A0000B7 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Add -- context 0x7f487806e339 | |
Class context: System.Collections.Generic.Dictionary`2[System.__Canon,int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00045 ( 0x0AF[E-] ... ??? ) | |
[000148] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000147] ----------- arg2 \--* LCL_VAR int V18 loc14 | |
[ 0] 185 (0x0b9) ldloc.0 | |
[ 1] 186 (0x0ba) ldloc.s 13 | |
[ 2] 188 (0x0bc) callvirt 0A0000A9 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Add -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00046 ( 0x0B9[E-] ... ??? ) | |
[000151] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000149] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
impImportBlockPending for BB10 | |
Importing BB14 (PC=227) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 227 (0x0e3) leave.s 00F1 | |
Before import CEE_LEAVE in BB14 (targeting BB18): | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) i IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) i IBC newobj | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) i IBC bwd bwd-target hist | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) i IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { i IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 i IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 i IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 i IBC rare idxlen bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 i IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 i IBC rare idxlen bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 i IBC rare bwd bwd-src hist | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB18(1) (leave ) T0 } IBC rare bwd | |
BB15 [0014] 1 0 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 IBC bwd | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> ???? (finret) H0 } IBC bwd | |
BB18 [0017] 1 BB14 0 0 [0F1..0F9)-> BB19(1) (always) IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) i IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) IBC | |
BB22 [0021] 2 BB21,BB30 2 2 [11F..142)-> BB29(1) (always) IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB28(0.48),BB25(0.52) ( cond ) IBC rare bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB28(0.48),BB26(0.52) ( cond ) IBC rare bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB28(0.48),BB27(0.52) ( cond ) IBC rare bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) IBC rare bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 2 2 [17D..183)-> BB29(1) (always) IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB22(0),BB31(1) ( cond ) IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB14, jumpBlk=BB00, runRarely=false) | |
fgNewBBinRegion(jumpKind=BBJ_CALLFINALLY, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB14 | |
New Basic Block BB32 [0031] created. | |
setting likelihood of BB32 -> BB15 to 1 | |
impImportLeave - jumping out of a finally-protected try (EH#0), convert block BB14 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB32 | |
New Basic Block BB33 [0032] created. | |
impImportLeave - jumping out of a finally-protected try (EH#0), created step (BBJ_CALLFINALLYRET) block BB33 | |
setting likelihood of BB33 -> BB18 to 1 | |
impImportLeave - final destination of step blocks set to BB18 | |
impImportBlockPending for BB18 | |
After import CEE_LEAVE: | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) i IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) i IBC newobj | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) i IBC bwd bwd-target hist | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) i IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { i IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 i IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 i IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 i IBC rare idxlen bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 i IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 i IBC rare idxlen bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 i IBC rare bwd bwd-src hist | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB32(1) (always) T0 } IBC rare bwd | |
BB32 [0031] 1 BB14 0 0 [???..???)-> BB15(1) (callf ) i IBC rare internal | |
BB33 [0032] 0 0 0 [???..???)-> BB18(1) (callfr) i IBC rare internal | |
BB15 [0014] 2 0 BB32 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 IBC bwd | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> ???? (finret) H0 } IBC bwd | |
BB18 [0017] 1 BB33 0 0 [0F1..0F9)-> BB19(1) (always) IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) i IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) IBC | |
BB22 [0021] 2 BB21,BB30 2 2 [11F..142)-> BB29(1) (always) IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB28(0.48),BB25(0.52) ( cond ) IBC rare bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB28(0.48),BB26(0.52) ( cond ) IBC rare bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB28(0.48),BB27(0.52) ( cond ) IBC rare bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) IBC rare bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 2 2 [17D..183)-> BB29(1) (always) IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB22(0),BB31(1) ( cond ) IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
impImportBlockPending for BB32 | |
Importing BB18 (PC=241) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 241 (0x0f1) ldloc.2 | |
[ 1] 242 (0x0f2) ldloc.s 11 | |
[ 2] 244 (0x0f4) callvirt 0A0000B1 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Add -- context 0x7f487dd16109 | |
Class context: System.Collections.Generic.List`1[ubyte[]] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00047 ( 0x0F1[E-] ... ??? ) | |
[000154] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000152] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000153] ----------- arg1 \--* LCL_VAR ref V15 loc11 | |
impImportBlockPending for BB19 | |
Importing BB19 (PC=249) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 249 (0x0f9) ldloc.s 7 | |
[ 1] 251 (0x0fb) ldc.i4.1 1 | |
[ 2] 252 (0x0fc) add | |
[ 1] 253 (0x0fd) stloc.s 7 | |
STMT00048 ( 0x0F9[E-] ... ??? ) | |
[000158] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000157] ----------- \--* ADD int | |
[000155] ----------- +--* LCL_VAR int V11 loc7 | |
[000156] ----------- \--* CNS_INT int 1 | |
impImportBlockPending for BB20 | |
Importing BB15 (PC=229) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 229 (0x0e5) ldloc.s 12 | |
[ 1] 231 (0x0e7) brfalse.s | |
STMT00049 ( 0x0E5[E-] ... ??? ) | |
[000162] ----------- * JTRUE void | |
[000161] ----------- \--* EQ int | |
[000159] ----------- +--* LCL_VAR ref V16 loc12 | |
[000160] ----------- \--* CNS_INT ref null | |
impImportBlockPending for BB16 | |
impImportBlockPending for BB17 | |
Importing BB17 (PC=240) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 240 (0x0f0) endfinally | |
STMT00050 ( 0x0F0[E-] ... ??? ) | |
[000163] ----------- * RETFILT void | |
Importing BB16 (PC=233) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 233 (0x0e9) ldloc.s 12 | |
[ 1] 235 (0x0eb) callvirt 0A00007C | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0 | |
... marking [000165] in BB16 for method/class profile instrumentation | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.IDisposable:Dispose():this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
STMT00051 ( 0x0E9[E-] ... ??? ) | |
[000165] --C-G------ * CALLV stub void System.IDisposable:Dispose():this | |
[000164] ----------- this \--* LCL_VAR ref V16 loc12 | |
impImportBlockPending for BB17 | |
Importing BB05 (PC=095) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 95 (0x05f) ldloc.2 | |
[ 1] 96 (0x060) ldnull | |
[ 2] 97 (0x061) callvirt 0A0000B1 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Add -- context 0x7f487dd16109 | |
Class context: System.Collections.Generic.List`1[ubyte[]] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00052 ( 0x05F[E-] ... ??? ) | |
[000168] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000166] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000167] ----------- arg1 \--* CNS_INT ref null | |
[ 0] 102 (0x066) ldloc.3 | |
[ 1] 103 (0x067) ldloc.s 7 | |
[ 2] 105 (0x069) callvirt 0A0000B2 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Enqueue -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00053 ( 0x066[E-] ... ??? ) | |
[000171] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000169] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000170] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
[ 0] 110 (0x06e) br | |
impImportBlockPending for BB19 | |
Importing BB21 (PC=268) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 268 (0x10c) ldloc.0 | |
[ 1] 269 (0x10d) callvirt 0A0000B3 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00054 ( 0x10C[E-] ... ??? ) | |
[000173] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000172] ----------- this \--* LCL_VAR ref V04 loc0 | |
[ 1] 274 (0x112) newarr 1B00000FRegistering 0x7f487e598478 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 35 (V35 tmp13) called for spilling helperCall. | |
STMT00055 ( 0x10C[E-] ... ??? ) | |
[000178] DAC-G------ * STORE_LCL_VAR long V35 tmp13 | |
[000177] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000175] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000176] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598478 global ptr | |
[ 1] 279 (0x117) stloc.s 4 | |
lvaUpdateClass: Updating class for V08 from (0x7f487709c3f0) System.__Canon[] to (0x7f487709c3f0) System.__Canon[] [exact] | |
STMT00056 ( ??? ... ??? ) | |
[000183] DACXG------ * STORE_LCL_VAR ref V08 loc4 | |
[000182] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_OBJ | |
[000180] ----------- arg0 +--* RUNTIMELOOKUP long 0x7f487709c3f0 class | |
[000179] ----------- | \--* LCL_VAR long V35 tmp13 | |
[000181] --C-------- arg1 \--* CAST long <- int | |
[000174] --C-------- \--* RET_EXPR int (for [000173]) | |
[ 0] 281 (0x119) ldloc.s 4 | |
[ 1] 283 (0x11b) ldlen | |
[ 1] 284 (0x11c) conv.i4 | |
[ 1] 285 (0x11d) stloc.s 5 | |
STMT00057 ( 0x119[E-] ... ??? ) | |
[000186] DA-X------- * STORE_LCL_VAR int V09 loc5 | |
[000185] ---X------- \--* ARR_LENGTH int | |
[000184] ----------- \--* LCL_VAR ref V08 loc4 | |
impImportBlockPending for BB22 | |
Importing BB22 (PC=287) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 287 (0x11f) ldloc.3 | |
[ 1] 288 (0x120) callvirt 0A0000B9 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Dequeue -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Dequeue():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00058 ( 0x11F[E-] ... ??? ) | |
[000188] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:Dequeue():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000187] ----------- this \--* LCL_VAR ref V07 loc3 | |
[ 1] 293 (0x125) stloc.s 15 | |
STMT00059 ( 0x11F[E-] ... ??? ) | |
[000190] DAC-------- * STORE_LCL_VAR int V19 loc15 | |
[000189] --C-------- \--* RET_EXPR int (for [000188]) | |
[ 0] 295 (0x127) ldloc.s 4 | |
[ 1] 297 (0x129) ldloc.s 5 | |
[ 2] 299 (0x12b) ldc.i4.1 1 | |
[ 3] 300 (0x12c) sub | |
[ 2] 301 (0x12d) dup | |
lvaGrabTemp returning 36 (V36 tmp14) called for dup spill. | |
STMT00060 ( 0x127[E-] ... ??? ) | |
[000195] DA--------- * STORE_LCL_VAR int V36 tmp14 | |
[000194] ----------- \--* SUB int | |
[000192] ----------- +--* LCL_VAR int V09 loc5 | |
[000193] ----------- \--* CNS_INT int 1 | |
Marked V36 as a single def local | |
[ 3] 302 (0x12e) stloc.s 5 | |
STMT00061 ( ??? ... ??? ) | |
[000198] DA--------- * STORE_LCL_VAR int V09 loc5 | |
[000197] ----------- \--* LCL_VAR int V36 tmp14 | |
[ 2] 304 (0x130) ldloc.0 | |
[ 3] 305 (0x131) ldloc.s 15 | |
[ 4] 307 (0x133) callvirt 0A0000AE | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ref, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Item -- context 0x7f4876028ee9 | |
Class context: System.Collections.Generic.List`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00062 ( ??? ... ??? ) | |
[000201] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000199] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000200] ----------- arg1 \--* LCL_VAR int V19 loc15 | |
[ 3] 312 (0x138) stelem 1B00000F | |
STMT00063 ( ??? ... ??? ) | |
[000204] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000191] ----------- arg0 +--* LCL_VAR ref V08 loc4 | |
[000203] ----------- arg1 +--* CAST long <- int | |
[000196] ----------- | \--* LCL_VAR int V36 tmp14 | |
[000202] --C-------- arg2 \--* RET_EXPR ref (for [000201]) | |
[ 0] 317 (0x13d) ldc.i4.0 0 | |
[ 1] 318 (0x13e) stloc.s 16 | |
STMT00064 ( 0x13D[E-] ... ??? ) | |
[000206] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000205] ----------- \--* CNS_INT int 0 | |
[ 0] 320 (0x140) br.s | |
impImportBlockPending for BB29 | |
Importing BB29 (PC=387) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 387 (0x183) ldloc.s 16 | |
[ 1] 389 (0x185) ldloc.2 | |
[ 2] 390 (0x186) callvirt 0A0000BD | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f487dd16109 | |
Class context: System.Collections.Generic.List`1[ubyte[]] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00065 ( 0x183[E-] ... ??? ) | |
[000209] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f487dd16109) | |
[000208] ----------- this \--* LCL_VAR ref V06 loc2 | |
[ 2] 395 (0x18b) blt.s | |
STMT00066 ( 0x183[E-] ... ??? ) | |
[000212] --C-------- * JTRUE void | |
[000211] --C-------- \--* LT int | |
[000207] ----------- +--* LCL_VAR int V20 loc16 | |
[000210] --C-------- \--* RET_EXPR int (for [000209]) | |
impImportBlockPending for BB30 | |
impImportBlockPending for BB23 | |
Importing BB23 (PC=322) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 322 (0x142) ldloc.2 | |
[ 1] 323 (0x143) ldloc.s 16 | |
[ 2] 325 (0x145) callvirt 0A0000BA | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ref, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Item -- context 0x7f487dd16109 | |
Class context: System.Collections.Generic.List`1[ubyte[]] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00067 ( 0x142[E-] ... ??? ) | |
[000215] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f487dd16109) | |
[000213] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000214] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
[ 1] 330 (0x14a) stloc.s 17 | |
STMT00068 ( 0x142[E-] ... ??? ) | |
[000217] DAC-------- * STORE_LCL_VAR ref V21 loc17 | |
[000216] --C-------- \--* RET_EXPR ref (for [000215]) | |
[ 0] 332 (0x14c) ldloc.s 17 | |
[ 1] 334 (0x14e) brfalse.s | |
STMT00069 ( 0x14C[E-] ... ??? ) | |
[000221] ----------- * JTRUE void | |
[000220] ----------- \--* EQ int | |
[000218] ----------- +--* LCL_VAR ref V21 loc17 | |
[000219] ----------- \--* CNS_INT ref null | |
impImportBlockPending for BB24 | |
impImportBlockPending for BB28 | |
Importing BB28 (PC=381) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 381 (0x17d) ldloc.s 16 | |
[ 1] 383 (0x17f) ldc.i4.1 1 | |
[ 2] 384 (0x180) add | |
[ 1] 385 (0x181) stloc.s 16 | |
STMT00070 ( 0x17D[E-] ... ??? ) | |
[000225] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000224] ----------- \--* ADD int | |
[000222] ----------- +--* LCL_VAR int V20 loc16 | |
[000223] ----------- \--* CNS_INT int 1 | |
impImportBlockPending for BB29 | |
Importing BB24 (PC=336) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 336 (0x150) ldloc.s 15 | |
[ 1] 338 (0x152) ldloc.s 17 | |
[ 2] 340 (0x154) ldlen | |
[ 2] 341 (0x155) conv.i4 | |
[ 2] 342 (0x156) bge.s | |
STMT00071 ( 0x150[E-] ... ??? ) | |
[000230] ---X------- * JTRUE void | |
[000229] ---X------- \--* GE int | |
[000226] ----------- +--* LCL_VAR int V19 loc15 | |
[000228] ---X------- \--* ARR_LENGTH int | |
[000227] ----------- \--* LCL_VAR ref V21 loc17 | |
impImportBlockPending for BB25 | |
impImportBlockPending for BB28 | |
Importing BB25 (PC=344) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 344 (0x158) ldloc.s 17 | |
[ 1] 346 (0x15a) ldloc.s 15 | |
[ 2] 348 (0x15c) ldelem.u1 | |
[ 1] 349 (0x15d) brfalse.s | |
STMT00072 ( 0x158[E-] ... ??? ) | |
[000237] ---XG------ * JTRUE void | |
[000236] ---XG------ \--* EQ int | |
[000234] n--XG------ +--* IND ubyte | |
[000233] ---XG------ | \--* INDEX_ADDR byref ubyte[] | |
[000231] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000232] ----------- | \--* LCL_VAR int V19 loc15 | |
[000235] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB26 | |
impImportBlockPending for BB28 | |
Importing BB26 (PC=351) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 351 (0x15f) ldloc.s 17 | |
[ 1] 353 (0x161) ldloc.s 15 | |
[ 2] 355 (0x163) ldc.i4.0 0 | |
[ 3] 356 (0x164) stelem.i1 | |
STMT00073 ( 0x15F[E-] ... ??? ) | |
[000242] nA-XG------ * STOREIND byte | |
[000241] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000238] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000239] ----------- | \--* LCL_VAR int V19 loc15 | |
[000240] ----------- \--* CNS_INT int 0 | |
[ 0] 357 (0x165) ldloc.s 17 | |
[ 1] 359 (0x167) call 2B000013 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
CheckCanInline: fetching method info for inline candidate AsSpan -- context 0x7f487dd1f120 | |
Method context: System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte]' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
**** getSystemVAmd64PassStructInRegisterDescriptor(0x760c3338 (System.Span`1[ubyte]), ...) => | |
passedInRegisters = true | |
eightByteCount = 2 | |
eightByte #0 -- classification: IntegerByReference, byteSize: 8, byteOffset: 0 | |
eightByte #1 -- classification: Integer, byteSize: 8, byteOffset: 8 | |
**** getSystemVAmd64PassStructInRegisterDescriptor(0x760c3338 (System.Span`1[ubyte]), ...) => | |
passedInRegisters = true | |
eightByteCount = 2 | |
eightByte #0 -- classification: IntegerByReference, byteSize: 8, byteOffset: 0 | |
eightByte #1 -- classification: Integer, byteSize: 8, byteOffset: 8 | |
**** getSystemVAmd64PassStructInRegisterDescriptor(0x760c3338 (System.Span`1[ubyte]), ...) => | |
passedInRegisters = true | |
eightByteCount = 2 | |
eightByte #0 -- classification: IntegerByReference, byteSize: 8, byteOffset: 0 | |
eightByte #1 -- classification: Integer, byteSize: 8, byteOffset: 8 | |
STMT00074 ( 0x165[E-] ... ??? ) | |
[000244] I-C-G------ * CALL struct System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (exactContextHnd=0x0x7f487dd1f120) | |
[000243] ----------- arg0 \--* LCL_VAR ref V21 loc17 | |
[ 1] 364 (0x16c) ldc.i4.1 1 | |
[ 2] 365 (0x16d) call 2B000014 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
Calling impNormStructVal on: | |
[000245] --C-------- * RET_EXPR struct(for [000244]) | |
lvaGrabTemp returning 37 (V37 tmp15) called for spilled call-like call argument. | |
STMT00075 ( 0x165[E-] ... ??? ) | |
[000248] DAC-------- * STORE_LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000245] --C-------- \--* RET_EXPR struct(for [000244]) | |
resulting tree: | |
[000249] ----------- * LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
CheckCanInline: fetching method info for inline candidate IndexOf -- context 0x7f487dd1f178 | |
Method context: System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00076 ( ??? ... ??? ) | |
[000247] I-C-G------ * CALL int System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int (exactContextHnd=0x0x7f487dd1f178) | |
[000249] ----------- arg0 +--* LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000246] ----------- arg1 \--* CNS_INT int 1 | |
[ 1] 370 (0x172) ldc.i4.m1 -1 | |
[ 2] 371 (0x173) bne.un.s | |
STMT00077 ( ??? ... ??? ) | |
[000253] --C-------- * JTRUE void | |
[000252] N-C------U- \--* NE int | |
[000250] --C-------- +--* RET_EXPR int (for [000247]) | |
[000251] ----------- \--* CNS_INT int -1 | |
impImportBlockPending for BB27 | |
impImportBlockPending for BB28 | |
Importing BB27 (PC=373) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 373 (0x175) ldloc.3 | |
[ 1] 374 (0x176) ldloc.s 16 | |
[ 2] 376 (0x178) callvirt 0A0000B2 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Enqueue -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00078 ( 0x175[E-] ... ??? ) | |
[000256] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000254] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000255] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
impImportBlockPending for BB28 | |
Importing BB30 (PC=397) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 397 (0x18d) ldloc.3 | |
[ 1] 398 (0x18e) callvirt 0A0000BE | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_Count -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:get_Count():int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00079 ( 0x18D[E-] ... ??? ) | |
[000258] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:get_Count():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000257] ----------- this \--* LCL_VAR ref V07 loc3 | |
[ 1] 403 (0x193) ldc.i4.0 0 | |
[ 2] 404 (0x194) bgt.s | |
STMT00080 ( 0x18D[E-] ... ??? ) | |
[000262] --C-------- * JTRUE void | |
[000261] --C-------- \--* GT int | |
[000259] --C-------- +--* RET_EXPR int (for [000258]) | |
[000260] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB31 | |
impImportBlockPending for BB22 | |
Importing BB31 (PC=406) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 406 (0x196) ldloc.s 4 | |
[ 1] 408 (0x198) ret | |
STMT00081 ( 0x196[E-] ... ??? ) | |
[000264] ----------- * RETURN ref | |
[000263] ----------- \--* LCL_VAR ref V08 loc4 | |
Importing BB02 (PC=003) of 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' | |
[ 0] 3 (0x003) call 0A0000A7 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
Named Intrinsic System.Collections.Generic.EqualityComparer`1.get_Default: Recognized | |
Registering 0x7f487e598568 in SignatureToLookupInfoMap | |
lvaGrabTemp returning 38 (V38 tmp16) called for spilling helperCall. | |
STMT00082 ( 0x003[E-] ... ??? ) | |
[000269] DAC-G------ * STORE_LCL_VAR long V38 tmp16 | |
[000268] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000266] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000267] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598568 global ptr | |
CheckCanInline: fetching method info for inline candidate get_Default -- context 0x7f4875f8a9b1 | |
Class context: System.Collections.Generic.EqualityComparer`1[System.__Canon] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00083 ( ??? ... ??? ) | |
[000265] I-C-G------ * CALL ref System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] (exactContextHnd=0x0x7f4875f8a9b1) | |
[000271] ----------- gctx \--* RUNTIMELOOKUP long 0x7f4875f8a9b0 class | |
[000270] ----------- \--* LCL_VAR long V38 tmp16 | |
[ 1] 8 (0x008) starg.s 2 | |
STMT00084 ( ??? ... ??? ) | |
[000273] DAC-------- * STORE_LCL_VAR ref V03 arg2 | |
[000272] --C-------- \--* RET_EXPR ref (for [000265]) | |
impImportBlockPending for BB03 | |
setting likelihood of BB17 -> BB33 to 1 | |
Adding pred edges from BBJ_EHFINALLYRET blocks | |
After impImport() added blocks for try,catch,finally | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) i IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) i IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) i IBC newobj | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) i IBC bwd bwd-target hist | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) i IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) i IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { i IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 i IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 i IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 i IBC rare idxlen bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 i IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 i IBC rare idxlen bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 i IBC rare bwd bwd-src hist | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB32(1) (always) T0 } i IBC rare bwd | |
BB32 [0031] 1 BB14 0 0 [???..???)-> BB15(1) (callf ) i IBC rare internal | |
BB33 [0032] 1 BB17 0 0 [???..???)-> BB18(1) (callfr) i IBC rare internal | |
BB15 [0014] 2 0 BB32 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { i IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 i IBC bwd hist | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> BB33(1) (finret) H0 } i IBC bwd | |
BB18 [0017] 1 BB33 0 0 [0F1..0F9)-> BB19(1) (always) i IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) i IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) i IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) i IBC idxlen | |
BB22 [0021] 2 BB21,BB30 2 2 [11F..142)-> BB29(1) (always) i IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) i IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB28(0.48),BB25(0.52) ( cond ) i IBC rare idxlen bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB28(0.48),BB26(0.52) ( cond ) i IBC rare idxlen bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB28(0.48),BB27(0.52) ( cond ) i IBC rare idxlen bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) i IBC rare bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 2 2 [17D..183)-> BB29(1) (always) i IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) i IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB22(0),BB31(1) ( cond ) i IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
** Note: root method IL was partially imported -- imported 405 of 409 bytes of method IL | |
*************** Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) i IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) i IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) i IBC newobj | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) i IBC bwd bwd-target hist | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) i IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) i IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { i IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 i IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 i IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 i IBC rare idxlen bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 i IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 i IBC rare idxlen bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 i IBC rare bwd bwd-src hist | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB32(1) (always) T0 } i IBC rare bwd | |
BB32 [0031] 1 BB14 0 0 [???..???)-> BB15(1) (callf ) i IBC rare internal | |
BB33 [0032] 1 BB17 0 0 [???..???)-> BB18(1) (callfr) i IBC rare internal | |
BB15 [0014] 2 0 BB32 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { i IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 i IBC bwd hist | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> BB33(1) (finret) H0 } i IBC bwd | |
BB18 [0017] 1 BB33 0 0 [0F1..0F9)-> BB19(1) (always) i IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) i IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) i IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) i IBC idxlen | |
BB22 [0021] 2 BB21,BB30 2 2 [11F..142)-> BB29(1) (always) i IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) i IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB28(0.48),BB25(0.52) ( cond ) i IBC rare idxlen bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB28(0.48),BB26(0.52) ( cond ) i IBC rare idxlen bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB28(0.48),BB27(0.52) ( cond ) i IBC rare idxlen bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) i IBC rare bwd | |
BB28 [0027] 5 BB23,BB24,BB25,BB26,BB27 2 2 [17D..183)-> BB29(1) (always) i IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) i IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB22(0),BB31(1) ( cond ) i IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..003) -> BB03(0),BB02(1) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0000] | |
STMT00000 ( 0x000[E-] ... 0x001 ) | |
[000003] ----------- * JTRUE void | |
[000002] ----------- \--* NE int | |
[000000] ----------- +--* LCL_VAR ref V03 arg2 | |
[000001] ----------- \--* CNS_INT ref null | |
------------ BB02 [0001] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0001] | |
STMT00082 ( 0x003[E-] ... 0x008 ) | |
[000269] DAC-G------ * STORE_LCL_VAR long V38 tmp16 | |
[000268] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000266] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000267] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598568 global ptr | |
***** BB02 [0001] | |
STMT00083 ( ??? ... ??? ) | |
[000265] I-C-G------ * CALL ref System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] (exactContextHnd=0x0x7f4875f8a9b1) | |
[000271] ----------- gctx \--* RUNTIMELOOKUP long 0x7f4875f8a9b0 class | |
[000270] ----------- \--* LCL_VAR long V38 tmp16 | |
***** BB02 [0001] | |
STMT00084 ( ??? ... ??? ) | |
[000273] DAC-------- * STORE_LCL_VAR ref V03 arg2 | |
[000272] --C-------- \--* RET_EXPR ref (for [000265]) | |
------------ BB03 [0002] [00A..03E) -> BB20(1) (always), preds={BB01,BB02} succs={BB20} | |
***** BB03 [0002] | |
STMT00001 ( 0x00A[E-] ... 0x016 ) | |
[000007] DAC-G------ * STORE_LCL_VAR long V24 tmp2 | |
[000006] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000004] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000005] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e597e80 global ptr | |
***** BB03 [0002] | |
STMT00002 ( ??? ... ??? ) | |
[000011] DA--------- * STORE_LCL_VAR ref V23 tmp1 | |
[000010] ----------- \--* ALLOCOBJ ref | |
[000009] ----------- \--* RUNTIMELOOKUP long 0x7f4876028ee8 class | |
[000008] ----------- \--* LCL_VAR long V24 tmp2 | |
***** BB03 [0002] | |
STMT00003 ( ??? ... ??? ) | |
[000013] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f4876028ee9) | |
[000012] ----------- this \--* LCL_VAR ref V23 tmp1 | |
***** BB03 [0002] | |
STMT00004 ( 0x00F[--] ... ??? ) | |
[000017] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000015] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 arg0 | |
***** BB03 [0002] | |
STMT00005 ( 0x016[--] ... ??? ) | |
[000018] DA--------- * STORE_LCL_VAR ref V04 loc0 | |
[000014] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB03 [0002] | |
STMT00006 ( 0x017[E-] ... 0x01E ) | |
[000023] DAC-G------ * STORE_LCL_VAR long V26 tmp4 | |
[000022] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000020] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000021] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5982b0 global ptr | |
***** BB03 [0002] | |
STMT00007 ( ??? ... ??? ) | |
[000027] DA--------- * STORE_LCL_VAR ref V25 tmp3 | |
[000026] ----------- \--* ALLOCOBJ ref | |
[000025] ----------- \--* RUNTIMELOOKUP long 0x7f487806e338 class | |
[000024] ----------- \--* LCL_VAR long V26 tmp4 | |
***** BB03 [0002] | |
STMT00008 ( ??? ... ??? ) | |
[000029] I-C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (exactContextHnd=0x0x7f487806e339) | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000019] ----------- arg1 \--* LCL_VAR ref V03 arg2 | |
***** BB03 [0002] | |
STMT00009 ( 0x01D[--] ... ??? ) | |
[000032] DA--------- * STORE_LCL_VAR ref V10 loc6 | |
[000031] ----------- \--* LCL_VAR ref V01 arg0 | |
***** BB03 [0002] | |
STMT00010 ( ??? ... 0x029 ) | |
[000036] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000035] ----------- arg2 \--* CNS_INT int 0 | |
***** BB03 [0002] | |
STMT00011 ( 0x029[--] ... ??? ) | |
[000037] DA--------- * STORE_LCL_VAR ref V05 loc1 | |
[000030] ----------- \--* LCL_VAR ref V25 tmp3 | |
***** BB03 [0002] | |
STMT00012 ( 0x02A[E-] ... 0x02F ) | |
[000040] DA--------- * STORE_LCL_VAR ref V27 tmp5 | |
[000039] ----------- \--* ALLOCOBJ ref | |
[000038] H---------- \--* CNS_INT(h) long 0x7f487dd16108 class System.Collections.Generic.List`1[ubyte[]] | |
***** BB03 [0002] | |
STMT00013 ( ??? ... ??? ) | |
[000042] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f487dd16109) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
***** BB03 [0002] | |
STMT00014 ( 0x02F[--] ... ??? ) | |
[000044] DA--------- * STORE_LCL_VAR ref V06 loc2 | |
[000043] ----------- \--* LCL_VAR ref V27 tmp5 | |
***** BB03 [0002] | |
STMT00015 ( 0x030[E-] ... 0x035 ) | |
[000047] DA--------- * STORE_LCL_VAR ref V28 tmp6 | |
[000046] ----------- \--* ALLOCOBJ ref | |
[000045] H---------- \--* CNS_INT(h) long 0x7f487dd15f40 class System.Collections.Generic.Queue`1[int] | |
***** BB03 [0002] | |
STMT00016 ( ??? ... ??? ) | |
[000049] I-C-G------ * CALL void System.Collections.Generic.Queue`1[int]:.ctor():this (exactContextHnd=0x0x7f487dd15f41) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
***** BB03 [0002] | |
STMT00017 ( 0x035[--] ... ??? ) | |
[000051] DA--------- * STORE_LCL_VAR ref V07 loc3 | |
[000050] ----------- \--* LCL_VAR ref V28 tmp6 | |
***** BB03 [0002] | |
STMT00018 ( 0x036[E-] ... 0x037 ) | |
[000053] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000052] ----------- \--* CNS_INT int 0 | |
------------ BB04 [0003] [03E..05F) -> BB06(0),BB05(1) (cond), preds={BB20} succs={BB05,BB06} | |
***** BB04 [0003] | |
STMT00021 ( 0x03E[E-] ... 0x046 ) | |
[000062] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000060] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000061] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
***** BB04 [0003] | |
STMT00022 ( 0x03E[E-] ... ??? ) | |
[000064] DAC-------- * STORE_LCL_VAR ref V12 loc8 | |
[000063] --C-------- \--* RET_EXPR ref (for [000062]) | |
***** BB04 [0003] | |
STMT00023 ( 0x048[E-] ... 0x050 ) | |
[000068] DAC-G------ * STORE_LCL_VAR ref V13 loc9 | |
[000067] --C-G------ \--* CALL ref System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this | |
[000065] ----------- this +--* LCL_VAR ref V02 arg1 | |
[000066] ----------- arg1 \--* LCL_VAR ref V12 loc8 | |
***** BB04 [0003] | |
STMT00024 ( 0x052[E-] ... 0x059 ) | |
[000073] DAC-G------ * STORE_LCL_VAR long V29 tmp7 | |
[000072] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000070] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000071] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983a8 global ptr | |
***** BB04 [0003] | |
STMT00025 ( ??? ... ??? ) | |
[000075] DA--------- * STORE_LCL_VAR long V30 tmp8 | |
[000074] ----------- \--* LCL_VAR long V29 tmp7 | |
***** BB04 [0003] | |
STMT00026 ( ??? ... ??? ) | |
[000078] DACXG------ * STORE_LCL_VAR int V14 loc10 | |
[000077] --CXG------ \--* CALL ind stub int | |
[000069] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000076] ----------- calli tgt \--* LCL_VAR long V30 tmp8 | |
***** BB04 [0003] | |
STMT00027 ( 0x05B[E-] ... 0x05D ) | |
[000082] ----------- * JTRUE void | |
[000081] ----------- \--* NE int | |
[000079] ----------- +--* LCL_VAR int V14 loc10 | |
[000080] ----------- \--* CNS_INT int 0 | |
------------ BB05 [0004] [05F..073) -> BB19(1) (always), preds={BB04} succs={BB19} | |
***** BB05 [0004] | |
STMT00052 ( 0x05F[E-] ... 0x06E ) | |
[000168] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000166] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000167] ----------- arg1 \--* CNS_INT ref null | |
***** BB05 [0004] | |
STMT00053 ( 0x066[E-] ... ??? ) | |
[000171] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000169] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000170] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
------------ BB06 [0005] [073..090) -> BB07(1) (always), preds={BB04} succs={BB07} | |
***** BB06 [0005] | |
STMT00028 ( 0x073[E-] ... 0x085 ) | |
[000084] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000083] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB06 [0005] | |
STMT00029 ( 0x073[E-] ... ??? ) | |
[000087] I-C-G------ * CALL int System.Math:Max(int,int):int (exactContextHnd=0x0x7f4875f5cb69) | |
[000085] --C-------- arg0 +--* RET_EXPR int (for [000084]) | |
[000086] ----------- arg1 \--* LCL_VAR int V14 loc10 | |
***** BB06 [0005] | |
STMT00030 ( 0x073[E-] ... ??? ) | |
[000092] DACXG------ * STORE_LCL_VAR ref V15 loc11 | |
[000091] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_VC | |
[000089] H---------- arg0 +--* CNS_INT(h) long 0x7f48767c27d0 class ubyte[] | |
[000090] --C-------- arg1 \--* CAST long <- int | |
[000088] --C-------- \--* RET_EXPR int (for [000087]) | |
***** BB06 [0005] | |
STMT00031 ( 0x087[E-] ... 0x08E ) | |
[000097] DAC-G------ * STORE_LCL_VAR long V31 tmp9 | |
[000096] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000094] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000095] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983c0 global ptr | |
***** BB06 [0005] | |
STMT00032 ( ??? ... ??? ) | |
[000099] DA--------- * STORE_LCL_VAR long V32 tmp10 | |
[000098] ----------- \--* LCL_VAR long V31 tmp9 | |
***** BB06 [0005] | |
STMT00033 ( ??? ... ??? ) | |
[000102] DACXG------ * STORE_LCL_VAR ref V16 loc12 | |
[000101] --CXG------ \--* CALL ind stub ref | |
[000093] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000100] ----------- calli tgt \--* LCL_VAR long V32 tmp10 | |
------------ BB07 [0006] [090..092) -> BB13(1) (always), preds={BB06} succs={BB13} | |
------------ BB08 [0007] [092..0A7) -> BB10(0.48),BB09(0.52) (cond), preds={BB13} succs={BB09,BB10} | |
***** BB08 [0007] | |
STMT00035 ( 0x092[E-] ... 0x099 ) | |
[000112] DAC-G------ * STORE_LCL_VAR long V33 tmp11 | |
[000111] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000109] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000110] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983d8 global ptr | |
***** BB08 [0007] | |
STMT00036 ( ??? ... ??? ) | |
[000114] DA--------- * STORE_LCL_VAR long V34 tmp12 | |
[000113] ----------- \--* LCL_VAR long V33 tmp11 | |
***** BB08 [0007] | |
STMT00037 ( ??? ... ??? ) | |
[000117] DACXG------ * STORE_LCL_VAR ref V17 loc13 | |
[000116] --CXG------ \--* CALL ind stub ref | |
[000108] ----------- this +--* LCL_VAR ref V16 loc12 | |
[000115] ----------- calli tgt \--* LCL_VAR long V34 tmp12 | |
***** BB08 [0007] | |
STMT00038 ( 0x09B[E-] ... 0x0A5 ) | |
[000121] I-C-G------ * CALL nullcheck int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this (exactContextHnd=0x0x7f487806e339) | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000120] ----------- arg2 \--* LCL_ADDR byref V18 loc14 [+0] | |
***** BB08 [0007] | |
STMT00039 ( 0x09B[E-] ... ??? ) | |
[000125] --C-------- * JTRUE void | |
[000124] --C-------- \--* NE int | |
[000122] --C-------- +--* RET_EXPR int (for [000121]) | |
[000123] ----------- \--* CNS_INT int 0 | |
------------ BB09 [0008] [0A7..0C1) -> BB10(1) (always), preds={BB08} succs={BB10} | |
***** BB09 [0008] | |
STMT00043 ( 0x0A7[E-] ... 0x0AD ) | |
[000142] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000141] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB09 [0008] | |
STMT00044 ( 0x0A7[E-] ... ??? ) | |
[000144] DAC-------- * STORE_LCL_VAR int V18 loc14 | |
[000143] --C-------- \--* RET_EXPR int (for [000142]) | |
***** BB09 [0008] | |
STMT00045 ( 0x0AF[E-] ... 0x0BC ) | |
[000148] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000147] ----------- arg2 \--* LCL_VAR int V18 loc14 | |
***** BB09 [0008] | |
STMT00046 ( 0x0B9[E-] ... ??? ) | |
[000151] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000149] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
------------ BB10 [0009] [0C1..0C9) -> BB12(0.48),BB11(0.52) (cond), preds={BB08,BB09} succs={BB11,BB12} | |
***** BB10 [0009] | |
STMT00040 ( 0x0C1[E-] ... 0x0C7 ) | |
[000130] ---X------- * JTRUE void | |
[000129] ---X------- \--* LT int | |
[000126] ----------- +--* LCL_VAR int V18 loc14 | |
[000128] ---X------- \--* ARR_LENGTH int | |
[000127] ----------- \--* LCL_VAR ref V15 loc11 | |
------------ BB11 [0010] [0C9..0D4) -> BB12(1) (always), preds={BB10} succs={BB12} | |
***** BB11 [0010] | |
STMT00042 ( 0x0C9[E-] ... 0x0CF ) | |
[000140] I-C-G------ * CALL void System.Array:Resize[ubyte](byref,int) (exactContextHnd=0x0x7f487dd1f070) | |
[000136] ----------- arg0 +--* LCL_ADDR byref V15 loc11 [+0] | |
[000139] ----------- arg1 \--* ADD int | |
[000137] ----------- +--* LCL_VAR int V18 loc14 | |
[000138] ----------- \--* CNS_INT int 1 | |
------------ BB12 [0011] [0D4..0DA) -> BB13(1) (always), preds={BB10,BB11} succs={BB13} | |
***** BB12 [0011] | |
STMT00041 ( 0x0D4[E-] ... 0x0D9 ) | |
[000135] nA-XG------ * STOREIND byte | |
[000134] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000131] ----------- | +--* LCL_VAR ref V15 loc11 | |
[000132] ----------- | \--* LCL_VAR int V18 loc14 | |
[000133] ----------- \--* CNS_INT int 1 | |
------------ BB13 [0012] [0DA..0E3) -> BB08(0.9),BB14(0.1) (cond), preds={BB07,BB12} succs={BB14,BB08} | |
***** BB13 [0012] | |
STMT00034 ( 0x0DA[E-] ... 0x0E1 ) | |
[000107] --C-G------ * JTRUE void | |
[000106] --C-G------ \--* NE int | |
[000104] --C-G------ +--* CALLV stub int System.Collections.IEnumerator:MoveNext():ubyte:this | |
[000103] ----------- this | \--* LCL_VAR ref V16 loc12 | |
[000105] ----------- \--* CNS_INT int 0 | |
------------ BB14 [0013] [0E3..0E5) -> BB32(1) (always), preds={BB13} succs={BB32} | |
------------ BB32 [0031] [???..???) -> BB15(1) (callf), preds={BB14} succs={BB15} | |
------------ BB33 [0032] [???..???) -> BB18(1) (callfr), preds={BB17} succs={BB18} | |
------------ BB15 [0014] [0E5..0E9) -> BB17(0.48),BB16(0.52) (cond), preds={BB32} succs={BB16,BB17} | |
***** BB15 [0014] | |
STMT00049 ( 0x0E5[E-] ... 0x0E7 ) | |
[000162] ----------- * JTRUE void | |
[000161] ----------- \--* EQ int | |
[000159] ----------- +--* LCL_VAR ref V16 loc12 | |
[000160] ----------- \--* CNS_INT ref null | |
------------ BB16 [0015] [0E9..0F0) -> BB17(1) (always), preds={BB15} succs={BB17} | |
***** BB16 [0015] | |
STMT00051 ( 0x0E9[E-] ... 0x0EB ) | |
[000165] --C-G------ * CALLV stub void System.IDisposable:Dispose():this | |
[000164] ----------- this \--* LCL_VAR ref V16 loc12 | |
------------ BB17 [0016] [0F0..0F1) -> BB33(1) (finret), preds={BB15,BB16} succs={BB33} | |
***** BB17 [0016] | |
STMT00050 ( 0x0F0[E-] ... 0x0F0 ) | |
[000163] ----------- * RETFILT void | |
------------ BB18 [0017] [0F1..0F9) -> BB19(1) (always), preds={BB33} succs={BB19} | |
***** BB18 [0017] | |
STMT00047 ( 0x0F1[E-] ... 0x0F4 ) | |
[000154] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000152] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000153] ----------- arg1 \--* LCL_VAR ref V15 loc11 | |
------------ BB19 [0018] [0F9..0FF) -> BB20(1) (always), preds={BB05,BB18} succs={BB20} | |
***** BB19 [0018] | |
STMT00048 ( 0x0F9[E-] ... 0x0FD ) | |
[000158] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000157] ----------- \--* ADD int | |
[000155] ----------- +--* LCL_VAR int V11 loc7 | |
[000156] ----------- \--* CNS_INT int 1 | |
------------ BB20 [0019] [0FF..10C) -> BB04(0.5),BB21(0.5) (cond), preds={BB03,BB19} succs={BB21,BB04} | |
***** BB20 [0019] | |
STMT00019 ( 0x0FF[E-] ... 0x107 ) | |
[000056] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000055] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB20 [0019] | |
STMT00020 ( 0x0FF[E-] ... ??? ) | |
[000059] --C-------- * JTRUE void | |
[000058] --C-------- \--* LT int | |
[000054] ----------- +--* LCL_VAR int V11 loc7 | |
[000057] --C-------- \--* RET_EXPR int (for [000056]) | |
------------ BB21 [0020] [10C..11F) -> BB22(1) (always), preds={BB20} succs={BB22} | |
***** BB21 [0020] | |
STMT00054 ( 0x10C[E-] ... 0x117 ) | |
[000173] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000172] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB21 [0020] | |
STMT00055 ( 0x10C[E-] ... ??? ) | |
[000178] DAC-G------ * STORE_LCL_VAR long V35 tmp13 | |
[000177] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000175] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000176] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598478 global ptr | |
***** BB21 [0020] | |
STMT00056 ( ??? ... ??? ) | |
[000183] DACXG------ * STORE_LCL_VAR ref V08 loc4 | |
[000182] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_OBJ | |
[000180] ----------- arg0 +--* RUNTIMELOOKUP long 0x7f487709c3f0 class | |
[000179] ----------- | \--* LCL_VAR long V35 tmp13 | |
[000181] --C-------- arg1 \--* CAST long <- int | |
[000174] --C-------- \--* RET_EXPR int (for [000173]) | |
***** BB21 [0020] | |
STMT00057 ( 0x119[E-] ... 0x11D ) | |
[000186] DA-X------- * STORE_LCL_VAR int V09 loc5 | |
[000185] ---X------- \--* ARR_LENGTH int | |
[000184] ----------- \--* LCL_VAR ref V08 loc4 | |
------------ BB22 [0021] [11F..142) -> BB29(1) (always), preds={BB21,BB30} succs={BB29} | |
***** BB22 [0021] | |
STMT00058 ( 0x11F[E-] ... 0x125 ) | |
[000188] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:Dequeue():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000187] ----------- this \--* LCL_VAR ref V07 loc3 | |
***** BB22 [0021] | |
STMT00059 ( 0x11F[E-] ... ??? ) | |
[000190] DAC-------- * STORE_LCL_VAR int V19 loc15 | |
[000189] --C-------- \--* RET_EXPR int (for [000188]) | |
***** BB22 [0021] | |
STMT00060 ( 0x127[E-] ... 0x12E ) | |
[000195] DA--------- * STORE_LCL_VAR int V36 tmp14 | |
[000194] ----------- \--* SUB int | |
[000192] ----------- +--* LCL_VAR int V09 loc5 | |
[000193] ----------- \--* CNS_INT int 1 | |
***** BB22 [0021] | |
STMT00061 ( ??? ... ??? ) | |
[000198] DA--------- * STORE_LCL_VAR int V09 loc5 | |
[000197] ----------- \--* LCL_VAR int V36 tmp14 | |
***** BB22 [0021] | |
STMT00062 ( ??? ... 0x138 ) | |
[000201] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000199] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000200] ----------- arg1 \--* LCL_VAR int V19 loc15 | |
***** BB22 [0021] | |
STMT00063 ( ??? ... ??? ) | |
[000204] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000191] ----------- arg0 +--* LCL_VAR ref V08 loc4 | |
[000203] ----------- arg1 +--* CAST long <- int | |
[000196] ----------- | \--* LCL_VAR int V36 tmp14 | |
[000202] --C-------- arg2 \--* RET_EXPR ref (for [000201]) | |
***** BB22 [0021] | |
STMT00064 ( 0x13D[E-] ... 0x13E ) | |
[000206] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000205] ----------- \--* CNS_INT int 0 | |
------------ BB23 [0022] [142..150) -> BB28(1),BB24(0) (cond), preds={BB29} succs={BB24,BB28} | |
***** BB23 [0022] | |
STMT00067 ( 0x142[E-] ... 0x14A ) | |
[000215] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f487dd16109) | |
[000213] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000214] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
***** BB23 [0022] | |
STMT00068 ( 0x142[E-] ... ??? ) | |
[000217] DAC-------- * STORE_LCL_VAR ref V21 loc17 | |
[000216] --C-------- \--* RET_EXPR ref (for [000215]) | |
***** BB23 [0022] | |
STMT00069 ( 0x14C[E-] ... 0x14E ) | |
[000221] ----------- * JTRUE void | |
[000220] ----------- \--* EQ int | |
[000218] ----------- +--* LCL_VAR ref V21 loc17 | |
[000219] ----------- \--* CNS_INT ref null | |
------------ BB24 [0023] [150..158) -> BB28(0.48),BB25(0.52) (cond), preds={BB23} succs={BB25,BB28} | |
***** BB24 [0023] | |
STMT00071 ( 0x150[E-] ... 0x156 ) | |
[000230] ---X------- * JTRUE void | |
[000229] ---X------- \--* GE int | |
[000226] ----------- +--* LCL_VAR int V19 loc15 | |
[000228] ---X------- \--* ARR_LENGTH int | |
[000227] ----------- \--* LCL_VAR ref V21 loc17 | |
------------ BB25 [0024] [158..15F) -> BB28(0.48),BB26(0.52) (cond), preds={BB24} succs={BB26,BB28} | |
***** BB25 [0024] | |
STMT00072 ( 0x158[E-] ... 0x15D ) | |
[000237] ---XG------ * JTRUE void | |
[000236] ---XG------ \--* EQ int | |
[000234] n--XG------ +--* IND ubyte | |
[000233] ---XG------ | \--* INDEX_ADDR byref ubyte[] | |
[000231] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000232] ----------- | \--* LCL_VAR int V19 loc15 | |
[000235] ----------- \--* CNS_INT int 0 | |
------------ BB26 [0025] [15F..175) -> BB28(0.48),BB27(0.52) (cond), preds={BB25} succs={BB27,BB28} | |
***** BB26 [0025] | |
STMT00073 ( 0x15F[E-] ... 0x164 ) | |
[000242] nA-XG------ * STOREIND byte | |
[000241] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000238] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000239] ----------- | \--* LCL_VAR int V19 loc15 | |
[000240] ----------- \--* CNS_INT int 0 | |
***** BB26 [0025] | |
STMT00074 ( 0x165[E-] ... 0x173 ) | |
[000244] I-C-G------ * CALL struct System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (exactContextHnd=0x0x7f487dd1f120) | |
[000243] ----------- arg0 \--* LCL_VAR ref V21 loc17 | |
***** BB26 [0025] | |
STMT00075 ( 0x165[E-] ... ??? ) | |
[000248] DAC-------- * STORE_LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000245] --C-------- \--* RET_EXPR struct(for [000244]) | |
***** BB26 [0025] | |
STMT00076 ( ??? ... ??? ) | |
[000247] I-C-G------ * CALL int System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int (exactContextHnd=0x0x7f487dd1f178) | |
[000249] ----------- arg0 +--* LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000246] ----------- arg1 \--* CNS_INT int 1 | |
***** BB26 [0025] | |
STMT00077 ( ??? ... ??? ) | |
[000253] --C-------- * JTRUE void | |
[000252] N-C------U- \--* NE int | |
[000250] --C-------- +--* RET_EXPR int (for [000247]) | |
[000251] ----------- \--* CNS_INT int -1 | |
------------ BB27 [0026] [175..17D) -> BB28(1) (always), preds={BB26} succs={BB28} | |
***** BB27 [0026] | |
STMT00078 ( 0x175[E-] ... 0x178 ) | |
[000256] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000254] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000255] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
------------ BB28 [0027] [17D..183) -> BB29(1) (always), preds={BB23,BB24,BB25,BB26,BB27} succs={BB29} | |
***** BB28 [0027] | |
STMT00070 ( 0x17D[E-] ... 0x181 ) | |
[000225] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000224] ----------- \--* ADD int | |
[000222] ----------- +--* LCL_VAR int V20 loc16 | |
[000223] ----------- \--* CNS_INT int 1 | |
------------ BB29 [0028] [183..18D) -> BB23(0.5),BB30(0.5) (cond), preds={BB22,BB28} succs={BB30,BB23} | |
***** BB29 [0028] | |
STMT00065 ( 0x183[E-] ... 0x18B ) | |
[000209] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f487dd16109) | |
[000208] ----------- this \--* LCL_VAR ref V06 loc2 | |
***** BB29 [0028] | |
STMT00066 ( 0x183[E-] ... ??? ) | |
[000212] --C-------- * JTRUE void | |
[000211] --C-------- \--* LT int | |
[000207] ----------- +--* LCL_VAR int V20 loc16 | |
[000210] --C-------- \--* RET_EXPR int (for [000209]) | |
------------ BB30 [0029] [18D..196) -> BB22(0),BB31(1) (cond), preds={BB29} succs={BB31,BB22} | |
***** BB30 [0029] | |
STMT00079 ( 0x18D[E-] ... 0x194 ) | |
[000258] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:get_Count():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000257] ----------- this \--* LCL_VAR ref V07 loc3 | |
***** BB30 [0029] | |
STMT00080 ( 0x18D[E-] ... ??? ) | |
[000262] --C-------- * JTRUE void | |
[000261] --C-------- \--* GT int | |
[000259] --C-------- +--* RET_EXPR int (for [000258]) | |
[000260] ----------- \--* CNS_INT int 0 | |
------------ BB31 [0030] [196..199) (return), preds={BB30} succs={} | |
***** BB31 [0030] | |
STMT00081 ( 0x196[E-] ... 0x198 ) | |
[000264] ----------- * RETURN ref | |
[000263] ----------- \--* LCL_VAR ref V08 loc4 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (33 profiled blocks, 0 unprofiled) | |
*************** Starting PHASE Profile instrumentation | |
EfficientEdgeCountInstrumentor: splitting up to 4 critical edges | |
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB24, jumpBlk=BB00, runRarely=true) | |
fgNewBBinRegion(jumpKind=BBJ_ALWAYS, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=true, insertAtEnd=false): inserting after BB33 | |
New Basic Block BB34 [0033] created. | |
Splitting edge from BB24 to BB28; adding BB34 | |
setting likelihood of BB34 -> BB28 to 1 | |
New relocated probe for BB24 -> BB28 [reloc to BB34 ] | |
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB25, jumpBlk=BB00, runRarely=true) | |
fgNewBBinRegion(jumpKind=BBJ_ALWAYS, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=true, insertAtEnd=false): inserting after BB34 | |
New Basic Block BB35 [0034] created. | |
Splitting edge from BB25 to BB28; adding BB35 | |
setting likelihood of BB35 -> BB28 to 1 | |
New relocated probe for BB25 -> BB28 [reloc to BB35 ] | |
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB26, jumpBlk=BB00, runRarely=true) | |
fgNewBBinRegion(jumpKind=BBJ_ALWAYS, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=true, insertAtEnd=false): inserting after BB35 | |
New Basic Block BB36 [0035] created. | |
Splitting edge from BB26 to BB28; adding BB36 | |
setting likelihood of BB36 -> BB28 to 1 | |
New relocated probe for BB26 -> BB28 [reloc to BB36 ] | |
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB30, jumpBlk=BB00, runRarely=false) | |
fgNewBBinRegion(jumpKind=BBJ_ALWAYS, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB31 | |
New Basic Block BB37 [0036] created. | |
Splitting edge from BB30 to BB22; adding BB37 | |
setting likelihood of BB37 -> BB22 to 1 | |
New relocated probe for BB30 -> BB22 [reloc to BB37 ] | |
Instrumenting method: 15 count probes, 6 class probes and 0 value probes | |
Instrumentation data base address is 0x7f487e5a5510 | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Scanning for calls to profile in BB04 | |
Found call [000067] with probe index 0 and ilOffset 0x4B | |
lvaGrabTemp returning 39 (V39 tmp17) called for handle histogram profile tmp. | |
Modified call is now | |
[000067] --C-G------ * CALL ref System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this | |
[000282] -ACXG------ this +--* COMMA ref | |
[000281] DA--------- | +--* STORE_LCL_VAR ref V39 tmp17 | |
[000065] ----------- | | \--* LCL_VAR ref V02 arg1 | |
[000280] --CXG------ | \--* COMMA ref | |
[000278] --CXG------ | +--* CALL help void CORINFO_HELP_DELEGATEPROFILE32 | |
[000276] ----------- arg0 | | +--* LCL_VAR ref V39 tmp17 | |
[000277] ----------- arg1 | | \--* CNS_INT long 0x7f487e5a5590 | |
[000279] ----------- | \--* LCL_VAR ref V39 tmp17 | |
[000066] ----------- arg1 \--* LCL_VAR ref V12 loc8 | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Scanning for calls to profile in BB13 | |
Found call [000104] with probe index 1 and ilOffset 0xDC | |
lvaGrabTemp returning 40 (V40 tmp18) called for handle histogram profile tmp. | |
Modified call is now | |
[000104] --C-G------ * CALLV stub int System.Collections.IEnumerator:MoveNext():ubyte:this | |
[000295] -ACXG------ this \--* COMMA ref | |
[000294] DA--------- +--* STORE_LCL_VAR ref V40 tmp18 | |
[000103] ----------- | \--* LCL_VAR ref V16 loc12 | |
[000293] --CXG------ \--* COMMA ref | |
[000291] --CXG------ +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000289] ----------- arg0 | +--* LCL_VAR ref V40 tmp18 | |
[000290] ----------- arg1 | \--* CNS_INT long 0x7f487e5a56a8 | |
[000292] ----------- \--* LCL_VAR ref V40 tmp18 | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Scanning for calls to profile in BB16 | |
Found call [000165] with probe index 2 and ilOffset 0xEB | |
lvaGrabTemp returning 41 (V41 tmp19) called for handle histogram profile tmp. | |
Modified call is now | |
[000165] --C-G------ * CALLV stub void System.IDisposable:Dispose():this | |
[000310] -ACXG------ this \--* COMMA ref | |
[000309] DA--------- +--* STORE_LCL_VAR ref V41 tmp19 | |
[000164] ----------- | \--* LCL_VAR ref V16 loc12 | |
[000308] --CXG------ \--* COMMA ref | |
[000306] --CXG------ +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000304] ----------- arg0 | +--* LCL_VAR ref V41 tmp19 | |
[000305] ----------- arg1 | \--* CNS_INT long 0x7f487e5a57c0 | |
[000307] ----------- \--* LCL_VAR ref V41 tmp19 | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
Using scalable probes | |
*************** Finishing PHASE Profile instrumentation | |
Trees after Profile instrumentation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 2 2 [000..003)-> BB03(0),BB02(1) ( cond ) i IBC | |
BB02 [0001] 1 BB01 2 2 [003..00A)-> BB03(1) (always) i IBC | |
BB03 [0002] 2 BB01,BB02 2 2 [00A..03E)-> BB20(1) (always) i IBC newobj | |
BB04 [0003] 1 BB20 2 2 [03E..05F)-> BB06(0),BB05(1) ( cond ) i IBC bwd bwd-target hist | |
BB05 [0004] 1 BB04 2 2 [05F..073)-> BB19(1) (always) i IBC bwd | |
BB06 [0005] 1 BB04 0 0 [073..090)-> BB07(1) (always) i IBC rare bwd | |
BB07 [0006] 1 0 BB06 0 0 [090..092)-> BB13(1) (always) T0 try { i IBC rare keep bwd | |
BB08 [0007] 1 0 BB13 0 0 [092..0A7)-> BB10(0.48),BB09(0.52) ( cond ) T0 i IBC rare bwd bwd-target | |
BB09 [0008] 1 0 BB08 0 0 [0A7..0C1)-> BB10(1) (always) T0 i IBC rare bwd | |
BB10 [0009] 2 0 BB08,BB09 0 0 [0C1..0C9)-> BB12(0.48),BB11(0.52) ( cond ) T0 i IBC rare idxlen bwd | |
BB11 [0010] 1 0 BB10 0 0 [0C9..0D4)-> BB12(1) (always) T0 i IBC rare bwd | |
BB12 [0011] 2 0 BB10,BB11 0 0 [0D4..0DA)-> BB13(1) (always) T0 i IBC rare idxlen bwd | |
BB13 [0012] 2 0 BB07,BB12 0 0 [0DA..0E3)-> BB08(0.9),BB14(0.1) ( cond ) T0 i IBC rare bwd bwd-src hist | |
BB14 [0013] 1 0 BB13 0 0 [0E3..0E5)-> BB32(1) (always) T0 } i IBC rare bwd | |
BB32 [0031] 1 BB14 0 0 [???..???)-> BB15(1) (callf ) i IBC rare internal | |
BB33 [0032] 1 BB17 0 0 [???..???)-> BB18(1) (callfr) i IBC rare internal | |
BB34 [0033] 1 BB24 0 0 [???..???)-> BB28(1) (always) i IBC rare internal bwd | |
BB35 [0034] 1 BB25 0 0 [???..???)-> BB28(1) (always) i IBC rare internal bwd | |
BB36 [0035] 1 BB26 0 0 [???..???)-> BB28(1) (always) i IBC rare internal bwd | |
BB15 [0014] 2 0 BB32 0.00 0 [0E5..0E9)-> BB17(0.48),BB16(0.52) ( cond ) H0 finally { i IBC keep bwd | |
BB16 [0015] 1 0 BB15 0.00 0 [0E9..0F0)-> BB17(1) (always) H0 i IBC bwd hist | |
BB17 [0016] 2 0 BB15,BB16 0.00 0 [0F0..0F1)-> BB33(1) (finret) H0 } i IBC bwd | |
BB18 [0017] 1 BB33 0 0 [0F1..0F9)-> BB19(1) (always) i IBC rare bwd | |
BB19 [0018] 2 BB05,BB18 2 2 [0F9..0FF)-> BB20(1) (always) i IBC bwd | |
BB20 [0019] 2 BB03,BB19 4 4 [0FF..10C)-> BB04(0.5),BB21(0.5) ( cond ) i IBC bwd bwd-src | |
BB21 [0020] 1 BB20 2 2 [10C..11F)-> BB22(1) (always) i IBC idxlen | |
BB22 [0021] 2 BB21,BB37 2 2 [11F..142)-> BB29(1) (always) i IBC bwd bwd-target | |
BB23 [0022] 1 BB29 2 2 [142..150)-> BB28(1),BB24(0) ( cond ) i IBC bwd bwd-target | |
BB24 [0023] 1 BB23 0 0 [150..158)-> BB34(0.48),BB25(0.52) ( cond ) i IBC rare idxlen bwd | |
BB25 [0024] 1 BB24 0 0 [158..15F)-> BB35(0.48),BB26(0.52) ( cond ) i IBC rare idxlen bwd | |
BB26 [0025] 1 BB25 0 0 [15F..175)-> BB36(0.48),BB27(0.52) ( cond ) i IBC rare idxlen bwd | |
BB27 [0026] 1 BB26 0 0 [175..17D)-> BB28(1) (always) i IBC rare bwd | |
BB28 [0027] 5 BB23,BB27,BB34,BB35,BB36 2 2 [17D..183)-> BB29(1) (always) i IBC bwd | |
BB29 [0028] 2 BB22,BB28 4 4 [183..18D)-> BB23(0.5),BB30(0.5) ( cond ) i IBC bwd bwd-src | |
BB30 [0029] 1 BB29 2 2 [18D..196)-> BB37(0),BB31(1) ( cond ) i IBC bwd bwd-src | |
BB31 [0030] 1 BB30 2 2 [196..199) (return) i IBC | |
BB37 [0036] 1 BB30 0 0 [???..???)-> BB22(1) (always) i IBC rare internal bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0000] [000..003) -> BB03(0),BB02(1) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0000] | |
STMT00000 ( 0x000[E-] ... 0x001 ) | |
[000003] ----------- * JTRUE void | |
[000002] ----------- \--* NE int | |
[000000] ----------- +--* LCL_VAR ref V03 arg2 | |
[000001] ----------- \--* CNS_INT ref null | |
------------ BB02 [0001] [003..00A) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0001] | |
STMT00085 ( ??? ... ??? ) | |
[000275] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000274] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a5588 bbc | |
***** BB02 [0001] | |
STMT00082 ( 0x003[E-] ... 0x008 ) | |
[000269] DAC-G------ * STORE_LCL_VAR long V38 tmp16 | |
[000268] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000266] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000267] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598568 global ptr | |
***** BB02 [0001] | |
STMT00083 ( ??? ... ??? ) | |
[000265] I-C-G------ * CALL ref System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] (exactContextHnd=0x0x7f4875f8a9b1) | |
[000271] ----------- gctx \--* RUNTIMELOOKUP long 0x7f4875f8a9b0 class | |
[000270] ----------- \--* LCL_VAR long V38 tmp16 | |
***** BB02 [0001] | |
STMT00084 ( ??? ... ??? ) | |
[000273] DAC-------- * STORE_LCL_VAR ref V03 arg2 | |
[000272] --C-------- \--* RET_EXPR ref (for [000265]) | |
------------ BB03 [0002] [00A..03E) -> BB20(1) (always), preds={BB01,BB02} succs={BB20} | |
***** BB03 [0002] | |
STMT00001 ( 0x00A[E-] ... 0x016 ) | |
[000007] DAC-G------ * STORE_LCL_VAR long V24 tmp2 | |
[000006] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000004] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000005] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e597e80 global ptr | |
***** BB03 [0002] | |
STMT00002 ( ??? ... ??? ) | |
[000011] DA--------- * STORE_LCL_VAR ref V23 tmp1 | |
[000010] ----------- \--* ALLOCOBJ ref | |
[000009] ----------- \--* RUNTIMELOOKUP long 0x7f4876028ee8 class | |
[000008] ----------- \--* LCL_VAR long V24 tmp2 | |
***** BB03 [0002] | |
STMT00003 ( ??? ... ??? ) | |
[000013] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f4876028ee9) | |
[000012] ----------- this \--* LCL_VAR ref V23 tmp1 | |
***** BB03 [0002] | |
STMT00004 ( 0x00F[--] ... ??? ) | |
[000017] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000015] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 arg0 | |
***** BB03 [0002] | |
STMT00005 ( 0x016[--] ... ??? ) | |
[000018] DA--------- * STORE_LCL_VAR ref V04 loc0 | |
[000014] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB03 [0002] | |
STMT00006 ( 0x017[E-] ... 0x01E ) | |
[000023] DAC-G------ * STORE_LCL_VAR long V26 tmp4 | |
[000022] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000020] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000021] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5982b0 global ptr | |
***** BB03 [0002] | |
STMT00007 ( ??? ... ??? ) | |
[000027] DA--------- * STORE_LCL_VAR ref V25 tmp3 | |
[000026] ----------- \--* ALLOCOBJ ref | |
[000025] ----------- \--* RUNTIMELOOKUP long 0x7f487806e338 class | |
[000024] ----------- \--* LCL_VAR long V26 tmp4 | |
***** BB03 [0002] | |
STMT00008 ( ??? ... ??? ) | |
[000029] I-C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (exactContextHnd=0x0x7f487806e339) | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000019] ----------- arg1 \--* LCL_VAR ref V03 arg2 | |
***** BB03 [0002] | |
STMT00009 ( 0x01D[--] ... ??? ) | |
[000032] DA--------- * STORE_LCL_VAR ref V10 loc6 | |
[000031] ----------- \--* LCL_VAR ref V01 arg0 | |
***** BB03 [0002] | |
STMT00010 ( ??? ... 0x029 ) | |
[000036] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000035] ----------- arg2 \--* CNS_INT int 0 | |
***** BB03 [0002] | |
STMT00011 ( 0x029[--] ... ??? ) | |
[000037] DA--------- * STORE_LCL_VAR ref V05 loc1 | |
[000030] ----------- \--* LCL_VAR ref V25 tmp3 | |
***** BB03 [0002] | |
STMT00012 ( 0x02A[E-] ... 0x02F ) | |
[000040] DA--------- * STORE_LCL_VAR ref V27 tmp5 | |
[000039] ----------- \--* ALLOCOBJ ref | |
[000038] H---------- \--* CNS_INT(h) long 0x7f487dd16108 class System.Collections.Generic.List`1[ubyte[]] | |
***** BB03 [0002] | |
STMT00013 ( ??? ... ??? ) | |
[000042] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f487dd16109) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
***** BB03 [0002] | |
STMT00014 ( 0x02F[--] ... ??? ) | |
[000044] DA--------- * STORE_LCL_VAR ref V06 loc2 | |
[000043] ----------- \--* LCL_VAR ref V27 tmp5 | |
***** BB03 [0002] | |
STMT00015 ( 0x030[E-] ... 0x035 ) | |
[000047] DA--------- * STORE_LCL_VAR ref V28 tmp6 | |
[000046] ----------- \--* ALLOCOBJ ref | |
[000045] H---------- \--* CNS_INT(h) long 0x7f487dd15f40 class System.Collections.Generic.Queue`1[int] | |
***** BB03 [0002] | |
STMT00016 ( ??? ... ??? ) | |
[000049] I-C-G------ * CALL void System.Collections.Generic.Queue`1[int]:.ctor():this (exactContextHnd=0x0x7f487dd15f41) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
***** BB03 [0002] | |
STMT00017 ( 0x035[--] ... ??? ) | |
[000051] DA--------- * STORE_LCL_VAR ref V07 loc3 | |
[000050] ----------- \--* LCL_VAR ref V28 tmp6 | |
***** BB03 [0002] | |
STMT00018 ( 0x036[E-] ... 0x037 ) | |
[000053] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000052] ----------- \--* CNS_INT int 0 | |
------------ BB04 [0003] [03E..05F) -> BB06(0),BB05(1) (cond), preds={BB20} succs={BB05,BB06} | |
***** BB04 [0003] | |
STMT00021 ( 0x03E[E-] ... 0x046 ) | |
[000062] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000060] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000061] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
***** BB04 [0003] | |
STMT00022 ( 0x03E[E-] ... ??? ) | |
[000064] DAC-------- * STORE_LCL_VAR ref V12 loc8 | |
[000063] --C-------- \--* RET_EXPR ref (for [000062]) | |
***** BB04 [0003] | |
STMT00023 ( 0x048[E-] ... 0x050 ) | |
[000068] DAC-G------ * STORE_LCL_VAR ref V13 loc9 | |
[000067] --C-G------ \--* CALL ref System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this | |
[000282] -ACXG------ this +--* COMMA ref | |
[000281] DA--------- | +--* STORE_LCL_VAR ref V39 tmp17 | |
[000065] ----------- | | \--* LCL_VAR ref V02 arg1 | |
[000280] --CXG------ | \--* COMMA ref | |
[000278] --CXG------ | +--* CALL help void CORINFO_HELP_DELEGATEPROFILE32 | |
[000276] ----------- arg0 | | +--* LCL_VAR ref V39 tmp17 | |
[000277] ----------- arg1 | | \--* CNS_INT long 0x7f487e5a5590 | |
[000279] ----------- | \--* LCL_VAR ref V39 tmp17 | |
[000066] ----------- arg1 \--* LCL_VAR ref V12 loc8 | |
***** BB04 [0003] | |
STMT00024 ( 0x052[E-] ... 0x059 ) | |
[000073] DAC-G------ * STORE_LCL_VAR long V29 tmp7 | |
[000072] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000070] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000071] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983a8 global ptr | |
***** BB04 [0003] | |
STMT00025 ( ??? ... ??? ) | |
[000075] DA--------- * STORE_LCL_VAR long V30 tmp8 | |
[000074] ----------- \--* LCL_VAR long V29 tmp7 | |
***** BB04 [0003] | |
STMT00026 ( ??? ... ??? ) | |
[000078] DACXG------ * STORE_LCL_VAR int V14 loc10 | |
[000077] --CXG------ \--* CALL ind stub int | |
[000069] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000076] ----------- calli tgt \--* LCL_VAR long V30 tmp8 | |
***** BB04 [0003] | |
STMT00027 ( 0x05B[E-] ... 0x05D ) | |
[000082] ----------- * JTRUE void | |
[000081] ----------- \--* NE int | |
[000079] ----------- +--* LCL_VAR int V14 loc10 | |
[000080] ----------- \--* CNS_INT int 0 | |
------------ BB05 [0004] [05F..073) -> BB19(1) (always), preds={BB04} succs={BB19} | |
***** BB05 [0004] | |
STMT00052 ( 0x05F[E-] ... 0x06E ) | |
[000168] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000166] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000167] ----------- arg1 \--* CNS_INT ref null | |
***** BB05 [0004] | |
STMT00053 ( 0x066[E-] ... ??? ) | |
[000171] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000169] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000170] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
------------ BB06 [0005] [073..090) -> BB07(1) (always), preds={BB04} succs={BB07} | |
***** BB06 [0005] | |
STMT00028 ( 0x073[E-] ... 0x085 ) | |
[000084] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000083] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB06 [0005] | |
STMT00029 ( 0x073[E-] ... ??? ) | |
[000087] I-C-G------ * CALL int System.Math:Max(int,int):int (exactContextHnd=0x0x7f4875f5cb69) | |
[000085] --C-------- arg0 +--* RET_EXPR int (for [000084]) | |
[000086] ----------- arg1 \--* LCL_VAR int V14 loc10 | |
***** BB06 [0005] | |
STMT00030 ( 0x073[E-] ... ??? ) | |
[000092] DACXG------ * STORE_LCL_VAR ref V15 loc11 | |
[000091] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_VC | |
[000089] H---------- arg0 +--* CNS_INT(h) long 0x7f48767c27d0 class ubyte[] | |
[000090] --C-------- arg1 \--* CAST long <- int | |
[000088] --C-------- \--* RET_EXPR int (for [000087]) | |
***** BB06 [0005] | |
STMT00031 ( 0x087[E-] ... 0x08E ) | |
[000097] DAC-G------ * STORE_LCL_VAR long V31 tmp9 | |
[000096] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000094] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000095] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983c0 global ptr | |
***** BB06 [0005] | |
STMT00032 ( ??? ... ??? ) | |
[000099] DA--------- * STORE_LCL_VAR long V32 tmp10 | |
[000098] ----------- \--* LCL_VAR long V31 tmp9 | |
***** BB06 [0005] | |
STMT00033 ( ??? ... ??? ) | |
[000102] DACXG------ * STORE_LCL_VAR ref V16 loc12 | |
[000101] --CXG------ \--* CALL ind stub ref | |
[000093] ----------- this +--* LCL_VAR ref V13 loc9 | |
[000100] ----------- calli tgt \--* LCL_VAR long V32 tmp10 | |
------------ BB07 [0006] [090..092) -> BB13(1) (always), preds={BB06} succs={BB13} | |
------------ BB08 [0007] [092..0A7) -> BB10(0.48),BB09(0.52) (cond), preds={BB13} succs={BB09,BB10} | |
***** BB08 [0007] | |
STMT00035 ( 0x092[E-] ... 0x099 ) | |
[000112] DAC-G------ * STORE_LCL_VAR long V33 tmp11 | |
[000111] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000109] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000110] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e5983d8 global ptr | |
***** BB08 [0007] | |
STMT00036 ( ??? ... ??? ) | |
[000114] DA--------- * STORE_LCL_VAR long V34 tmp12 | |
[000113] ----------- \--* LCL_VAR long V33 tmp11 | |
***** BB08 [0007] | |
STMT00037 ( ??? ... ??? ) | |
[000117] DACXG------ * STORE_LCL_VAR ref V17 loc13 | |
[000116] --CXG------ \--* CALL ind stub ref | |
[000108] ----------- this +--* LCL_VAR ref V16 loc12 | |
[000115] ----------- calli tgt \--* LCL_VAR long V34 tmp12 | |
***** BB08 [0007] | |
STMT00038 ( 0x09B[E-] ... 0x0A5 ) | |
[000121] I-C-G------ * CALL nullcheck int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this (exactContextHnd=0x0x7f487806e339) | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000120] ----------- arg2 \--* LCL_ADDR byref V18 loc14 [+0] | |
***** BB08 [0007] | |
STMT00039 ( 0x09B[E-] ... ??? ) | |
[000125] --C-------- * JTRUE void | |
[000124] --C-------- \--* NE int | |
[000122] --C-------- +--* RET_EXPR int (for [000121]) | |
[000123] ----------- \--* CNS_INT int 0 | |
------------ BB09 [0008] [0A7..0C1) -> BB10(1) (always), preds={BB08} succs={BB10} | |
***** BB09 [0008] | |
STMT00086 ( ??? ... ??? ) | |
[000284] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000283] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a5698 bbc | |
***** BB09 [0008] | |
STMT00043 ( 0x0A7[E-] ... 0x0AD ) | |
[000142] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000141] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB09 [0008] | |
STMT00044 ( 0x0A7[E-] ... ??? ) | |
[000144] DAC-------- * STORE_LCL_VAR int V18 loc14 | |
[000143] --C-------- \--* RET_EXPR int (for [000142]) | |
***** BB09 [0008] | |
STMT00045 ( 0x0AF[E-] ... 0x0BC ) | |
[000148] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000147] ----------- arg2 \--* LCL_VAR int V18 loc14 | |
***** BB09 [0008] | |
STMT00046 ( 0x0B9[E-] ... ??? ) | |
[000151] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000149] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
------------ BB10 [0009] [0C1..0C9) -> BB12(0.48),BB11(0.52) (cond), preds={BB08,BB09} succs={BB11,BB12} | |
***** BB10 [0009] | |
STMT00040 ( 0x0C1[E-] ... 0x0C7 ) | |
[000130] ---X------- * JTRUE void | |
[000129] ---X------- \--* LT int | |
[000126] ----------- +--* LCL_VAR int V18 loc14 | |
[000128] ---X------- \--* ARR_LENGTH int | |
[000127] ----------- \--* LCL_VAR ref V15 loc11 | |
------------ BB11 [0010] [0C9..0D4) -> BB12(1) (always), preds={BB10} succs={BB12} | |
***** BB11 [0010] | |
STMT00087 ( ??? ... ??? ) | |
[000286] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000285] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a569c bbc | |
***** BB11 [0010] | |
STMT00042 ( 0x0C9[E-] ... 0x0CF ) | |
[000140] I-C-G------ * CALL void System.Array:Resize[ubyte](byref,int) (exactContextHnd=0x0x7f487dd1f070) | |
[000136] ----------- arg0 +--* LCL_ADDR byref V15 loc11 [+0] | |
[000139] ----------- arg1 \--* ADD int | |
[000137] ----------- +--* LCL_VAR int V18 loc14 | |
[000138] ----------- \--* CNS_INT int 1 | |
------------ BB12 [0011] [0D4..0DA) -> BB13(1) (always), preds={BB10,BB11} succs={BB13} | |
***** BB12 [0011] | |
STMT00088 ( ??? ... ??? ) | |
[000288] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000287] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a56a0 bbc | |
***** BB12 [0011] | |
STMT00041 ( 0x0D4[E-] ... 0x0D9 ) | |
[000135] nA-XG------ * STOREIND byte | |
[000134] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000131] ----------- | +--* LCL_VAR ref V15 loc11 | |
[000132] ----------- | \--* LCL_VAR int V18 loc14 | |
[000133] ----------- \--* CNS_INT int 1 | |
------------ BB13 [0012] [0DA..0E3) -> BB08(0.9),BB14(0.1) (cond), preds={BB07,BB12} succs={BB14,BB08} | |
***** BB13 [0012] | |
STMT00034 ( 0x0DA[E-] ... 0x0E1 ) | |
[000107] --C-G------ * JTRUE void | |
[000106] --C-G------ \--* NE int | |
[000104] --C-G------ +--* CALLV stub int System.Collections.IEnumerator:MoveNext():ubyte:this | |
[000295] -ACXG------ this | \--* COMMA ref | |
[000294] DA--------- | +--* STORE_LCL_VAR ref V40 tmp18 | |
[000103] ----------- | | \--* LCL_VAR ref V16 loc12 | |
[000293] --CXG------ | \--* COMMA ref | |
[000291] --CXG------ | +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000289] ----------- arg0 | | +--* LCL_VAR ref V40 tmp18 | |
[000290] ----------- arg1 | | \--* CNS_INT long 0x7f487e5a56a8 | |
[000292] ----------- | \--* LCL_VAR ref V40 tmp18 | |
[000105] ----------- \--* CNS_INT int 0 | |
------------ BB14 [0013] [0E3..0E5) -> BB32(1) (always), preds={BB13} succs={BB32} | |
------------ BB32 [0031] [???..???) -> BB15(1) (callf), preds={BB14} succs={BB15} | |
------------ BB33 [0032] [???..???) -> BB18(1) (callfr), preds={BB17} succs={BB18} | |
------------ BB34 [0033] [???..???) -> BB28(1) (always), preds={BB24} succs={BB28} | |
***** BB34 [0033] | |
STMT00089 ( ??? ... ??? ) | |
[000297] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000296] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a57b0 bbc | |
------------ BB35 [0034] [???..???) -> BB28(1) (always), preds={BB25} succs={BB28} | |
***** BB35 [0034] | |
STMT00090 ( ??? ... ??? ) | |
[000299] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000298] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a57b4 bbc | |
------------ BB36 [0035] [???..???) -> BB28(1) (always), preds={BB26} succs={BB28} | |
***** BB36 [0035] | |
STMT00091 ( ??? ... ??? ) | |
[000301] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000300] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a57b8 bbc | |
------------ BB15 [0014] [0E5..0E9) -> BB17(0.48),BB16(0.52) (cond), preds={BB32} succs={BB16,BB17} | |
***** BB15 [0014] | |
STMT00049 ( 0x0E5[E-] ... 0x0E7 ) | |
[000162] ----------- * JTRUE void | |
[000161] ----------- \--* EQ int | |
[000159] ----------- +--* LCL_VAR ref V16 loc12 | |
[000160] ----------- \--* CNS_INT ref null | |
------------ BB16 [0015] [0E9..0F0) -> BB17(1) (always), preds={BB15} succs={BB17} | |
***** BB16 [0015] | |
STMT00092 ( ??? ... ??? ) | |
[000303] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000302] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a57bc bbc | |
***** BB16 [0015] | |
STMT00051 ( 0x0E9[E-] ... 0x0EB ) | |
[000165] --C-G------ * CALLV stub void System.IDisposable:Dispose():this | |
[000310] -ACXG------ this \--* COMMA ref | |
[000309] DA--------- +--* STORE_LCL_VAR ref V41 tmp19 | |
[000164] ----------- | \--* LCL_VAR ref V16 loc12 | |
[000308] --CXG------ \--* COMMA ref | |
[000306] --CXG------ +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000304] ----------- arg0 | +--* LCL_VAR ref V41 tmp19 | |
[000305] ----------- arg1 | \--* CNS_INT long 0x7f487e5a57c0 | |
[000307] ----------- \--* LCL_VAR ref V41 tmp19 | |
------------ BB17 [0016] [0F0..0F1) -> BB33(1) (finret), preds={BB15,BB16} succs={BB33} | |
***** BB17 [0016] | |
STMT00093 ( ??? ... ??? ) | |
[000312] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000311] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58c8 bbc | |
***** BB17 [0016] | |
STMT00050 ( 0x0F0[E-] ... 0x0F0 ) | |
[000163] ----------- * RETFILT void | |
------------ BB18 [0017] [0F1..0F9) -> BB19(1) (always), preds={BB33} succs={BB19} | |
***** BB18 [0017] | |
STMT00094 ( ??? ... ??? ) | |
[000314] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000313] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58cc bbc | |
***** BB18 [0017] | |
STMT00047 ( 0x0F1[E-] ... 0x0F4 ) | |
[000154] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000152] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000153] ----------- arg1 \--* LCL_VAR ref V15 loc11 | |
------------ BB19 [0018] [0F9..0FF) -> BB20(1) (always), preds={BB05,BB18} succs={BB20} | |
***** BB19 [0018] | |
STMT00095 ( ??? ... ??? ) | |
[000316] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000315] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58d0 bbc | |
***** BB19 [0018] | |
STMT00048 ( 0x0F9[E-] ... 0x0FD ) | |
[000158] DA--------- * STORE_LCL_VAR int V11 loc7 | |
[000157] ----------- \--* ADD int | |
[000155] ----------- +--* LCL_VAR int V11 loc7 | |
[000156] ----------- \--* CNS_INT int 1 | |
------------ BB20 [0019] [0FF..10C) -> BB04(0.5),BB21(0.5) (cond), preds={BB03,BB19} succs={BB21,BB04} | |
***** BB20 [0019] | |
STMT00019 ( 0x0FF[E-] ... 0x107 ) | |
[000056] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000055] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB20 [0019] | |
STMT00020 ( 0x0FF[E-] ... ??? ) | |
[000059] --C-------- * JTRUE void | |
[000058] --C-------- \--* LT int | |
[000054] ----------- +--* LCL_VAR int V11 loc7 | |
[000057] --C-------- \--* RET_EXPR int (for [000056]) | |
------------ BB21 [0020] [10C..11F) -> BB22(1) (always), preds={BB20} succs={BB22} | |
***** BB21 [0020] | |
STMT00054 ( 0x10C[E-] ... 0x117 ) | |
[000173] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000172] ----------- this \--* LCL_VAR ref V04 loc0 | |
***** BB21 [0020] | |
STMT00055 ( 0x10C[E-] ... ??? ) | |
[000178] DAC-G------ * STORE_LCL_VAR long V35 tmp13 | |
[000177] --C-G------ \--* CALL help long CORINFO_HELP_RUNTIMEHANDLE_METHOD | |
[000175] !---------- arg0 +--* LCL_VAR long V00 TypeCtx | |
[000176] H------N--- arg1 \--* CNS_INT(h) long 0x7f487e598478 global ptr | |
***** BB21 [0020] | |
STMT00056 ( ??? ... ??? ) | |
[000183] DACXG------ * STORE_LCL_VAR ref V08 loc4 | |
[000182] --CXG------ \--* CALL help ref CORINFO_HELP_NEWARR_1_OBJ | |
[000180] ----------- arg0 +--* RUNTIMELOOKUP long 0x7f487709c3f0 class | |
[000179] ----------- | \--* LCL_VAR long V35 tmp13 | |
[000181] --C-------- arg1 \--* CAST long <- int | |
[000174] --C-------- \--* RET_EXPR int (for [000173]) | |
***** BB21 [0020] | |
STMT00057 ( 0x119[E-] ... 0x11D ) | |
[000186] DA-X------- * STORE_LCL_VAR int V09 loc5 | |
[000185] ---X------- \--* ARR_LENGTH int | |
[000184] ----------- \--* LCL_VAR ref V08 loc4 | |
------------ BB22 [0021] [11F..142) -> BB29(1) (always), preds={BB21,BB37} succs={BB29} | |
***** BB22 [0021] | |
STMT00058 ( 0x11F[E-] ... 0x125 ) | |
[000188] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:Dequeue():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000187] ----------- this \--* LCL_VAR ref V07 loc3 | |
***** BB22 [0021] | |
STMT00059 ( 0x11F[E-] ... ??? ) | |
[000190] DAC-------- * STORE_LCL_VAR int V19 loc15 | |
[000189] --C-------- \--* RET_EXPR int (for [000188]) | |
***** BB22 [0021] | |
STMT00060 ( 0x127[E-] ... 0x12E ) | |
[000195] DA--------- * STORE_LCL_VAR int V36 tmp14 | |
[000194] ----------- \--* SUB int | |
[000192] ----------- +--* LCL_VAR int V09 loc5 | |
[000193] ----------- \--* CNS_INT int 1 | |
***** BB22 [0021] | |
STMT00061 ( ??? ... ??? ) | |
[000198] DA--------- * STORE_LCL_VAR int V09 loc5 | |
[000197] ----------- \--* LCL_VAR int V36 tmp14 | |
***** BB22 [0021] | |
STMT00062 ( ??? ... 0x138 ) | |
[000201] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000199] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000200] ----------- arg1 \--* LCL_VAR int V19 loc15 | |
***** BB22 [0021] | |
STMT00063 ( ??? ... ??? ) | |
[000204] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000191] ----------- arg0 +--* LCL_VAR ref V08 loc4 | |
[000203] ----------- arg1 +--* CAST long <- int | |
[000196] ----------- | \--* LCL_VAR int V36 tmp14 | |
[000202] --C-------- arg2 \--* RET_EXPR ref (for [000201]) | |
***** BB22 [0021] | |
STMT00064 ( 0x13D[E-] ... 0x13E ) | |
[000206] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000205] ----------- \--* CNS_INT int 0 | |
------------ BB23 [0022] [142..150) -> BB28(1),BB24(0) (cond), preds={BB29} succs={BB24,BB28} | |
***** BB23 [0022] | |
STMT00067 ( 0x142[E-] ... 0x14A ) | |
[000215] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f487dd16109) | |
[000213] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000214] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
***** BB23 [0022] | |
STMT00068 ( 0x142[E-] ... ??? ) | |
[000217] DAC-------- * STORE_LCL_VAR ref V21 loc17 | |
[000216] --C-------- \--* RET_EXPR ref (for [000215]) | |
***** BB23 [0022] | |
STMT00069 ( 0x14C[E-] ... 0x14E ) | |
[000221] ----------- * JTRUE void | |
[000220] ----------- \--* EQ int | |
[000218] ----------- +--* LCL_VAR ref V21 loc17 | |
[000219] ----------- \--* CNS_INT ref null | |
------------ BB24 [0023] [150..158) -> BB34(0.48),BB25(0.52) (cond), preds={BB23} succs={BB25,BB34} | |
***** BB24 [0023] | |
STMT00071 ( 0x150[E-] ... 0x156 ) | |
[000230] ---X------- * JTRUE void | |
[000229] ---X------- \--* GE int | |
[000226] ----------- +--* LCL_VAR int V19 loc15 | |
[000228] ---X------- \--* ARR_LENGTH int | |
[000227] ----------- \--* LCL_VAR ref V21 loc17 | |
------------ BB25 [0024] [158..15F) -> BB35(0.48),BB26(0.52) (cond), preds={BB24} succs={BB26,BB35} | |
***** BB25 [0024] | |
STMT00072 ( 0x158[E-] ... 0x15D ) | |
[000237] ---XG------ * JTRUE void | |
[000236] ---XG------ \--* EQ int | |
[000234] n--XG------ +--* IND ubyte | |
[000233] ---XG------ | \--* INDEX_ADDR byref ubyte[] | |
[000231] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000232] ----------- | \--* LCL_VAR int V19 loc15 | |
[000235] ----------- \--* CNS_INT int 0 | |
------------ BB26 [0025] [15F..175) -> BB36(0.48),BB27(0.52) (cond), preds={BB25} succs={BB27,BB36} | |
***** BB26 [0025] | |
STMT00073 ( 0x15F[E-] ... 0x164 ) | |
[000242] nA-XG------ * STOREIND byte | |
[000241] ---XG------ +--* INDEX_ADDR byref byte[] | |
[000238] ----------- | +--* LCL_VAR ref V21 loc17 | |
[000239] ----------- | \--* LCL_VAR int V19 loc15 | |
[000240] ----------- \--* CNS_INT int 0 | |
***** BB26 [0025] | |
STMT00074 ( 0x165[E-] ... 0x173 ) | |
[000244] I-C-G------ * CALL struct System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (exactContextHnd=0x0x7f487dd1f120) | |
[000243] ----------- arg0 \--* LCL_VAR ref V21 loc17 | |
***** BB26 [0025] | |
STMT00075 ( 0x165[E-] ... ??? ) | |
[000248] DAC-------- * STORE_LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000245] --C-------- \--* RET_EXPR struct(for [000244]) | |
***** BB26 [0025] | |
STMT00076 ( ??? ... ??? ) | |
[000247] I-C-G------ * CALL int System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int (exactContextHnd=0x0x7f487dd1f178) | |
[000249] ----------- arg0 +--* LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000246] ----------- arg1 \--* CNS_INT int 1 | |
***** BB26 [0025] | |
STMT00077 ( ??? ... ??? ) | |
[000253] --C-------- * JTRUE void | |
[000252] N-C------U- \--* NE int | |
[000250] --C-------- +--* RET_EXPR int (for [000247]) | |
[000251] ----------- \--* CNS_INT int -1 | |
------------ BB27 [0026] [175..17D) -> BB28(1) (always), preds={BB26} succs={BB28} | |
***** BB27 [0026] | |
STMT00096 ( ??? ... ??? ) | |
[000318] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000317] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58d4 bbc | |
***** BB27 [0026] | |
STMT00078 ( 0x175[E-] ... 0x178 ) | |
[000256] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000254] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000255] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
------------ BB28 [0027] [17D..183) -> BB29(1) (always), preds={BB23,BB27,BB34,BB35,BB36} succs={BB29} | |
***** BB28 [0027] | |
STMT00097 ( ??? ... ??? ) | |
[000320] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000319] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58d8 bbc | |
***** BB28 [0027] | |
STMT00070 ( 0x17D[E-] ... 0x181 ) | |
[000225] DA--------- * STORE_LCL_VAR int V20 loc16 | |
[000224] ----------- \--* ADD int | |
[000222] ----------- +--* LCL_VAR int V20 loc16 | |
[000223] ----------- \--* CNS_INT int 1 | |
------------ BB29 [0028] [183..18D) -> BB23(0.5),BB30(0.5) (cond), preds={BB22,BB28} succs={BB30,BB23} | |
***** BB29 [0028] | |
STMT00065 ( 0x183[E-] ... 0x18B ) | |
[000209] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f487dd16109) | |
[000208] ----------- this \--* LCL_VAR ref V06 loc2 | |
***** BB29 [0028] | |
STMT00066 ( 0x183[E-] ... ??? ) | |
[000212] --C-------- * JTRUE void | |
[000211] --C-------- \--* LT int | |
[000207] ----------- +--* LCL_VAR int V20 loc16 | |
[000210] --C-------- \--* RET_EXPR int (for [000209]) | |
------------ BB30 [0029] [18D..196) -> BB37(0),BB31(1) (cond), preds={BB29} succs={BB31,BB37} | |
***** BB30 [0029] | |
STMT00079 ( 0x18D[E-] ... 0x194 ) | |
[000258] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:get_Count():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000257] ----------- this \--* LCL_VAR ref V07 loc3 | |
***** BB30 [0029] | |
STMT00080 ( 0x18D[E-] ... ??? ) | |
[000262] --C-------- * JTRUE void | |
[000261] --C-------- \--* GT int | |
[000259] --C-------- +--* RET_EXPR int (for [000258]) | |
[000260] ----------- \--* CNS_INT int 0 | |
------------ BB31 [0030] [196..199) (return), preds={BB30} succs={} | |
***** BB31 [0030] | |
STMT00098 ( ??? ... ??? ) | |
[000322] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000321] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58dc bbc | |
***** BB31 [0030] | |
STMT00081 ( 0x196[E-] ... 0x198 ) | |
[000264] ----------- * RETURN ref | |
[000263] ----------- \--* LCL_VAR ref V08 loc4 | |
------------ BB37 [0036] [???..???) -> BB22(1) (always), preds={BB30} succs={BB22} | |
***** BB37 [0036] | |
STMT00099 ( ??? ... ??? ) | |
[000324] --CXG------ * CALL help int CORINFO_HELP_COUNTPROFILE32 | |
[000323] H---------- arg0 \--* CNS_INT(h) long 0x7f487e5a58e0 bbc | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (37 profiled blocks, 0 unprofiled) | |
*************** Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Finishing PHASE Expand patchpoints [no changes] | |
*************** Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Finishing PHASE Indirect call transform [no changes] | |
*************** Starting PHASE Post-import | |
*************** Finishing PHASE Post-import [no changes] | |
*************** Starting PHASE Morph - Init | |
New BlockSet epoch 2, # of blocks (including unused BB00): 38, bitset array size: 1 (short) | |
*************** Finishing PHASE Morph - Init [no changes] | |
*************** Starting PHASE Morph - Inlining | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00083 in BB02: | |
STMT00083 ( ??? ... ??? ) | |
[000265] I-C-G------ * CALL ref System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] (exactContextHnd=0x0x7f4875f8a9b1) | |
[000271] ----------- gctx \--* RUNTIMELOOKUP long 0x7f4875f8a9b0 class | |
[000270] ----------- \--* LCL_VAR long V38 tmp16 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] set to 0x0x7f4875f8a9b1: | |
Invoking compiler for the inlinee method System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] : | |
IL to import: | |
IL_0000 7e ad 1b 00 0a ldsfld 0xA001BAD | |
IL_0005 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] is 0x0x7f4875f8a9b1. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] | |
Jump targets: | |
none | |
New Basic Block BB01 [0037] created. | |
BB01 [0037] [000..006) | |
Basic block list for 'System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0037] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000265] Starting PHASE Pre-import | |
*************** Inline @[000265] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0037] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0037] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000265] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000265] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0037] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0037] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
[deferred prior check failed -- skipping this check] | |
*************** Inline @[000265] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]' | |
[ 0] 0 (0x000) ldsfld 0A001BAD | |
** Note: inlinee IL was partially imported -- imported 0 of 6 bytes of method IL | |
*************** Inline @[000265] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0037] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0037] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
... failed inline attempt, no checking needed | |
[deferred prior check failed -- skipping this check] | |
Inlining [000265] failed, so bashing STMT00083 to NOP | |
INLINER: during 'fgInline' result 'failed this call site' reason 'ldfld needs helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon]' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'ldfld needs helper' | |
Replacing the return expression placeholder [000272] with [000265] | |
[000272] --C-------- * RET_EXPR ref (for [000265]) -> [000265] | |
Inserting the inline return expression | |
[000265] --C-G------ * CALL ref System.Collections.Generic.EqualityComparer`1[System.__Canon]:get_Default():System.Collections.Generic.EqualityComparer`1[System.__Canon] | |
[000271] ----------- gctx \--* RUNTIMELOOKUP long 0x7f4875f8a9b0 class | |
[000270] ----------- \--* LCL_VAR long V38 tmp16 | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00003 in BB03: | |
STMT00003 ( ??? ... ??? ) | |
[000013] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f4876028ee9) | |
[000012] ----------- this \--* LCL_VAR ref V23 tmp1 | |
thisArg: is a local var | |
[000012] ----------- * LCL_VAR ref V23 tmp1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:.ctor():this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:.ctor():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 28 cf 05 00 06 call 0x60005CF | |
IL_0006 02 ldarg.0 | |
IL_0007 7e 4c 1c 00 0a ldsfld 0xA001C4C | |
IL_000c 7d 4d 1c 00 0a stfld 0xA001C4D | |
IL_0011 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:.ctor():this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:.ctor():this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:.ctor():this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight=159 : state 112 [ ldsfld ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in instance constructors increased to 1.5. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4.5. | |
Inline candidate callsite is warm. Multiplier increased to 6.5. | |
calleeNativeSizeEstimate=308 | |
callsiteNativeSizeEstimate=85 | |
benefit multiplier=6.5 | |
threshold=552 | |
Native estimate for function size is within threshold for inlining 30.8 <= 55.2 (multiplier = 6.5) | |
Jump targets: | |
none | |
New Basic Block BB01 [0038] created. | |
BB01 [0038] [000..012) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0038] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000013] Starting PHASE Pre-import | |
*************** Inline @[000013] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0038] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0038] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000013] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000013] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0038] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0038] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
[deferred prior check failed -- skipping this check] | |
*************** Inline @[000013] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) call 060005CF | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f4875ec5ee9 | |
Class context: System.Object | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' calling 'System.Object:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00100 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000326] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000012] ----------- this \--* LCL_VAR ref V23 tmp1 | |
[ 0] 6 (0x006) ldarg.0 | |
[ 1] 7 (0x007) ldsfld 0A001C4C | |
** Note: inlinee IL was partially imported -- imported 0 of 18 bytes of method IL | |
*************** Inline @[000013] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0038] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0038] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
... failed inline attempt, no checking needed | |
[deferred prior check failed -- skipping this check] | |
INLINER: during 'fgInline' result 'failed this call site' reason 'ldfld needs helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'ldfld needs helper' | |
Expanding INLINE_CANDIDATE in statement STMT00004 in BB03: | |
STMT00004 ( 0x00F[--] ... ??? ) | |
[000017] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000015] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 arg0 | |
thisArg: is a local var | |
[000015] ----------- * LCL_VAR ref V23 tmp1 | |
Argument #1: is a local var | |
[000016] ----------- * LCL_VAR ref V01 arg0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4f 1c 00 0a ldfld 0xA001C4F | |
IL_0007 17 ldc.i4.1 | |
IL_0008 58 add | |
IL_0009 7d 4f 1c 00 0a stfld 0xA001C4F | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 0a stloc.0 | |
IL_0015 02 ldarg.0 | |
IL_0016 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_001b 0b stloc.1 | |
IL_001c 07 ldloc.1 | |
IL_001d 06 ldloc.0 | |
IL_001e 8e ldlen | |
IL_001f 69 conv.i4 | |
IL_0020 34 12 bge.un.s 18 (IL_0034) | |
IL_0022 02 ldarg.0 | |
IL_0023 07 ldloc.1 | |
IL_0024 17 ldc.i4.1 | |
IL_0025 58 add | |
IL_0026 7d 4e 1c 00 0a stfld 0xA001C4E | |
IL_002b 06 ldloc.0 | |
IL_002c 07 ldloc.1 | |
IL_002d 03 ldarg.1 | |
IL_002e a4 31 00 00 1b stelem 0x1B000031 | |
IL_0033 2a ret | |
IL_0034 02 ldarg.0 | |
IL_0035 03 ldarg.1 | |
IL_0036 28 52 1c 00 0a call 0xA001C52 | |
IL_003b 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
Jump targets: | |
IL_0034 | |
New Basic Block BB01 [0039] created. | |
BB01 [0039] [000..022) | |
New Basic Block BB02 [0040] created. | |
BB02 [0040] [022..034) | |
New Basic Block BB03 [0041] created. | |
BB03 [0041] [034..03C) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0039] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0040] 1 BB01 100 [022..034) (return) | |
BB03 [0041] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000017] Starting PHASE Pre-import | |
*************** Inline @[000017] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0039] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0040] 1 BB01 100 [022..034) (return) | |
BB03 [0041] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0039] [000..022) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0040] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0041] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000017] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c454dd30, data at 0x7f07c454dd60) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 144032 | |
... adding known edge BB03 -> BB01: weight 83872 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB03: all outgoing edge weights known, sum is 83872 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 83872 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 144032 | |
BB02: all outgoing edge weights known, sum is 144032 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 144032 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB02 -> BB01 has weight 144032 | |
BB01: all incoming edge weights known, sum is 227904 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/227904 | |
Setting likelihood of BB01 -> BB02 to 0.6319854 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.6319854 | |
Setting likelihood of BB01 -> BB03 to 0.3680146 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.3680146 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 227904 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 227904 scale 8.775625e-06 | |
Scaling inlinee blocks | |
*************** Inline @[000017] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0039] 1 2 2 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) IBC | |
BB02 [0040] 1 BB01 1.26 1 [022..034) (return) IBC | |
BB03 [0041] 1 BB01 0.74 1 [034..03C) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0039] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0040] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0041] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000017] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4F | |
[ 2] 7 (0x007) ldc.i4.1 1 | |
[ 3] 8 (0x008) add | |
[ 2] 9 (0x009) stfld 0A001C4F | |
STMT00101 ( 0x000[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000334] nA-XG------ * STOREIND int | |
[000333] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000015] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000332] ---XG------ \--* ADD int | |
[000330] n--XG------ +--* IND int | |
[000329] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000328] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000331] ----------- \--* CNS_INT int 1 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) stloc.0 | |
lvaGrabTemp returning 42 (V42 tmp20) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V42 as a single def temp | |
lvaSetClass: setting class for V42 to (0x7f487709c3f0) System.__Canon[] | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
STMT00102 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000338] DA-XG------ * STORE_LCL_VAR ref V42 tmp20 | |
[000337] n--XG------ \--* IND ref | |
[000336] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000335] ----------- \--* LCL_VAR ref V23 tmp1 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldfld 0A001C4E | |
[ 1] 27 (0x01b) stloc.1 | |
lvaGrabTemp returning 43 (V43 tmp21) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V43 as a single def temp | |
STMT00103 ( 0x015[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000342] DA-XG------ * STORE_LCL_VAR int V43 tmp21 | |
[000341] n--XG------ \--* IND int | |
[000340] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000339] ----------- \--* LCL_VAR ref V23 tmp1 | |
[ 0] 28 (0x01c) ldloc.1 | |
[ 1] 29 (0x01d) ldloc.0 | |
[ 2] 30 (0x01e) ldlen | |
[ 2] 31 (0x01f) conv.i4 | |
[ 2] 32 (0x020) bge.un.s | |
STMT00104 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000347] ---X------- * JTRUE void | |
[000346] N--X-----U- \--* GE int | |
[000343] ----------- +--* LCL_VAR int V43 tmp21 | |
[000345] ---X------- \--* ARR_LENGTH int | |
[000344] ----------- \--* LCL_VAR ref V42 tmp20 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=052) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 52 (0x034) ldarg.0 | |
[ 1] 53 (0x035) ldarg.1 | |
[ 2] 54 (0x036) call 0A001C52 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
STMT00105 ( 0x034[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000349] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000348] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 this | |
[ 0] 59 (0x03b) ret | |
Importing BB02 (PC=034) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 34 (0x022) ldarg.0 | |
[ 1] 35 (0x023) ldloc.1 | |
[ 2] 36 (0x024) ldc.i4.1 1 | |
[ 3] 37 (0x025) add | |
[ 2] 38 (0x026) stfld 0A001C4E | |
STMT00106 ( 0x022[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000355] nA-XG------ * STOREIND int | |
[000354] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000350] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000353] ----------- \--* ADD int | |
[000351] ----------- +--* LCL_VAR int V43 tmp21 | |
[000352] ----------- \--* CNS_INT int 1 | |
[ 0] 43 (0x02b) ldloc.0 | |
[ 1] 44 (0x02c) ldloc.1 | |
[ 2] 45 (0x02d) ldarg.1 | |
[ 3] 46 (0x02e) stelem 1B000031 | |
STMT00107 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000360] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000356] ----------- arg0 +--* LCL_VAR ref V42 tmp20 | |
[000359] ----------- arg1 +--* CAST long <- int | |
[000357] ----------- | \--* LCL_VAR int V43 tmp21 | |
[000358] ----------- arg2 \--* LCL_VAR ref V01 this | |
[ 0] 51 (0x033) ret | |
*************** Inline @[000017] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0039] 1 2 2 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) i IBC idxlen | |
BB02 [0040] 1 BB01 1.26 1 [022..034) (return) i IBC | |
BB03 [0041] 1 BB01 0.74 1 [034..03C) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0039] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0039] | |
STMT00101 ( 0x000[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000334] nA-XG------ * STOREIND int | |
[000333] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000015] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000332] ---XG------ \--* ADD int | |
[000330] n--XG------ +--* IND int | |
[000329] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000328] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000331] ----------- \--* CNS_INT int 1 | |
***** BB01 [0039] | |
STMT00102 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000338] DA-XG------ * STORE_LCL_VAR ref V42 tmp20 | |
[000337] n--XG------ \--* IND ref | |
[000336] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000335] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB01 [0039] | |
STMT00103 ( 0x015[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000342] DA-XG------ * STORE_LCL_VAR int V43 tmp21 | |
[000341] n--XG------ \--* IND int | |
[000340] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000339] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB01 [0039] | |
STMT00104 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000347] ---X------- * JTRUE void | |
[000346] N--X-----U- \--* GE int | |
[000343] ----------- +--* LCL_VAR int V43 tmp21 | |
[000345] ---X------- \--* ARR_LENGTH int | |
[000344] ----------- \--* LCL_VAR ref V42 tmp20 | |
------------ BB02 [0040] [022..034) (return), preds={BB01} succs={} | |
***** BB02 [0040] | |
STMT00106 ( 0x022[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000355] nA-XG------ * STOREIND int | |
[000354] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000350] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000353] ----------- \--* ADD int | |
[000351] ----------- +--* LCL_VAR int V43 tmp21 | |
[000352] ----------- \--* CNS_INT int 1 | |
***** BB02 [0040] | |
STMT00107 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000360] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000356] ----------- arg0 +--* LCL_VAR ref V42 tmp20 | |
[000359] ----------- arg1 +--* CAST long <- int | |
[000357] ----------- | \--* LCL_VAR int V43 tmp21 | |
[000358] ----------- arg2 \--* LCL_VAR ref V01 this | |
------------ BB03 [0041] [034..03C) (return), preds={BB01} succs={} | |
***** BB03 [0041] | |
STMT00105 ( 0x034[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000349] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000348] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 this | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000017] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000017] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000017] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000017] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000017] Starting PHASE Post-import | |
*************** Inline @[000017] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000017] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB38 [0042] created. | |
BB20 previous predecessor was BB03, now is BB38 | |
setting likelihood of BB38 -> BB20 from 1 to 1 | |
setting likelihood of BB03 -> BB38 to 1 | |
Convert bbKind of BB40 to BBJ_ALWAYS to bottomBlock BB38 | |
setting likelihood of BB40 -> BB38 to 1 | |
Convert bbKind of BB41 to BBJ_ALWAYS to bottomBlock BB38 | |
setting likelihood of BB41 -> BB38 to 1 | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
STMT00108 ( 0x00F[--] ... ??? ) | |
[000362] DA--------- * STORE_LCL_VAR ref V42 tmp20 | |
[000361] ----------- \--* CNS_INT ref null | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB39 [0039] 1 BB03 2 2 [00F..010)-> BB41(0.368),BB40(0.632) ( cond ) i IBC idxlen | |
BB40 [0040] 1 BB39 1.26 1 [00F..010)-> BB38(1) (always) i IBC | |
BB41 [0041] 1 BB39 0.74 1 [00F..010)-> BB38(1) (always) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB39 [0039] [00F..010) -> BB41(0.3680146),BB40(0.6319854) (cond), preds={BB03} succs={BB40,BB41} | |
***** BB39 [0039] | |
STMT00101 ( INL01 @ 0x000[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000334] nA-XG------ * STOREIND int | |
[000333] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000015] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000332] ---XG------ \--* ADD int | |
[000330] n--XG------ +--* IND int | |
[000329] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000328] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000331] ----------- \--* CNS_INT int 1 | |
***** BB39 [0039] | |
STMT00102 ( INL01 @ 0x00E[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000338] DA-XG------ * STORE_LCL_VAR ref V42 tmp20 | |
[000337] n--XG------ \--* IND ref | |
[000336] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000335] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB39 [0039] | |
STMT00103 ( INL01 @ 0x015[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000342] DA-XG------ * STORE_LCL_VAR int V43 tmp21 | |
[000341] n--XG------ \--* IND int | |
[000340] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000339] ----------- \--* LCL_VAR ref V23 tmp1 | |
***** BB39 [0039] | |
STMT00104 ( INL01 @ 0x01C[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000347] ---X------- * JTRUE void | |
[000346] N--X-----U- \--* GE int | |
[000343] ----------- +--* LCL_VAR int V43 tmp21 | |
[000345] ---X------- \--* ARR_LENGTH int | |
[000344] ----------- \--* LCL_VAR ref V42 tmp20 | |
------------ BB40 [0040] [00F..010) -> BB38(1) (always), preds={BB39} succs={BB38} | |
***** BB40 [0040] | |
STMT00106 ( INL01 @ 0x022[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000355] nA-XG------ * STOREIND int | |
[000354] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000350] ----------- | \--* LCL_VAR ref V23 tmp1 | |
[000353] ----------- \--* ADD int | |
[000351] ----------- +--* LCL_VAR int V43 tmp21 | |
[000352] ----------- \--* CNS_INT int 1 | |
***** BB40 [0040] | |
STMT00107 ( INL01 @ 0x02B[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000360] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000356] ----------- arg0 +--* LCL_VAR ref V42 tmp20 | |
[000359] ----------- arg1 +--* CAST long <- int | |
[000357] ----------- | \--* LCL_VAR int V43 tmp21 | |
[000358] ----------- arg2 \--* LCL_VAR ref V01 arg0 | |
------------ BB41 [0041] [00F..010) -> BB38(1) (always), preds={BB39} succs={BB38} | |
***** BB41 [0041] | |
STMT00105 ( INL01 @ 0x034[E-] ... ??? ) <- INLRT @ 0x00F[--] | |
[000349] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000348] ----------- this +--* LCL_VAR ref V23 tmp1 | |
[000016] ----------- arg1 \--* LCL_VAR ref V01 arg0 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (60 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00008 in BB38: | |
STMT00008 ( ??? ... ??? ) | |
[000029] I-C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (exactContextHnd=0x0x7f487806e339) | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000019] ----------- arg1 \--* LCL_VAR ref V03 arg2 | |
thisArg: is a local var | |
[000028] ----------- * LCL_VAR ref V25 tmp3 | |
Argument #1: is a local var | |
[000019] ----------- * LCL_VAR ref V03 arg2 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this set to 0x0x7f487806e339: | |
Invoking compiler for the inlinee method System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 16 ldc.i4.0 | |
IL_0002 03 ldarg.1 | |
IL_0003 28 c8 1b 00 0a call 0xA001BC8 | |
IL_0008 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this is 0x0x7f487806e339. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this | |
Jump targets: | |
none | |
New Basic Block BB01 [0043] created. | |
BB01 [0043] [000..009) | |
Basic block list for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0043] 1 1 [000..009) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000029] Starting PHASE Pre-import | |
*************** Inline @[000029] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0043] 1 1 [000..009) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0043] [000..009) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000029] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000029] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0043] 1 1 [000..009) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0043] [000..009) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000029] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldc.i4.0 0 | |
[ 2] 2 (0x002) ldarg.1 | |
[ 3] 3 (0x003) call 0A001BC8 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
STMT00109 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000365] --C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000364] ----------- arg1 +--* CNS_INT int 0 | |
[000019] ----------- arg2 \--* LCL_VAR ref V03 arg2 | |
[ 0] 8 (0x008) ret | |
*************** Inline @[000029] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0043] 1 1 [000..009) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0043] [000..009) (return), preds={} succs={} | |
***** BB01 [0043] | |
STMT00109 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000365] --C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000364] ----------- arg1 +--* CNS_INT int 0 | |
[000019] ----------- arg2 \--* LCL_VAR ref V03 arg2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000029] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000029] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000029] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000029] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000029] Starting PHASE Post-import | |
*************** Inline @[000029] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000029] ----------- | |
Arguments setup: | |
Inlinee method body: | |
STMT00109 ( INL02 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000365] --C-G------ * CALL void System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this | |
[000028] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000364] ----------- arg1 +--* CNS_INT int 0 | |
[000019] ----------- arg2 \--* LCL_VAR ref V03 arg2 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (9 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:.ctor(int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Expanding INLINE_CANDIDATE in statement STMT00010 in BB38: | |
STMT00010 ( ??? ... 0x029 ) | |
[000036] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000035] ----------- arg2 \--* CNS_INT int 0 | |
thisArg: is a local var | |
[000033] ----------- * LCL_VAR ref V25 tmp3 | |
Argument #1: is a local var | |
[000034] ----------- * LCL_VAR ref V10 loc6 | |
Argument #2: is a constant or invariant | |
[000035] ----------- * CNS_INT int 0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this set to 0x0x7f487806e339: | |
Invoking compiler for the inlinee method System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 04 ldarg.2 | |
IL_0003 17 ldc.i4.1 | |
IL_0004 28 e2 1b 00 0a call 0xA001BE2 | |
IL_0009 0a stloc.0 | |
IL_000a 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this is 0x0x7f487806e339. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this | |
Jump targets: | |
none | |
New Basic Block BB01 [0044] created. | |
BB01 [0044] [000..00B) | |
Basic block list for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0044] 1 1 [000..00B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000036] Starting PHASE Pre-import | |
*************** Inline @[000036] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0044] 1 1 [000..00B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0044] [000..00B) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000036] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000036] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0044] 1 1 [000..00B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0044] [000..00B) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000036] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) ldarg.2 | |
[ 3] 3 (0x003) ldc.i4.1 1 | |
[ 4] 4 (0x004) call 0A001BE2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[ 1] 9 (0x009) stloc.0 | |
lvaGrabTemp returning 44 (V44 tmp22) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V44 as a single def temp | |
STMT00110 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000370] DAC-G------ * STORE_LCL_VAR ubyte V44 tmp22 | |
[000369] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000367] ----------- arg2 +--* CNS_INT int 0 | |
[000368] ----------- arg3 \--* CNS_INT int 1 | |
[ 0] 10 (0x00a) ret | |
*************** Inline @[000036] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0044] 1 1 [000..00B) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0044] [000..00B) (return), preds={} succs={} | |
***** BB01 [0044] | |
STMT00110 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000370] DAC-G------ * STORE_LCL_VAR ubyte V44 tmp22 | |
[000369] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000367] ----------- arg2 +--* CNS_INT int 0 | |
[000368] ----------- arg3 \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000036] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000036] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000036] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000036] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000036] Starting PHASE Post-import | |
*************** Inline @[000036] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000036] ----------- | |
Arguments setup: | |
Inlinee method body: | |
STMT00110 ( INL03 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000370] DAC-G------ * STORE_LCL_VAR ubyte V44 tmp22 | |
[000369] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000033] ----------- this +--* LCL_VAR ref V25 tmp3 | |
[000034] ----------- arg1 +--* LCL_VAR ref V10 loc6 | |
[000367] ----------- arg2 +--* CNS_INT int 0 | |
[000368] ----------- arg3 \--* CNS_INT int 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this (11 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:set_Item(System.__Canon,int):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Expanding INLINE_CANDIDATE in statement STMT00013 in BB38: | |
STMT00013 ( ??? ... ??? ) | |
[000042] I-C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:.ctor():this (exactContextHnd=0x0x7f487dd16109) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
thisArg: is a local var | |
[000041] ----------- * LCL_VAR ref V27 tmp5 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:.ctor():this set to 0x0x7f487dd16109: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:.ctor():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 28 cf 05 00 06 call 0x60005CF | |
IL_0006 02 ldarg.0 | |
IL_0007 7e 4c 1c 00 0a ldsfld 0xA001C4C | |
IL_000c 7d 4d 1c 00 0a stfld 0xA001C4D | |
IL_0011 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:.ctor():this is 0x0x7f487dd16109. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:.ctor():this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:.ctor():this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight=159 : state 112 [ ldsfld ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in instance constructors increased to 1.5. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4.5. | |
Inline candidate callsite is warm. Multiplier increased to 6.5. | |
Caller has 67 locals. Multiplier decreased to 6.07471. | |
calleeNativeSizeEstimate=308 | |
callsiteNativeSizeEstimate=85 | |
benefit multiplier=6.07471 | |
threshold=516 | |
Native estimate for function size is within threshold for inlining 30.8 <= 51.6 (multiplier = 6.07471) | |
Jump targets: | |
none | |
New Basic Block BB01 [0045] created. | |
BB01 [0045] [000..012) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0045] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000042] Starting PHASE Pre-import | |
*************** Inline @[000042] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0045] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0045] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000042] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000042] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0045] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0045] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000042] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) call 060005CF | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f4875ec5ee9 | |
Class context: System.Object | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' calling 'System.Object:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00112 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000374] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
[ 0] 6 (0x006) ldarg.0 | |
[ 1] 7 (0x007) ldsfld 0A001C4C | |
Checking if we can import 'static readonly' as a jit-time constant... | |
[ 2] 12 (0x00c) stfld 0A001C4D | |
STMT00113 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000379] hA-XG------ * STOREIND ref | |
[000378] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000375] ----------- | \--* LCL_VAR ref V27 tmp5 | |
[000377] #---G------ \--* IND ref | |
[000376] H---------- \--* CNS_INT(h) long 0x7f0868018a18 const ptr Fseq[s_emptyArray] | |
[ 0] 17 (0x011) ret | |
*************** Inline @[000042] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0045] 1 1 [000..012) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0045] [000..012) (return), preds={} succs={} | |
***** BB01 [0045] | |
STMT00112 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000374] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
***** BB01 [0045] | |
STMT00113 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000379] hA-XG------ * STOREIND ref | |
[000378] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000375] ----------- | \--* LCL_VAR ref V27 tmp5 | |
[000377] #---G------ \--* IND ref | |
[000376] H---------- \--* CNS_INT(h) long 0x7f0868018a18 const ptr Fseq[s_emptyArray] | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000042] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000042] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000042] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000042] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000042] Starting PHASE Post-import | |
*************** Inline @[000042] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000042] ----------- | |
Arguments setup: | |
Inlinee method body: | |
STMT00112 ( INL04 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000374] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
STMT00113 ( INL04 @ 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000379] hA-XG------ * STOREIND ref | |
[000378] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000375] ----------- | \--* LCL_VAR ref V27 tmp5 | |
[000377] #---G------ \--* IND ref | |
[000376] H---------- \--* CNS_INT(h) long 0x7f0868018a18 const ptr Fseq[s_emptyArray] | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:.ctor():this (18 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00112 in BB38: | |
STMT00112 ( INL04 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000374] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000041] ----------- this \--* LCL_VAR ref V27 tmp5 | |
thisArg: is a local var | |
[000041] ----------- * LCL_VAR ref V27 tmp5 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Object:.ctor():this set to 0x0x7f4875ec5ee9: | |
Invoking compiler for the inlinee method System.Object:.ctor():this : | |
IL to import: | |
IL_0000 2a ret | |
INLINER impTokenLookupContextHandle for System.Object:.ctor():this is 0x0x7f4875ec5ee9. | |
*************** In compInitDebuggingInfo() for System.Object:.ctor():this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Object:.ctor():this | |
Jump targets: | |
none | |
New Basic Block BB01 [0046] created. | |
BB01 [0046] [000..001) | |
Basic block list for 'System.Object:.ctor():this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0046] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000374] Starting PHASE Pre-import | |
*************** Inline @[000374] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0046] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0046] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000374] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000374] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0046] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0046] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000374] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Object:.ctor():this' | |
[ 0] 0 (0x000) ret | |
** Note: inlinee IL was partially imported -- imported 0 of 1 bytes of method IL | |
*************** Inline @[000374] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0046] 1 1 [000..001) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0046] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000374] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000374] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000374] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000374] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000374] Starting PHASE Post-import | |
*************** Inline @[000374] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000374] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Object:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement STMT00016 in BB38: | |
STMT00016 ( ??? ... ??? ) | |
[000049] I-C-G------ * CALL void System.Collections.Generic.Queue`1[int]:.ctor():this (exactContextHnd=0x0x7f487dd15f41) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
thisArg: is a local var | |
[000048] ----------- * LCL_VAR ref V28 tmp6 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:.ctor():this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:.ctor():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 28 cf 05 00 06 call 0x60005CF | |
IL_0006 02 ldarg.0 | |
IL_0007 28 7b 01 00 2b call 0x2B00017B | |
IL_000c 7d 72 1c 00 0a stfld 0xA001C72 | |
IL_0011 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:.ctor():this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:.ctor():this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:.ctor():this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in instance constructors increased to 1.5. | |
1 ldfld or stfld over arguments which are structs. Multiplier increased to 2.5. | |
Inline candidate is mostly loads and stores. Multiplier increased to 5.5. | |
Inline candidate callsite is warm. Multiplier increased to 7.5. | |
Caller has 67 locals. Multiplier decreased to 7.00928. | |
calleeNativeSizeEstimate=228 | |
callsiteNativeSizeEstimate=85 | |
benefit multiplier=7.00928 | |
threshold=595 | |
Native estimate for function size is within threshold for inlining 22.8 <= 59.5 (multiplier = 7.00928) | |
Jump targets: | |
none | |
New Basic Block BB01 [0047] created. | |
BB01 [0047] [000..012) | |
Basic block list for 'System.Collections.Generic.Queue`1[int]:.ctor():this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0047] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000049] Starting PHASE Pre-import | |
*************** Inline @[000049] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0047] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0047] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000049] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000049] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0047] 1 1 [000..012) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0047] [000..012) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000049] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Queue`1[int]:.ctor():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) call 060005CF | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f4875ec5ee9 | |
Class context: System.Object | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.Queue`1[int]:.ctor():this' calling 'System.Object:.ctor():this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00114 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000382] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
[ 0] 6 (0x006) ldarg.0 | |
[ 1] 7 (0x007) call 2B00017B | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Empty -- context 0x7f487d1a3ca0 | |
Method context: System.Array:Empty[int]():int[] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.Queue`1[int]:.ctor():this' calling 'System.Array:Empty[int]():int[]' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00115 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000384] I-C-G------ * CALL ref System.Array:Empty[int]():int[] (exactContextHnd=0x0x7f487d1a3ca0) | |
[ 2] 12 (0x00c) stfld 0A001C72 | |
STMT00116 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000387] hACXG------ * STOREIND ref | |
[000386] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000383] ----------- | \--* LCL_VAR ref V28 tmp6 | |
[000385] --C-------- \--* RET_EXPR ref (for [000384]) | |
[ 0] 17 (0x011) ret | |
*************** Inline @[000049] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0047] 1 1 [000..012) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0047] [000..012) (return), preds={} succs={} | |
***** BB01 [0047] | |
STMT00114 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000382] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
***** BB01 [0047] | |
STMT00115 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000384] I-C-G------ * CALL ref System.Array:Empty[int]():int[] (exactContextHnd=0x0x7f487d1a3ca0) | |
***** BB01 [0047] | |
STMT00116 ( 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000387] hACXG------ * STOREIND ref | |
[000386] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000383] ----------- | \--* LCL_VAR ref V28 tmp6 | |
[000385] --C-------- \--* RET_EXPR ref (for [000384]) | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000049] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000049] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000049] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000049] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000049] Starting PHASE Post-import | |
*************** Inline @[000049] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000049] ----------- | |
Arguments setup: | |
Inlinee method body: | |
STMT00114 ( INL06 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000382] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
STMT00115 ( INL06 @ 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000384] I-C-G------ * CALL ref System.Array:Empty[int]():int[] (exactContextHnd=0x0x7f487d1a3ca0) | |
STMT00116 ( INL06 @ 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000387] hACXG------ * STOREIND ref | |
[000386] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000383] ----------- | \--* LCL_VAR ref V28 tmp6 | |
[000385] --C-------- \--* RET_EXPR ref (for [000384]) | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.Queue`1[int]:.ctor():this (18 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00114 in BB38: | |
STMT00114 ( INL06 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000382] I-C-G------ * CALL void System.Object:.ctor():this (exactContextHnd=0x0x7f4875ec5ee9) | |
[000048] ----------- this \--* LCL_VAR ref V28 tmp6 | |
thisArg: is a local var | |
[000048] ----------- * LCL_VAR ref V28 tmp6 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Object:.ctor():this set to 0x0x7f4875ec5ee9: | |
Invoking compiler for the inlinee method System.Object:.ctor():this : | |
IL to import: | |
IL_0000 2a ret | |
INLINER impTokenLookupContextHandle for System.Object:.ctor():this is 0x0x7f4875ec5ee9. | |
*************** In compInitDebuggingInfo() for System.Object:.ctor():this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Object:.ctor():this | |
Jump targets: | |
none | |
New Basic Block BB01 [0048] created. | |
BB01 [0048] [000..001) | |
Basic block list for 'System.Object:.ctor():this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0048] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000382] Starting PHASE Pre-import | |
*************** Inline @[000382] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0048] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0048] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000382] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000382] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0048] 1 1 [000..001) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0048] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000382] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Object:.ctor():this' | |
[ 0] 0 (0x000) ret | |
** Note: inlinee IL was partially imported -- imported 0 of 1 bytes of method IL | |
*************** Inline @[000382] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0048] 1 1 [000..001) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0048] [000..001) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000382] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000382] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000382] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000382] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000382] Starting PHASE Post-import | |
*************** Inline @[000382] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000382] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Object:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement STMT00115 in BB38: | |
STMT00115 ( INL06 @ 0x006[E-] ... ??? ) <- INLRT @ ??? | |
[000384] I-C-G------ * CALL ref System.Array:Empty[int]():int[] (exactContextHnd=0x0x7f487d1a3ca0) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Array:Empty[int]():int[] set to 0x0x7f487d1a3ca0: | |
Invoking compiler for the inlinee method System.Array:Empty[int]():int[] : | |
IL to import: | |
IL_0000 7e 4d 00 00 0a ldsfld 0xA00004D | |
IL_0005 2a ret | |
INLINER impTokenLookupContextHandle for System.Array:Empty[int]():int[] is 0x0x7f487d1a3ca0. | |
*************** In compInitDebuggingInfo() for System.Array:Empty[int]():int[] | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Array:Empty[int]():int[] | |
Jump targets: | |
none | |
New Basic Block BB01 [0049] created. | |
BB01 [0049] [000..006) | |
Basic block list for 'System.Array:Empty[int]():int[]' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0049] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000384] Starting PHASE Pre-import | |
*************** Inline @[000384] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0049] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0049] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000384] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000384] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0049] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0049] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000384] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Array:Empty[int]():int[]' | |
[ 0] 0 (0x000) ldsfld 0A00004D | |
Checking if we can import 'static readonly' as a jit-time constant... ... success! The value is: | |
[000390] H---------- * CNS_INT(h) ref 'System.Int32[]' | |
[ 1] 5 (0x005) ret | |
Inlinee Return expression (before normalization) => | |
[000390] H---------- * CNS_INT(h) ref 'System.Int32[]' | |
Inlinee Return expression (after normalization) => | |
[000390] H---------- * CNS_INT(h) ref 'System.Int32[]' | |
** Note: inlinee IL was partially imported -- imported 0 of 6 bytes of method IL | |
*************** Inline @[000384] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0049] 1 1 [000..006) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0049] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000384] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000384] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000384] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000384] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000384] Starting PHASE Post-import | |
*************** Inline @[000384] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000384] ----------- | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
INLINER: Updating optMethodFlags -- root:8f callee:400 new:48f | |
Successfully inlined System.Array:Empty[int]():int[] (6 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Array:Empty[int]():int[]' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000385] with [000390] | |
[000385] --C-------- * RET_EXPR ref (for [000384]) -> [000390] | |
Inserting the inline return expression | |
[000390] H---------- * CNS_INT(h) ref 'System.Int32[]' | |
Expanding INLINE_CANDIDATE in statement STMT00021 in BB04: | |
STMT00021 ( 0x03E[E-] ... 0x046 ) | |
[000062] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000060] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000061] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
thisArg: is a local var | |
[000060] ----------- * LCL_VAR ref V04 loc0 | |
Argument #1: is a local var | |
[000061] ----------- * LCL_VAR int V11 loc7 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0007 37 05 blt.un.s 5 (IL_000e) | |
IL_0009 28 c2 21 00 06 call 0x60021C2 | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 03 ldarg.1 | |
IL_0015 a3 31 00 00 1b ldelem 0x1B000031 | |
IL_001a 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight=-63 : state 55 [ blt.un.s ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 65 : state 140 [ ldelem ] | |
weight= 19 : state 42 [ ret ] | |
2 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4. | |
Inline candidate has arg that feeds range check. Multiplier increased to 5. | |
Inline candidate callsite is in a loop. Multiplier increased to 8. | |
Caller has 67 locals. Multiplier decreased to 7.47656. | |
calleeNativeSizeEstimate=194 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=7.47656 | |
threshold=859 | |
Native estimate for function size is within threshold for inlining 19.4 <= 85.9 (multiplier = 7.47656) | |
Jump targets: | |
IL_000e | |
New Basic Block BB01 [0050] created. | |
BB01 [0050] [000..009) | |
New Basic Block BB02 [0051] created. | |
BB02 [0051] [009..00E) | |
New Basic Block BB03 [0052] created. | |
BB03 [0052] [00E..01B) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0050] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0051] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0052] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000062] Starting PHASE Pre-import | |
*************** Inline @[000062] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0050] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0051] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0052] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0050] [000..009) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0051] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0052] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000062] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c457d110, data at 0x7f07c457d140) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 1837312 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB03: all outgoing edge weights known, sum is 1837312 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 1837312 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB03 has weight 0 | |
BB02: all outgoing edge weights known, sum is 0 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 0 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB01: all incoming edge weights known, sum is 1837312 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/1837312 | |
Setting likelihood of BB01 -> BB03 to 1 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 1 | |
Setting likelihood of BB01 -> BB02 to 0 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0 | |
BB02 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB02 -> BB03 to 1 (heur) | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 1837312 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 1837312 scale 1.088547e-06 | |
Scaling inlinee blocks | |
*************** Inline @[000062] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0050] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) IBC | |
BB02 [0051] 1 BB01 0 0 [009..00E)-> BB03(1) (always) IBC rare | |
BB03 [0052] 2 BB01,BB02 2 2 [00E..01B) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0050] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0051] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0052] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000062] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 0 (0x000) ldarg.1 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4E | |
[ 2] 7 (0x007) blt.un.s | |
STMT00117 ( 0x000[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000395] ---XG------ * JTRUE void | |
[000394] N--XG----U- \--* LT int | |
[000061] ----------- +--* LCL_VAR int V11 loc7 | |
[000393] n--XG------ \--* IND int | |
[000392] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000060] ----------- \--* LCL_VAR ref V04 loc0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=014) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) ldarg.1 | |
[ 2] 21 (0x015) ldelem 1B000031 | |
[ 1] 26 (0x01a) ret | |
Inlinee Return expression (before normalization) => | |
[000401] n--XG------ * IND ref | |
[000400] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000398] n--XG------ +--* IND ref | |
[000397] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000396] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000399] ----------- \--* LCL_VAR int V11 loc7 | |
Inlinee Return expression (after normalization) => | |
[000401] n--XG------ * IND ref | |
[000400] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000398] n--XG------ +--* IND ref | |
[000397] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000396] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000399] ----------- \--* LCL_VAR int V11 loc7 | |
Importing BB02 (PC=009) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 9 (0x009) call 060021C2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate ThrowArgumentOutOfRange_IndexMustBeLessException -- context 0x7f48765d4fe9 | |
Class context: System.ThrowHelper | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00118 ( 0x009[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000402] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
impImportBlockPending for BB03 | |
** Note: inlinee IL was partially imported -- imported 14 of 27 bytes of method IL | |
*************** Inline @[000062] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0050] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) i IBC | |
BB02 [0051] 1 BB01 0 0 [009..00E)-> BB03(1) (always) i IBC rare | |
BB03 [0052] 2 BB01,BB02 2 2 [00E..01B) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0050] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0050] | |
STMT00117 ( 0x000[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000395] ---XG------ * JTRUE void | |
[000394] N--XG----U- \--* LT int | |
[000061] ----------- +--* LCL_VAR int V11 loc7 | |
[000393] n--XG------ \--* IND int | |
[000392] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000060] ----------- \--* LCL_VAR ref V04 loc0 | |
------------ BB02 [0051] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0051] | |
STMT00118 ( 0x009[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000402] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB03 [0052] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000062] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000062] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000062] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000062] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000062] Starting PHASE Post-import | |
*************** Inline @[000062] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000062] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB42 [0053] created. | |
BB05 previous predecessor was BB04, now is BB42 | |
BB06 previous predecessor was BB04, now is BB42 | |
setting likelihood of BB04 -> BB42 to 1 | |
Convert bbKind of BB45 to BBJ_ALWAYS to bottomBlock BB42 | |
setting likelihood of BB45 -> BB42 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB43 [0050] 1 BB04 2 2 [03E..03F)-> BB45(1),BB44(0) ( cond ) i IBC bwd | |
BB44 [0051] 1 BB43 0 0 [03E..03F)-> BB45(1) (always) i IBC rare bwd | |
BB45 [0052] 2 BB43,BB44 2 2 [03E..03F)-> BB42(1) (always) i IBC bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB43 [0050] [03E..03F) -> BB45(1),BB44(0) (cond), preds={BB04} succs={BB44,BB45} | |
***** BB43 [0050] | |
STMT00117 ( INL09 @ 0x000[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000395] ---XG------ * JTRUE void | |
[000394] N--XG----U- \--* LT int | |
[000061] ----------- +--* LCL_VAR int V11 loc7 | |
[000393] n--XG------ \--* IND int | |
[000392] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000060] ----------- \--* LCL_VAR ref V04 loc0 | |
------------ BB44 [0051] [03E..03F) -> BB45(1) (always), preds={BB43} succs={BB45} | |
***** BB44 [0051] | |
STMT00118 ( INL09 @ 0x009[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000402] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB45 [0052] [03E..03F) -> BB42(1) (always), preds={BB43,BB44} succs={BB42} | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (27 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
BB04 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00118 in BB44: | |
STMT00118 ( INL09 @ 0x009[E-] ... ??? ) <- INLRT @ 0x03E[E-] | |
[000402] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() set to 0x0x7f48765d4fe9: | |
Invoking compiler for the inlinee method System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() : | |
IL to import: | |
IL_0000 1f 15 ldc.i4.s 0x15 | |
IL_0002 17 ldc.i4.1 | |
IL_0003 28 20 22 00 06 call 0x6002220 | |
IL_0008 7a throw | |
INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() is 0x0x7f48765d4fe9. | |
*************** In compInitDebuggingInfo() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
Jump targets: | |
none | |
New Basic Block BB01 [0054] created. | |
BB01 [0054] [000..009) | |
Basic block list for 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0054] 1 0 [000..009) (throw ) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' | |
Replacing the return expression placeholder [000063] with [000401] | |
[000063] --C-------- * RET_EXPR ref (for [000062]) -> [000401] | |
Inserting the inline return expression | |
[000401] n--XG------ * IND ref | |
[000400] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000398] n--XG------ +--* IND ref | |
[000397] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000396] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000399] ----------- \--* LCL_VAR int V11 loc7 | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'has no body' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this' | |
INLINER: Marking System.Func`2[System.__Canon,System.__Canon]:Invoke(System.__Canon):System.__Canon:this as NOINLINE because of has no body | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'has no body' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
lvaUpdateClass: NOT Updating class for V13 from (0x7f4876029890) System.Collections.Generic.ICollection`1[System.__Canon] to (0x7f4875ec5f70) System.__Canon | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' | |
Expanding INLINE_CANDIDATE in statement STMT00052 in BB05: | |
STMT00052 ( 0x05F[E-] ... 0x06E ) | |
[000168] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000166] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000167] ----------- arg1 \--* CNS_INT ref null | |
thisArg: is a local var | |
[000166] ----------- * LCL_VAR ref V06 loc2 | |
Argument #1: is a constant or invariant | |
[000167] ----------- * CNS_INT ref null | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this set to 0x0x7f487dd16109: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4f 1c 00 0a ldfld 0xA001C4F | |
IL_0007 17 ldc.i4.1 | |
IL_0008 58 add | |
IL_0009 7d 4f 1c 00 0a stfld 0xA001C4F | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 0a stloc.0 | |
IL_0015 02 ldarg.0 | |
IL_0016 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_001b 0b stloc.1 | |
IL_001c 07 ldloc.1 | |
IL_001d 06 ldloc.0 | |
IL_001e 8e ldlen | |
IL_001f 69 conv.i4 | |
IL_0020 34 12 bge.un.s 18 (IL_0034) | |
IL_0022 02 ldarg.0 | |
IL_0023 07 ldloc.1 | |
IL_0024 17 ldc.i4.1 | |
IL_0025 58 add | |
IL_0026 7d 4e 1c 00 0a stfld 0xA001C4E | |
IL_002b 06 ldloc.0 | |
IL_002c 07 ldloc.1 | |
IL_002d 03 ldarg.1 | |
IL_002e a4 31 00 00 1b stelem 0x1B000031 | |
IL_0033 2a ret | |
IL_0034 02 ldarg.0 | |
IL_0035 03 ldarg.1 | |
IL_0036 28 52 1c 00 0a call 0xA001C52 | |
IL_003b 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this is 0x0x7f487dd16109. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
Jump targets: | |
IL_0034 | |
New Basic Block BB01 [0054] created. | |
BB01 [0054] [000..022) | |
New Basic Block BB02 [0055] created. | |
BB02 [0055] [022..034) | |
New Basic Block BB03 [0056] created. | |
BB03 [0056] [034..03C) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0054] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0055] 1 BB01 100 [022..034) (return) | |
BB03 [0056] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000168] Starting PHASE Pre-import | |
*************** Inline @[000168] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0054] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0055] 1 BB01 100 [022..034) (return) | |
BB03 [0056] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0054] [000..022) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0055] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0056] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000168] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c454dd30, data at 0x7f07c454dd60) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 144032 | |
... adding known edge BB03 -> BB01: weight 83872 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB03: all outgoing edge weights known, sum is 83872 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 83872 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 144032 | |
BB02: all outgoing edge weights known, sum is 144032 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 144032 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB02 -> BB01 has weight 144032 | |
BB01: all incoming edge weights known, sum is 227904 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/227904 | |
Setting likelihood of BB01 -> BB02 to 0.6319854 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.6319854 | |
Setting likelihood of BB01 -> BB03 to 0.3680146 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.3680146 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 227904 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 227904 scale 8.775625e-06 | |
Scaling inlinee blocks | |
*************** Inline @[000168] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0054] 1 2 2 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) IBC | |
BB02 [0055] 1 BB01 1.26 1 [022..034) (return) IBC | |
BB03 [0056] 1 BB01 0.74 1 [034..03C) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0054] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0055] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0056] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000168] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4F | |
[ 2] 7 (0x007) ldc.i4.1 1 | |
[ 3] 8 (0x008) add | |
[ 2] 9 (0x009) stfld 0A001C4F | |
STMT00119 ( 0x000[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000410] nA-XG------ * STOREIND int | |
[000409] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000166] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000408] ---XG------ \--* ADD int | |
[000406] n--XG------ +--* IND int | |
[000405] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000404] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000407] ----------- \--* CNS_INT int 1 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) stloc.0 | |
lvaGrabTemp returning 45 (V45 tmp23) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V45 as a single def temp | |
lvaSetClass: setting class for V45 to (0x7f487dd17010) ubyte[][] | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
lvaUpdateClass: NOT Updating class for V45 from (0x7f487dd17010) ubyte[][] to (0x7f487709c3f0) System.__Canon[] | |
STMT00120 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000414] DA-XG------ * STORE_LCL_VAR ref V45 tmp23 | |
[000413] n--XG------ \--* IND ref | |
[000412] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000411] ----------- \--* LCL_VAR ref V06 loc2 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldfld 0A001C4E | |
[ 1] 27 (0x01b) stloc.1 | |
lvaGrabTemp returning 46 (V46 tmp24) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V46 as a single def temp | |
STMT00121 ( 0x015[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000418] DA-XG------ * STORE_LCL_VAR int V46 tmp24 | |
[000417] n--XG------ \--* IND int | |
[000416] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000415] ----------- \--* LCL_VAR ref V06 loc2 | |
[ 0] 28 (0x01c) ldloc.1 | |
[ 1] 29 (0x01d) ldloc.0 | |
[ 2] 30 (0x01e) ldlen | |
[ 2] 31 (0x01f) conv.i4 | |
[ 2] 32 (0x020) bge.un.s | |
STMT00122 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000423] ---X------- * JTRUE void | |
[000422] N--X-----U- \--* GE int | |
[000419] ----------- +--* LCL_VAR int V46 tmp24 | |
[000421] ---X------- \--* ARR_LENGTH int | |
[000420] ----------- \--* LCL_VAR ref V45 tmp23 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=052) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 52 (0x034) ldarg.0 | |
[ 1] 53 (0x035) ldarg.1 | |
[ 2] 54 (0x036) call 0A001C52 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
STMT00123 ( 0x034[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000426] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000424] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000425] ----------- arg1 \--* CNS_INT ref null | |
[ 0] 59 (0x03b) ret | |
Importing BB02 (PC=034) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 34 (0x022) ldarg.0 | |
[ 1] 35 (0x023) ldloc.1 | |
[ 2] 36 (0x024) ldc.i4.1 1 | |
[ 3] 37 (0x025) add | |
[ 2] 38 (0x026) stfld 0A001C4E | |
STMT00124 ( 0x022[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000432] nA-XG------ * STOREIND int | |
[000431] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000427] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000430] ----------- \--* ADD int | |
[000428] ----------- +--* LCL_VAR int V46 tmp24 | |
[000429] ----------- \--* CNS_INT int 1 | |
[ 0] 43 (0x02b) ldloc.0 | |
[ 1] 44 (0x02c) ldloc.1 | |
[ 2] 45 (0x02d) ldarg.1 | |
[ 3] 46 (0x02e) stelem 1B000031 | |
stelem of null: skipping covariant store check | |
STMT00125 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000437] nA-XG------ * STOREIND ref | |
[000436] ---XG------ +--* INDEX_ADDR byref ref[] | |
[000433] ----------- | +--* LCL_VAR ref V45 tmp23 | |
[000434] ----------- | \--* LCL_VAR int V46 tmp24 | |
[000435] ----------- \--* CNS_INT ref null | |
[ 0] 51 (0x033) ret | |
*************** Inline @[000168] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0054] 1 2 2 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) i IBC idxlen | |
BB02 [0055] 1 BB01 1.26 1 [022..034) (return) i IBC idxlen | |
BB03 [0056] 1 BB01 0.74 1 [034..03C) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0054] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0054] | |
STMT00119 ( 0x000[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000410] nA-XG------ * STOREIND int | |
[000409] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000166] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000408] ---XG------ \--* ADD int | |
[000406] n--XG------ +--* IND int | |
[000405] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000404] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000407] ----------- \--* CNS_INT int 1 | |
***** BB01 [0054] | |
STMT00120 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000414] DA-XG------ * STORE_LCL_VAR ref V45 tmp23 | |
[000413] n--XG------ \--* IND ref | |
[000412] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000411] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB01 [0054] | |
STMT00121 ( 0x015[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000418] DA-XG------ * STORE_LCL_VAR int V46 tmp24 | |
[000417] n--XG------ \--* IND int | |
[000416] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000415] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB01 [0054] | |
STMT00122 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000423] ---X------- * JTRUE void | |
[000422] N--X-----U- \--* GE int | |
[000419] ----------- +--* LCL_VAR int V46 tmp24 | |
[000421] ---X------- \--* ARR_LENGTH int | |
[000420] ----------- \--* LCL_VAR ref V45 tmp23 | |
------------ BB02 [0055] [022..034) (return), preds={BB01} succs={} | |
***** BB02 [0055] | |
STMT00124 ( 0x022[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000432] nA-XG------ * STOREIND int | |
[000431] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000427] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000430] ----------- \--* ADD int | |
[000428] ----------- +--* LCL_VAR int V46 tmp24 | |
[000429] ----------- \--* CNS_INT int 1 | |
***** BB02 [0055] | |
STMT00125 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000437] nA-XG------ * STOREIND ref | |
[000436] ---XG------ +--* INDEX_ADDR byref ref[] | |
[000433] ----------- | +--* LCL_VAR ref V45 tmp23 | |
[000434] ----------- | \--* LCL_VAR int V46 tmp24 | |
[000435] ----------- \--* CNS_INT ref null | |
------------ BB03 [0056] [034..03C) (return), preds={BB01} succs={} | |
***** BB03 [0056] | |
STMT00123 ( 0x034[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000426] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000424] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000425] ----------- arg1 \--* CNS_INT ref null | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000168] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000168] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000168] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000168] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000168] Starting PHASE Post-import | |
*************** Inline @[000168] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000168] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB46 [0057] created. | |
BB19 previous predecessor was BB05, now is BB46 | |
setting likelihood of BB46 -> BB19 from 1 to 1 | |
setting likelihood of BB05 -> BB46 to 1 | |
Convert bbKind of BB48 to BBJ_ALWAYS to bottomBlock BB46 | |
setting likelihood of BB48 -> BB46 to 1 | |
Convert bbKind of BB49 to BBJ_ALWAYS to bottomBlock BB46 | |
setting likelihood of BB49 -> BB46 to 1 | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
STMT00126 ( 0x05F[E-] ... ??? ) | |
[000439] DA--------- * STORE_LCL_VAR ref V45 tmp23 | |
[000438] ----------- \--* CNS_INT ref null | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB47 [0054] 1 BB05 2 2 [05F..060)-> BB49(0.368),BB48(0.632) ( cond ) i IBC idxlen bwd | |
BB48 [0055] 1 BB47 1.26 1 [05F..060)-> BB46(1) (always) i IBC idxlen bwd | |
BB49 [0056] 1 BB47 0.74 1 [05F..060)-> BB46(1) (always) i IBC bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB47 [0054] [05F..060) -> BB49(0.3680146),BB48(0.6319854) (cond), preds={BB05} succs={BB48,BB49} | |
***** BB47 [0054] | |
STMT00119 ( INL10 @ 0x000[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000410] nA-XG------ * STOREIND int | |
[000409] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000166] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000408] ---XG------ \--* ADD int | |
[000406] n--XG------ +--* IND int | |
[000405] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000404] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000407] ----------- \--* CNS_INT int 1 | |
***** BB47 [0054] | |
STMT00120 ( INL10 @ 0x00E[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000414] DA-XG------ * STORE_LCL_VAR ref V45 tmp23 | |
[000413] n--XG------ \--* IND ref | |
[000412] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000411] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB47 [0054] | |
STMT00121 ( INL10 @ 0x015[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000418] DA-XG------ * STORE_LCL_VAR int V46 tmp24 | |
[000417] n--XG------ \--* IND int | |
[000416] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000415] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB47 [0054] | |
STMT00122 ( INL10 @ 0x01C[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000423] ---X------- * JTRUE void | |
[000422] N--X-----U- \--* GE int | |
[000419] ----------- +--* LCL_VAR int V46 tmp24 | |
[000421] ---X------- \--* ARR_LENGTH int | |
[000420] ----------- \--* LCL_VAR ref V45 tmp23 | |
------------ BB48 [0055] [05F..060) -> BB46(1) (always), preds={BB47} succs={BB46} | |
***** BB48 [0055] | |
STMT00124 ( INL10 @ 0x022[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000432] nA-XG------ * STOREIND int | |
[000431] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000427] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000430] ----------- \--* ADD int | |
[000428] ----------- +--* LCL_VAR int V46 tmp24 | |
[000429] ----------- \--* CNS_INT int 1 | |
***** BB48 [0055] | |
STMT00125 ( INL10 @ 0x02B[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000437] nA-XG------ * STOREIND ref | |
[000436] ---XG------ +--* INDEX_ADDR byref ref[] | |
[000433] ----------- | +--* LCL_VAR ref V45 tmp23 | |
[000434] ----------- | \--* LCL_VAR int V46 tmp24 | |
[000435] ----------- \--* CNS_INT ref null | |
------------ BB49 [0056] [05F..060) -> BB46(1) (always), preds={BB47} succs={BB46} | |
***** BB49 [0056] | |
STMT00123 ( INL10 @ 0x034[E-] ... ??? ) <- INLRT @ 0x05F[E-] | |
[000426] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000424] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000425] ----------- arg1 \--* CNS_INT ref null | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (60 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
BB05 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
lvaUpdateClass: NOT Updating class for V45 from (0x7f487dd17010) ubyte[][] to (0x7f487709c3f0) System.__Canon[] | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Expanding INLINE_CANDIDATE in statement STMT00053 in BB46: | |
STMT00053 ( 0x066[E-] ... ??? ) | |
[000171] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000169] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000170] ----------- arg1 \--* LCL_VAR int V11 loc7 | |
thisArg: is a local var | |
[000169] ----------- * LCL_VAR ref V07 loc3 | |
Argument #1: is a local var | |
[000170] ----------- * LCL_VAR int V11 loc7 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Enqueue(int):this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:Enqueue(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0006 02 ldarg.0 | |
IL_0007 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_000c 8e ldlen | |
IL_000d 69 conv.i4 | |
IL_000e 33 0e bne.un.s 14 (IL_001e) | |
IL_0010 02 ldarg.0 | |
IL_0011 02 ldarg.0 | |
IL_0012 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0017 17 ldc.i4.1 | |
IL_0018 58 add | |
IL_0019 28 77 1c 00 0a call 0xA001C77 | |
IL_001e 02 ldarg.0 | |
IL_001f 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_0024 02 ldarg.0 | |
IL_0025 7b 74 1c 00 0a ldfld 0xA001C74 | |
IL_002a 03 ldarg.1 | |
IL_002b a4 31 00 00 1b stelem 0x1B000031 | |
IL_0030 02 ldarg.0 | |
IL_0031 02 ldarg.0 | |
IL_0032 7c 74 1c 00 0a ldflda 0xA001C74 | |
IL_0037 28 78 1c 00 0a call 0xA001C78 | |
IL_003c 02 ldarg.0 | |
IL_003d 02 ldarg.0 | |
IL_003e 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0043 17 ldc.i4.1 | |
IL_0044 58 add | |
IL_0045 7d 73 1c 00 0a stfld 0xA001C73 | |
IL_004a 02 ldarg.0 | |
IL_004b 02 ldarg.0 | |
IL_004c 7b 76 1c 00 0a ldfld 0xA001C76 | |
IL_0051 17 ldc.i4.1 | |
IL_0052 58 add | |
IL_0053 7d 76 1c 00 0a stfld 0xA001C76 | |
IL_0058 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Enqueue(int):this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:Enqueue(int):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:Enqueue(int):this | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 12 : state 51 [ bne.un.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 65 : state 141 [ stelem ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 17 : state 110 [ ldflda ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
10 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate has arg that feeds range check. Multiplier increased to 2. | |
Inline candidate has 3 binary expressions with constants. Multiplier increased to 3.5. | |
Inline candidate callsite is in a loop. Multiplier increased to 6.5. | |
Caller has 67 locals. Multiplier decreased to 6.07471. | |
calleeNativeSizeEstimate=673 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=6.07471 | |
threshold=698 | |
Native estimate for function size is within threshold for inlining 67.3 <= 69.8 (multiplier = 6.07471) | |
Jump targets: | |
IL_001e | |
New Basic Block BB01 [0058] created. | |
BB01 [0058] [000..010) | |
New Basic Block BB02 [0059] created. | |
BB02 [0059] [010..01E) | |
New Basic Block BB03 [0060] created. | |
BB03 [0060] [01E..059) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0058] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0059] 1 BB01 100 [010..01E)-> BB03(1) (always) | |
BB03 [0060] 2 BB01,BB02 100 [01E..059) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000171] Starting PHASE Pre-import | |
*************** Inline @[000171] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0058] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0059] 1 BB01 100 [010..01E)-> BB03(1) (always) | |
BB03 [0060] 2 BB01,BB02 100 [01E..059) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0058] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0059] [010..01E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0060] [01E..059) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000171] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c46058e0, data at 0x7f07c4605910) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
... not solving because of the zero counts | |
... discarding profile count data: PGO data available, profile data was all zero | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 100 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000171] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0058] 1 2 2 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) IBC | |
BB02 [0059] 1 BB01 1 1 [010..01E)-> BB03(1) (always) IBC | |
BB03 [0060] 2 BB01,BB02 2 2 [01E..059) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0058] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0059] [010..01E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0060] [01E..059) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000171] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C73 | |
[ 1] 6 (0x006) ldarg.0 | |
[ 2] 7 (0x007) ldfld 0A001C72 | |
[ 2] 12 (0x00c) ldlen | |
[ 2] 13 (0x00d) conv.i4 | |
[ 2] 14 (0x00e) bne.un.s | |
STMT00127 ( 0x000[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000448] ---XG------ * JTRUE void | |
[000447] N--XG----U- \--* NE int | |
[000442] n--XG------ +--* IND int | |
[000441] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000169] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000446] ---XG------ \--* ARR_LENGTH int | |
[000445] n--XG------ \--* IND ref | |
[000444] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000443] ----------- \--* LCL_VAR ref V07 loc3 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=030) of 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
[ 0] 30 (0x01e) ldarg.0 | |
[ 1] 31 (0x01f) ldfld 0A001C72 | |
[ 1] 36 (0x024) ldarg.0 | |
[ 2] 37 (0x025) ldfld 0A001C74 | |
[ 2] 42 (0x02a) ldarg.1 | |
[ 3] 43 (0x02b) stelem 1B000031 | |
STMT00128 ( 0x01E[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000456] nA-XG------ * STOREIND int | |
[000455] ---XG------ +--* INDEX_ADDR byref int[] | |
[000451] n--XG------ | +--* IND ref | |
[000450] ---X------- | | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000449] ----------- | | \--* LCL_VAR ref V07 loc3 | |
[000454] n--XG------ | \--* IND int | |
[000453] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000452] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000170] ----------- \--* LCL_VAR int V11 loc7 | |
[ 0] 48 (0x030) ldarg.0 | |
[ 1] 49 (0x031) ldarg.0 | |
[ 2] 50 (0x032) ldflda 0A001C74 | |
[ 2] 55 (0x037) call 0A001C78 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate MoveNext -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' calling 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00129 ( 0x030[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000460] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:MoveNext(byref):this (exactContextHnd=0x0x7f487dd15f41) | |
[000457] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000459] ---X------- arg1 \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
[ 0] 60 (0x03c) ldarg.0 | |
[ 1] 61 (0x03d) ldarg.0 | |
[ 2] 62 (0x03e) ldfld 0A001C73 | |
[ 2] 67 (0x043) ldc.i4.1 1 | |
[ 3] 68 (0x044) add | |
[ 2] 69 (0x045) stfld 0A001C73 | |
STMT00130 ( 0x03C[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000468] nA-XG------ * STOREIND int | |
[000467] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000461] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000466] ---XG------ \--* ADD int | |
[000464] n--XG------ +--* IND int | |
[000463] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000462] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000465] ----------- \--* CNS_INT int 1 | |
[ 0] 74 (0x04a) ldarg.0 | |
[ 1] 75 (0x04b) ldarg.0 | |
[ 2] 76 (0x04c) ldfld 0A001C76 | |
[ 2] 81 (0x051) ldc.i4.1 1 | |
[ 3] 82 (0x052) add | |
[ 2] 83 (0x053) stfld 0A001C76 | |
STMT00131 ( 0x04A[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000476] nA-XG------ * STOREIND int | |
[000475] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000469] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000474] ---XG------ \--* ADD int | |
[000472] n--XG------ +--* IND int | |
[000471] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000470] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000473] ----------- \--* CNS_INT int 1 | |
[ 0] 88 (0x058) ret | |
Importing BB02 (PC=016) of 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
[ 0] 16 (0x010) ldarg.0 | |
[ 1] 17 (0x011) ldarg.0 | |
[ 2] 18 (0x012) ldfld 0A001C73 | |
[ 2] 23 (0x017) ldc.i4.1 1 | |
[ 3] 24 (0x018) add | |
[ 2] 25 (0x019) call 0A001C77 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate Grow -- context 0x7f487dd15f41 | |
Class context: System.Collections.Generic.Queue`1[int] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' calling 'System.Collections.Generic.Queue`1[int]:Grow(int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00132 ( 0x010[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000483] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:Grow(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000477] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000482] ---XG------ arg1 \--* ADD int | |
[000480] n--XG------ +--* IND int | |
[000479] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000478] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000481] ----------- \--* CNS_INT int 1 | |
impImportBlockPending for BB03 | |
*************** Inline @[000171] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0058] 1 2 2 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) i IBC idxlen | |
BB02 [0059] 1 BB01 1 1 [010..01E)-> BB03(1) (always) i IBC | |
BB03 [0060] 2 BB01,BB02 2 2 [01E..059) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0058] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0058] | |
STMT00127 ( 0x000[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000448] ---XG------ * JTRUE void | |
[000447] N--XG----U- \--* NE int | |
[000442] n--XG------ +--* IND int | |
[000441] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000169] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000446] ---XG------ \--* ARR_LENGTH int | |
[000445] n--XG------ \--* IND ref | |
[000444] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000443] ----------- \--* LCL_VAR ref V07 loc3 | |
------------ BB02 [0059] [010..01E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0059] | |
STMT00132 ( 0x010[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000483] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:Grow(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000477] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000482] ---XG------ arg1 \--* ADD int | |
[000480] n--XG------ +--* IND int | |
[000479] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000478] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000481] ----------- \--* CNS_INT int 1 | |
------------ BB03 [0060] [01E..059) (return), preds={BB01,BB02} succs={} | |
***** BB03 [0060] | |
STMT00128 ( 0x01E[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000456] nA-XG------ * STOREIND int | |
[000455] ---XG------ +--* INDEX_ADDR byref int[] | |
[000451] n--XG------ | +--* IND ref | |
[000450] ---X------- | | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000449] ----------- | | \--* LCL_VAR ref V07 loc3 | |
[000454] n--XG------ | \--* IND int | |
[000453] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000452] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000170] ----------- \--* LCL_VAR int V11 loc7 | |
***** BB03 [0060] | |
STMT00129 ( 0x030[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000460] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:MoveNext(byref):this (exactContextHnd=0x0x7f487dd15f41) | |
[000457] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000459] ---X------- arg1 \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
***** BB03 [0060] | |
STMT00130 ( 0x03C[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000468] nA-XG------ * STOREIND int | |
[000467] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000461] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000466] ---XG------ \--* ADD int | |
[000464] n--XG------ +--* IND int | |
[000463] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000462] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000465] ----------- \--* CNS_INT int 1 | |
***** BB03 [0060] | |
STMT00131 ( 0x04A[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000476] nA-XG------ * STOREIND int | |
[000475] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000469] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000474] ---XG------ \--* ADD int | |
[000472] n--XG------ +--* IND int | |
[000471] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000470] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000473] ----------- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000171] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000171] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000171] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000171] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000171] Starting PHASE Post-import | |
*************** Inline @[000171] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000171] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB50 [0061] created. | |
BB19 previous predecessor was BB46, now is BB50 | |
setting likelihood of BB50 -> BB19 from 1 to 1 | |
setting likelihood of BB46 -> BB50 to 1 | |
Convert bbKind of BB53 to BBJ_ALWAYS to bottomBlock BB50 | |
setting likelihood of BB53 -> BB50 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB51 [0058] 1 BB46 2 2 [066..067)-> BB53(0.5),BB52(0.5) ( cond ) i IBC idxlen bwd | |
BB52 [0059] 1 BB51 1 1 [066..067)-> BB53(1) (always) i IBC bwd | |
BB53 [0060] 2 BB51,BB52 2 2 [066..067)-> BB50(1) (always) i IBC bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB51 [0058] [066..067) -> BB53(0.5),BB52(0.5) (cond), preds={BB46} succs={BB52,BB53} | |
***** BB51 [0058] | |
STMT00127 ( INL11 @ 0x000[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000448] ---XG------ * JTRUE void | |
[000447] N--XG----U- \--* NE int | |
[000442] n--XG------ +--* IND int | |
[000441] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000169] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000446] ---XG------ \--* ARR_LENGTH int | |
[000445] n--XG------ \--* IND ref | |
[000444] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000443] ----------- \--* LCL_VAR ref V07 loc3 | |
------------ BB52 [0059] [066..067) -> BB53(1) (always), preds={BB51} succs={BB53} | |
***** BB52 [0059] | |
STMT00132 ( INL11 @ 0x010[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000483] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:Grow(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000477] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000482] ---XG------ arg1 \--* ADD int | |
[000480] n--XG------ +--* IND int | |
[000479] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000478] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000481] ----------- \--* CNS_INT int 1 | |
------------ BB53 [0060] [066..067) -> BB50(1) (always), preds={BB51,BB52} succs={BB50} | |
***** BB53 [0060] | |
STMT00128 ( INL11 @ 0x01E[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000456] nA-XG------ * STOREIND int | |
[000455] ---XG------ +--* INDEX_ADDR byref int[] | |
[000451] n--XG------ | +--* IND ref | |
[000450] ---X------- | | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000449] ----------- | | \--* LCL_VAR ref V07 loc3 | |
[000454] n--XG------ | \--* IND int | |
[000453] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000452] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000170] ----------- \--* LCL_VAR int V11 loc7 | |
***** BB53 [0060] | |
STMT00129 ( INL11 @ 0x030[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000460] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:MoveNext(byref):this (exactContextHnd=0x0x7f487dd15f41) | |
[000457] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000459] ---X------- arg1 \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
***** BB53 [0060] | |
STMT00130 ( INL11 @ 0x03C[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000468] nA-XG------ * STOREIND int | |
[000467] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000461] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000466] ---XG------ \--* ADD int | |
[000464] n--XG------ +--* IND int | |
[000463] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000462] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000465] ----------- \--* CNS_INT int 1 | |
***** BB53 [0060] | |
STMT00131 ( INL11 @ 0x04A[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000476] nA-XG------ * STOREIND int | |
[000475] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000469] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000474] ---XG------ \--* ADD int | |
[000472] n--XG------ +--* IND int | |
[000471] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_version | |
[000470] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000473] ----------- \--* CNS_INT int 1 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.Queue`1[int]:Enqueue(int):this (89 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00132 in BB52: | |
STMT00132 ( INL11 @ 0x010[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000483] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:Grow(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000477] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000482] ---XG------ arg1 \--* ADD int | |
[000480] n--XG------ +--* IND int | |
[000479] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000478] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000481] ----------- \--* CNS_INT int 1 | |
thisArg: is a local var | |
[000477] ----------- * LCL_VAR ref V07 loc3 | |
Argument #1: has global refs has side effects | |
[000482] ---XG------ * ADD int | |
[000480] n--XG------ +--* IND int | |
[000479] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_size | |
[000478] ----------- | \--* LCL_VAR ref V07 loc3 | |
[000481] ----------- \--* CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Grow(int):this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:Grow(int):this : | |
IL to import: | |
IL_0000 18 ldc.i4.2 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_0007 8e ldlen | |
IL_0008 69 conv.i4 | |
IL_0009 5a mul | |
IL_000a 0a stloc.0 | |
IL_000b 06 ldloc.0 | |
IL_000c 6e conv.u8 | |
IL_000d 20 c7 ff ff 7f ldc.i4 0x7FFFFFC7 | |
IL_0012 6a conv.i8 | |
IL_0013 31 06 ble.s 6 (IL_001b) | |
IL_0015 20 c7 ff ff 7f ldc.i4 0x7FFFFFC7 | |
IL_001a 0a stloc.0 | |
IL_001b 06 ldloc.0 | |
IL_001c 02 ldarg.0 | |
IL_001d 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_0022 8e ldlen | |
IL_0023 69 conv.i4 | |
IL_0024 1a ldc.i4.4 | |
IL_0025 58 add | |
IL_0026 28 4d 05 00 06 call 0x600054D | |
IL_002b 0a stloc.0 | |
IL_002c 06 ldloc.0 | |
IL_002d 03 ldarg.1 | |
IL_002e 2f 02 bge.s 2 (IL_0032) | |
IL_0030 03 ldarg.1 | |
IL_0031 0a stloc.0 | |
IL_0032 02 ldarg.0 | |
IL_0033 06 ldloc.0 | |
IL_0034 28 7d 1c 00 0a call 0xA001C7D | |
IL_0039 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Grow(int):this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:Grow(int):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:Grow(int):this | |
weight= 34 : state 25 [ ldc.i4.2 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= -9 : state 78 [ mul ] | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 55 : state 98 [ conv.u8 ] | |
weight= 38 : state 33 [ ldc.i4 ] | |
weight= 99 : state 94 [ conv.i8 ] | |
weight= 53 : state 49 [ ble.s ] | |
weight= 38 : state 33 [ ldc.i4 ] | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 20 : state 27 [ ldc.i4.4 ] | |
weight=-12 : state 76 [ add ] | |
weight= 79 : state 40 [ call ] | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 20 : state 47 [ bge.s ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 6 : state 11 [ stloc.0 ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 19 : state 42 [ ret ] | |
2 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate looks like a wrapper method. Multiplier increased to 2. | |
Inline candidate has 1 binary expressions with constants. Multiplier increased to 2.5. | |
Inline candidate callsite is in a loop. Multiplier increased to 5.5. | |
Caller has 67 locals. Multiplier decreased to 5.14014. | |
calleeNativeSizeEstimate=713 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=5.14014 | |
threshold=591 | |
Native estimate for function size exceeds threshold for inlining 71.3 > 59.1 (multiplier = 5.14014) | |
Inline expansion aborted, inline not profitable | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Grow(int):this' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00129 in BB53: | |
STMT00129 ( INL11 @ 0x030[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000460] I-CXG------ * CALL void System.Collections.Generic.Queue`1[int]:MoveNext(byref):this (exactContextHnd=0x0x7f487dd15f41) | |
[000457] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000459] ---X------- arg1 \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
thisArg: is a local var | |
[000457] ----------- * LCL_VAR ref V07 loc3 | |
Argument #1: has side effects | |
[000459] ---X------- * FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:MoveNext(byref):this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:MoveNext(byref):this : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 4a ldind.i4 | |
IL_0002 17 ldc.i4.1 | |
IL_0003 58 add | |
IL_0004 0a stloc.0 | |
IL_0005 06 ldloc.0 | |
IL_0006 02 ldarg.0 | |
IL_0007 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_000c 8e ldlen | |
IL_000d 69 conv.i4 | |
IL_000e 33 02 bne.un.s 2 (IL_0012) | |
IL_0010 16 ldc.i4.0 | |
IL_0011 0a stloc.0 | |
IL_0012 03 ldarg.1 | |
IL_0013 06 ldloc.0 | |
IL_0014 54 stind.i4 | |
IL_0015 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:MoveNext(byref):this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:MoveNext(byref):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:MoveNext(byref):this | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight=-11 : state 62 [ ldind.i4 ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 12 : state 51 [ bne.un.s ] | |
weight= 15 : state 23 [ ldc.i4.0 ] | |
weight= 6 : state 11 [ stloc.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 11 : state 72 [ stind.i4 ] | |
weight= 19 : state 42 [ ret ] | |
1 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate has 1 binary expressions with constants. Multiplier increased to 1.5. | |
Inline candidate callsite is in a loop. Multiplier increased to 4.5. | |
Caller has 67 locals. Multiplier decreased to 4.20557. | |
calleeNativeSizeEstimate=172 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=4.20557 | |
threshold=483 | |
Native estimate for function size is within threshold for inlining 17.2 <= 48.3 (multiplier = 4.20557) | |
Jump targets: | |
IL_0012 | |
New Basic Block BB01 [0062] created. | |
BB01 [0062] [000..010) | |
New Basic Block BB02 [0063] created. | |
BB02 [0063] [010..012) | |
New Basic Block BB03 [0064] created. | |
BB03 [0064] [012..016) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0062] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0063] 1 BB01 100 [010..012)-> BB03(1) (always) | |
BB03 [0064] 2 BB01,BB02 100 [012..016) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000460] Starting PHASE Pre-import | |
*************** Inline @[000460] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0062] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0063] 1 BB01 100 [010..012)-> BB03(1) (always) | |
BB03 [0064] 2 BB01,BB02 100 [012..016) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0062] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0063] [010..012) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0064] [012..016) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000460] Starting PHASE Profile incorporation | |
Have Static PGO: 2 schema records (schema at 0x7f07c454e068, data at 0x7f07c454e060) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 4 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 4 | |
BB03: all outgoing edge weights known, sum is 4 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 4 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB03 has weight 0 | |
BB02: all outgoing edge weights known, sum is 0 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 0 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 4 | |
BB01: all incoming edge weights known, sum is 4 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/4 | |
Setting likelihood of BB01 -> BB03 to 1 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 1 | |
Setting likelihood of BB01 -> BB02 to 0 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0 | |
BB02 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB02 -> BB03 to 1 (heur) | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 4 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 4 scale 0.5 | |
Scaling inlinee blocks | |
*************** Inline @[000460] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0062] 1 2 2 [000..010)-> BB03(1),BB02(0) ( cond ) IBC | |
BB02 [0063] 1 BB01 0 0 [010..012)-> BB03(1) (always) IBC rare | |
BB03 [0064] 2 BB01,BB02 2 2 [012..016) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0062] [000..010) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0063] [010..012) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0064] [012..016) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000460] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
[ 0] 0 (0x000) ldarg.1 | |
lvaGrabTemp returning 47 (V47 tmp25) called for Inlining Arg. | |
Marked V47 as a single def temp | |
[ 1] 1 (0x001) ldind.i4 | |
[ 1] 2 (0x002) ldc.i4.1 1 | |
[ 2] 3 (0x003) add | |
[ 1] 4 (0x004) stloc.0 | |
lvaGrabTemp returning 48 (V48 tmp26) (a long lifetime temp) called for Inline stloc first use temp. | |
STMT00133 ( 0x000[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000489] DA-XG------ * STORE_LCL_VAR int V48 tmp26 | |
[000488] ---XG------ \--* ADD int | |
[000486] ---XG------ +--* IND int | |
[000485] ----------- | \--* LCL_VAR byref V47 tmp25 | |
[000487] ----------- \--* CNS_INT int 1 | |
[ 0] 5 (0x005) ldloc.0 | |
[ 1] 6 (0x006) ldarg.0 | |
[ 2] 7 (0x007) ldfld 0A001C72 | |
[ 2] 12 (0x00c) ldlen | |
[ 2] 13 (0x00d) conv.i4 | |
[ 2] 14 (0x00e) bne.un.s | |
STMT00134 ( 0x005[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000495] ---XG------ * JTRUE void | |
[000494] N--XG----U- \--* NE int | |
[000490] ----------- +--* LCL_VAR int V48 tmp26 | |
[000493] ---XG------ \--* ARR_LENGTH int | |
[000492] n--XG------ \--* IND ref | |
[000491] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000457] ----------- \--* LCL_VAR ref V07 loc3 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=018) of 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
[ 0] 18 (0x012) ldarg.1 | |
[ 1] 19 (0x013) ldloc.0 | |
[ 2] 20 (0x014) stind.i4 | |
STMT00135 ( 0x012[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000498] -A-XG------ * STOREIND int | |
[000496] ----------- +--* LCL_VAR byref V47 tmp25 | |
[000497] ----------- \--* LCL_VAR int V48 tmp26 | |
[ 0] 21 (0x015) ret | |
Importing BB02 (PC=016) of 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
[ 0] 16 (0x010) ldc.i4.0 0 | |
[ 1] 17 (0x011) stloc.0 | |
STMT00136 ( 0x010[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000500] DA--------- * STORE_LCL_VAR int V48 tmp26 | |
[000499] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB03 | |
*************** Inline @[000460] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0062] 1 2 2 [000..010)-> BB03(1),BB02(0) ( cond ) i IBC idxlen | |
BB02 [0063] 1 BB01 0 0 [010..012)-> BB03(1) (always) i IBC rare | |
BB03 [0064] 2 BB01,BB02 2 2 [012..016) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0062] [000..010) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0062] | |
STMT00133 ( 0x000[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000489] DA-XG------ * STORE_LCL_VAR int V48 tmp26 | |
[000488] ---XG------ \--* ADD int | |
[000486] ---XG------ +--* IND int | |
[000485] ----------- | \--* LCL_VAR byref V47 tmp25 | |
[000487] ----------- \--* CNS_INT int 1 | |
***** BB01 [0062] | |
STMT00134 ( 0x005[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000495] ---XG------ * JTRUE void | |
[000494] N--XG----U- \--* NE int | |
[000490] ----------- +--* LCL_VAR int V48 tmp26 | |
[000493] ---XG------ \--* ARR_LENGTH int | |
[000492] n--XG------ \--* IND ref | |
[000491] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000457] ----------- \--* LCL_VAR ref V07 loc3 | |
------------ BB02 [0063] [010..012) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0063] | |
STMT00136 ( 0x010[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000500] DA--------- * STORE_LCL_VAR int V48 tmp26 | |
[000499] ----------- \--* CNS_INT int 0 | |
------------ BB03 [0064] [012..016) (return), preds={BB01,BB02} succs={} | |
***** BB03 [0064] | |
STMT00135 ( 0x012[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000498] -A-XG------ * STOREIND int | |
[000496] ----------- +--* LCL_VAR byref V47 tmp25 | |
[000497] ----------- \--* LCL_VAR int V48 tmp26 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000460] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000460] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000460] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000460] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000460] Starting PHASE Post-import | |
*************** Inline @[000460] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000460] ----------- | |
Arguments setup: | |
STMT00137 ( INL11 @ 0x030[E-] ... ??? ) <- INLRT @ 0x066[E-] | |
[000501] DA-X------- * STORE_LCL_VAR byref V47 tmp25 | |
[000459] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_tail | |
[000458] ----------- \--* LCL_VAR ref V07 loc3 | |
Inlinee method body:New Basic Block BB54 [0065] created. | |
BB50 previous predecessor was BB53, now is BB54 | |
setting likelihood of BB54 -> BB50 from 1 to 1 | |
setting likelihood of BB53 -> BB54 to 1 | |
Convert bbKind of BB57 to BBJ_ALWAYS to bottomBlock BB54 | |
setting likelihood of BB57 -> BB54 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB55 [0062] 1 BB53 2 2 [066..067)-> BB57(1),BB56(0) ( cond ) i IBC idxlen bwd | |
BB56 [0063] 1 BB55 0 0 [066..067)-> BB57(1) (always) i IBC rare bwd | |
BB57 [0064] 2 BB55,BB56 2 2 [066..067)-> BB54(1) (always) i IBC bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB55 [0062] [066..067) -> BB57(1),BB56(0) (cond), preds={BB53} succs={BB56,BB57} | |
***** BB55 [0062] | |
STMT00133 ( INL12 @ 0x000[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000489] DA-XG------ * STORE_LCL_VAR int V48 tmp26 | |
[000488] ---XG------ \--* ADD int | |
[000486] ---XG------ +--* IND int | |
[000485] ----------- | \--* LCL_VAR byref V47 tmp25 | |
[000487] ----------- \--* CNS_INT int 1 | |
***** BB55 [0062] | |
STMT00134 ( INL12 @ 0x005[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000495] ---XG------ * JTRUE void | |
[000494] N--XG----U- \--* NE int | |
[000490] ----------- +--* LCL_VAR int V48 tmp26 | |
[000493] ---XG------ \--* ARR_LENGTH int | |
[000492] n--XG------ \--* IND ref | |
[000491] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.Queue`1[int]:_array | |
[000457] ----------- \--* LCL_VAR ref V07 loc3 | |
------------ BB56 [0063] [066..067) -> BB57(1) (always), preds={BB55} succs={BB57} | |
***** BB56 [0063] | |
STMT00136 ( INL12 @ 0x010[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000500] DA--------- * STORE_LCL_VAR int V48 tmp26 | |
[000499] ----------- \--* CNS_INT int 0 | |
------------ BB57 [0064] [066..067) -> BB54(1) (always), preds={BB55,BB56} succs={BB54} | |
***** BB57 [0064] | |
STMT00135 ( INL12 @ 0x012[E-] ... ??? ) <- INL11 @ 0x030[E-] <- INLRT @ 0x066[E-] | |
[000498] -A-XG------ * STOREIND int | |
[000496] ----------- +--* LCL_VAR byref V47 tmp25 | |
[000497] ----------- \--* LCL_VAR int V48 tmp26 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.Queue`1[int]:MoveNext(byref):this (22 IL bytes) (depth 2) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:MoveNext(byref):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00028 in BB06: | |
STMT00028 ( 0x073[E-] ... 0x085 ) | |
[000084] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000083] ----------- this \--* LCL_VAR ref V04 loc0 | |
thisArg: is a local var | |
[000083] ----------- * LCL_VAR ref V04 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
Jump targets: | |
none | |
New Basic Block BB01 [0066] created. | |
BB01 [0066] [000..007) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0066] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000084] Starting PHASE Pre-import | |
*************** Inline @[000084] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0066] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0066] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000084] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000084] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0066] 1 0 [000..007) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0066] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000084] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C4E | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000504] n--XG------ * IND int | |
[000503] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- \--* LCL_VAR ref V04 loc0 | |
Inlinee Return expression (after normalization) => | |
[000504] n--XG------ * IND int | |
[000503] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- \--* LCL_VAR ref V04 loc0 | |
** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL | |
*************** Inline @[000084] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0066] 1 0 [000..007) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0066] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000084] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000084] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000084] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000084] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000084] Starting PHASE Post-import | |
*************** Inline @[000084] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000084] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000085] with [000504] | |
[000085] --C-------- * RET_EXPR int (for [000084]) -> [000504] | |
Inserting the inline return expression | |
[000504] n--XG------ * IND int | |
[000503] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- \--* LCL_VAR ref V04 loc0 | |
Expanding INLINE_CANDIDATE in statement STMT00029 in BB06: | |
STMT00029 ( 0x073[E-] ... ??? ) | |
[000087] I-C-G------ * CALL int System.Math:Max(int,int):int (exactContextHnd=0x0x7f4875f5cb69) | |
[000504] n--XG------ arg0 +--* IND int | |
[000503] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000086] ----------- arg1 \--* LCL_VAR int V14 loc10 | |
Argument #0: has global refs has side effects | |
[000504] n--XG------ * IND int | |
[000503] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- \--* LCL_VAR ref V04 loc0 | |
Argument #1: is a local var | |
[000086] ----------- * LCL_VAR int V14 loc10 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Math:Max(int,int):int set to 0x0x7f4875f5cb69: | |
Invoking compiler for the inlinee method System.Math:Max(int,int):int : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 2f 02 bge.s 2 (IL_0006) | |
IL_0004 03 ldarg.1 | |
IL_0005 2a ret | |
IL_0006 02 ldarg.0 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for System.Math:Max(int,int):int is 0x0x7f4875f5cb69. | |
*************** In compInitDebuggingInfo() for System.Math:Max(int,int):int | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Math:Max(int,int):int | |
Jump targets: | |
IL_0006 | |
New Basic Block BB01 [0067] created. | |
BB01 [0067] [000..004) | |
New Basic Block BB02 [0068] created. | |
BB02 [0068] [004..006) | |
New Basic Block BB03 [0069] created. | |
BB03 [0069] [006..008) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
lvaGrabTemp returning 49 (V49 tmp27) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'System.Math:Max(int,int):int' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0067] 1 100 [000..004)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0068] 1 BB01 100 [004..006) (return) | |
BB03 [0069] 1 BB01 100 [006..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000087] Starting PHASE Pre-import | |
*************** Inline @[000087] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0067] 1 100 [000..004)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0068] 1 BB01 100 [004..006) (return) | |
BB03 [0069] 1 BB01 100 [006..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0067] [000..004) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0068] [004..006) (return), preds={BB01} succs={} | |
------------ BB03 [0069] [006..008) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000087] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c45443b0, data at 0x7f07c45443e0) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 2593 | |
... adding known edge BB03 -> BB01: weight 8440 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 8440 | |
BB03: all outgoing edge weights known, sum is 8440 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 8440 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 2593 | |
BB02: all outgoing edge weights known, sum is 2593 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 2593 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 8440 | |
BB02 -> BB01 has weight 2593 | |
BB01: all incoming edge weights known, sum is 11033 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/11033 | |
Setting likelihood of BB01 -> BB02 to 0.2350222 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.2350222 | |
Setting likelihood of BB01 -> BB03 to 0.7649778 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.7649778 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 11033 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 11033 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000087] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0067] 1 0 0 [000..004)-> BB03(0.765),BB02(0.235) ( cond ) IBC rare | |
BB02 [0068] 1 BB01 0 0 [004..006) (return) IBC rare | |
BB03 [0069] 1 BB01 0 0 [006..008) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0067] [000..004) -> BB03(0.7649778),BB02(0.2350222) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0068] [004..006) (return), preds={BB01} succs={} | |
------------ BB03 [0069] [006..008) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000087] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Math:Max(int,int):int' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 50 (V50 tmp28) called for Inlining Arg. | |
Marked V50 as a single def temp | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) bge.s | |
STMT00138 ( 0x000[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000508] ----------- * JTRUE void | |
[000507] ----------- \--* GE int | |
[000506] ----------- +--* LCL_VAR int V50 tmp28 | |
[000086] ----------- \--* LCL_VAR int V14 loc10 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=006) of 'System.Math:Max(int,int):int' | |
[ 0] 6 (0x006) ldarg.0 | |
[ 1] 7 (0x007) ret | |
Inlinee Return expression (before normalization) => | |
[000509] ----------- * LCL_VAR int V50 tmp28 | |
STMT00139 ( 0x006[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000510] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000509] ----------- \--* LCL_VAR int V50 tmp28 | |
Inlinee Return expression (after normalization) => | |
[000511] ----------- * LCL_VAR int V49 tmp27 | |
Importing BB02 (PC=004) of 'System.Math:Max(int,int):int' | |
[ 0] 4 (0x004) ldarg.1 | |
[ 1] 5 (0x005) ret | |
Inlinee Return expression (before normalization) => | |
[000512] ----------- * LCL_VAR int V14 loc10 | |
STMT00140 ( 0x004[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000513] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000512] ----------- \--* LCL_VAR int V14 loc10 | |
Inlinee Return expression (after normalization) => | |
[000514] ----------- * LCL_VAR int V49 tmp27 | |
*************** Inline @[000087] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0067] 1 0 0 [000..004)-> BB03(0.765),BB02(0.235) ( cond ) i IBC rare | |
BB02 [0068] 1 BB01 0 0 [004..006) (return) i IBC rare | |
BB03 [0069] 1 BB01 0 0 [006..008) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0067] [000..004) -> BB03(0.7649778),BB02(0.2350222) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0067] | |
STMT00138 ( 0x000[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000508] ----------- * JTRUE void | |
[000507] ----------- \--* GE int | |
[000506] ----------- +--* LCL_VAR int V50 tmp28 | |
[000086] ----------- \--* LCL_VAR int V14 loc10 | |
------------ BB02 [0068] [004..006) (return), preds={BB01} succs={} | |
***** BB02 [0068] | |
STMT00140 ( 0x004[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000513] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000512] ----------- \--* LCL_VAR int V14 loc10 | |
------------ BB03 [0069] [006..008) (return), preds={BB01} succs={} | |
***** BB03 [0069] | |
STMT00139 ( 0x006[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000510] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000509] ----------- \--* LCL_VAR int V50 tmp28 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000087] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000087] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000087] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000087] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000087] Starting PHASE Post-import | |
*************** Inline @[000087] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000087] ----------- | |
Arguments setup: | |
STMT00141 ( 0x073[E-] ... ??? ) | |
[000515] DA-XG------ * STORE_LCL_VAR int V50 tmp28 | |
[000504] n--XG------ \--* IND int | |
[000503] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000083] ----------- \--* LCL_VAR ref V04 loc0 | |
Inlinee method body:New Basic Block BB58 [0070] created. | |
BB07 previous predecessor was BB06, now is BB58 | |
setting likelihood of BB58 -> BB07 from 1 to 1 | |
setting likelihood of BB06 -> BB58 to 1 | |
Convert bbKind of BB60 to BBJ_ALWAYS to bottomBlock BB58 | |
setting likelihood of BB60 -> BB58 to 1 | |
Convert bbKind of BB61 to BBJ_ALWAYS to bottomBlock BB58 | |
setting likelihood of BB61 -> BB58 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB59 [0067] 1 BB06 0 0 [073..074)-> BB61(0.765),BB60(0.235) ( cond ) i IBC rare bwd | |
BB60 [0068] 1 BB59 0 0 [073..074)-> BB58(1) (always) i IBC rare bwd | |
BB61 [0069] 1 BB59 0 0 [073..074)-> BB58(1) (always) i IBC rare bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB59 [0067] [073..074) -> BB61(0.7649778),BB60(0.2350222) (cond), preds={BB06} succs={BB60,BB61} | |
***** BB59 [0067] | |
STMT00138 ( INL14 @ 0x000[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000508] ----------- * JTRUE void | |
[000507] ----------- \--* GE int | |
[000506] ----------- +--* LCL_VAR int V50 tmp28 | |
[000086] ----------- \--* LCL_VAR int V14 loc10 | |
------------ BB60 [0068] [073..074) -> BB58(1) (always), preds={BB59} succs={BB58} | |
***** BB60 [0068] | |
STMT00140 ( INL14 @ 0x004[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000513] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000512] ----------- \--* LCL_VAR int V14 loc10 | |
------------ BB61 [0069] [073..074) -> BB58(1) (always), preds={BB59} succs={BB58} | |
***** BB61 [0069] | |
STMT00139 ( INL14 @ 0x006[E-] ... ??? ) <- INLRT @ 0x073[E-] | |
[000510] DA--------- * STORE_LCL_VAR int V49 tmp27 | |
[000509] ----------- \--* LCL_VAR int V50 tmp28 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Math:Max(int,int):int (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Math:Max(int,int):int' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Replacing the return expression placeholder [000088] with [000514] | |
[000088] --C-------- * RET_EXPR int (for [000087]) -> [000514] | |
Inserting the inline return expression | |
[000514] ----------- * LCL_VAR int V49 tmp27 | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' | |
Expanding INLINE_CANDIDATE in statement STMT00038 in BB08: | |
STMT00038 ( 0x09B[E-] ... 0x0A5 ) | |
[000121] I-C-G------ * CALL nullcheck int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this (exactContextHnd=0x0x7f487806e339) | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000120] ----------- arg2 \--* LCL_ADDR byref V18 loc14 [+0] | |
thisArg: is a local var | |
[000118] ----------- * LCL_VAR ref V05 loc1 | |
Argument #1: is a local var | |
[000119] ----------- * LCL_VAR ref V17 loc13 | |
Argument #2: is a constant or invariant | |
[000120] ----------- * LCL_ADDR byref V18 loc14 [+0] | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this set to 0x0x7f487806e339: | |
Invoking compiler for the inlinee method System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 28 e1 1b 00 0a call 0xA001BE1 | |
IL_0007 0a stloc.0 | |
IL_0008 06 ldloc.0 | |
IL_0009 28 88 0e 00 2b call 0x2B000E88 | |
IL_000e 2d 0e brtrue.s 14 (IL_001e) | |
IL_0010 04 ldarg.2 | |
IL_0011 06 ldloc.0 | |
IL_0012 71 c1 02 00 1b ldobj 0x1B0002C1 | |
IL_0017 81 c1 02 00 1b stobj 0x1B0002C1 | |
IL_001c 17 ldc.i4.1 | |
IL_001d 2a ret | |
IL_001e 04 ldarg.2 | |
IL_001f fe 15 c1 02 00 1b initobj 0x1B0002C1 | |
IL_0025 16 ldc.i4.0 | |
IL_0026 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this is 0x0x7f487806e339. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 79 : state 40 [ call ] | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.IsNullRef: Recognized | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 35 : state 5 [ ldarg.2 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 29 : state 101 [ ldobj ] | |
weight= 36 : state 115 [ stobj ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight= 19 : state 42 [ ret ] | |
weight= 35 : state 5 [ ldarg.2 ] | |
weight= 55 : state 180 [ initobj ] | |
weight= 15 : state 23 [ ldc.i4.0 ] | |
weight= 19 : state 42 [ ret ] | |
Inline has 1 intrinsics. Multiplier increased to 1.3. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 2.3. | |
Inline candidate callsite is in a loop. Multiplier increased to 5.3. | |
Caller has 67 locals. Multiplier decreased to 4.95322. | |
calleeNativeSizeEstimate=512 | |
callsiteNativeSizeEstimate=145 | |
benefit multiplier=4.95322 | |
threshold=718 | |
Native estimate for function size is within threshold for inlining 51.2 <= 71.8 (multiplier = 4.95322) | |
Jump targets: | |
IL_001e | |
New Basic Block BB01 [0071] created. | |
BB01 [0071] [000..010) | |
New Basic Block BB02 [0072] created. | |
BB02 [0072] [010..01E) | |
New Basic Block BB03 [0073] created. | |
BB03 [0073] [01E..027) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
lvaGrabTemp returning 51 (V51 tmp29) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0071] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0072] 1 BB01 100 [010..01E) (return) | |
BB03 [0073] 1 BB01 100 [01E..027) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000121] Starting PHASE Pre-import | |
*************** Inline @[000121] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0071] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0072] 1 BB01 100 [010..01E) (return) | |
BB03 [0073] 1 BB01 100 [01E..027) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0071] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0072] [010..01E) (return), preds={BB01} succs={} | |
------------ BB03 [0073] [01E..027) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000121] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c454e0e0, data at 0x7f07c454e110) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 4921 | |
... adding known edge BB03 -> BB01: weight 2080 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 2080 | |
BB03: all outgoing edge weights known, sum is 2080 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 2080 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 4921 | |
BB02: all outgoing edge weights known, sum is 4921 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 4921 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 2080 | |
BB02 -> BB01 has weight 4921 | |
BB01: all incoming edge weights known, sum is 7001 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/7001 | |
Setting likelihood of BB01 -> BB02 to 0.7028996 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.7028996 | |
Setting likelihood of BB01 -> BB03 to 0.2971004 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.2971004 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 7001 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 7001 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000121] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0071] 1 0 0 [000..010)-> BB03(0.297),BB02(0.703) ( cond ) IBC rare | |
BB02 [0072] 1 BB01 0 0 [010..01E) (return) IBC rare | |
BB03 [0073] 1 BB01 0 0 [01E..027) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0071] [000..010) -> BB03(0.2971004),BB02(0.7028996) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0072] [010..01E) (return), preds={BB01} succs={} | |
------------ BB03 [0073] [01E..027) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000121] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) call 0A001BE1 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[ 1] 7 (0x007) stloc.0 | |
lvaGrabTemp returning 52 (V52 tmp30) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V52 as a single def temp | |
STMT00142 ( 0x000[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000518] DAC-G------ * STORE_LCL_VAR byref V52 tmp30 | |
[000517] --C-G------ \--* CALL byref System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
[ 0] 8 (0x008) ldloc.0 | |
[ 1] 9 (0x009) call 2B000E88 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.IsNullRef: Recognized | |
[ 1] 14 (0x00e) brtrue.s | |
STMT00143 ( 0x008[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000522] ----------- * JTRUE void | |
[000521] ----------- \--* EQ int | |
[000519] ----------- +--* LCL_VAR byref V52 tmp30 | |
[000520] ----------- \--* CNS_INT byref 0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=030) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
[ 0] 30 (0x01e) ldarg.2 | |
[ 1] 31 (0x01f) initobj 1B0002C1 | |
STMT00144 ( 0x01E[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000525] nA--G------ * STOREIND int | |
[000523] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000524] ----------- \--* CNS_INT int 0 | |
[ 0] 37 (0x025) ldc.i4.0 0 | |
[ 1] 38 (0x026) ret | |
Inlinee Return expression (before normalization) => | |
[000526] ----------- * CNS_INT int 0 | |
STMT00145 ( 0x025[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000528] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000527] ----------- \--* CAST int <- ubyte <- int | |
[000526] ----------- \--* CNS_INT int 0 | |
Inlinee Return expression (after normalization) => | |
[000529] ----------- * LCL_VAR ubyte V51 tmp29 | |
Importing BB02 (PC=016) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
[ 0] 16 (0x010) ldarg.2 | |
[ 1] 17 (0x011) ldloc.0 | |
[ 2] 18 (0x012) ldobj 1B0002C1 | |
[ 2] 23 (0x017) stobj 1B0002C1 | |
STMT00146 ( 0x010[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000533] nA-XG------ * STOREIND int | |
[000530] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000532] ---XG------ \--* IND int | |
[000531] ----------- \--* LCL_VAR byref V52 tmp30 | |
[ 0] 28 (0x01c) ldc.i4.1 1 | |
[ 1] 29 (0x01d) ret | |
Inlinee Return expression (before normalization) => | |
[000534] ----------- * CNS_INT int 1 | |
STMT00147 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000536] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000535] ----------- \--* CAST int <- ubyte <- int | |
[000534] ----------- \--* CNS_INT int 1 | |
Inlinee Return expression (after normalization) => | |
[000537] ----------- * LCL_VAR ubyte V51 tmp29 | |
*************** Inline @[000121] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0071] 1 0 0 [000..010)-> BB03(0.297),BB02(0.703) ( cond ) i IBC rare | |
BB02 [0072] 1 BB01 0 0 [010..01E) (return) i IBC rare | |
BB03 [0073] 1 BB01 0 0 [01E..027) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0071] [000..010) -> BB03(0.2971004),BB02(0.7028996) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0071] | |
STMT00142 ( 0x000[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000518] DAC-G------ * STORE_LCL_VAR byref V52 tmp30 | |
[000517] --C-G------ \--* CALL byref System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
***** BB01 [0071] | |
STMT00143 ( 0x008[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000522] ----------- * JTRUE void | |
[000521] ----------- \--* EQ int | |
[000519] ----------- +--* LCL_VAR byref V52 tmp30 | |
[000520] ----------- \--* CNS_INT byref 0 | |
------------ BB02 [0072] [010..01E) (return), preds={BB01} succs={} | |
***** BB02 [0072] | |
STMT00146 ( 0x010[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000533] nA-XG------ * STOREIND int | |
[000530] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000532] ---XG------ \--* IND int | |
[000531] ----------- \--* LCL_VAR byref V52 tmp30 | |
***** BB02 [0072] | |
STMT00147 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000536] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000535] ----------- \--* CAST int <- ubyte <- int | |
[000534] ----------- \--* CNS_INT int 1 | |
------------ BB03 [0073] [01E..027) (return), preds={BB01} succs={} | |
***** BB03 [0073] | |
STMT00144 ( 0x01E[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000525] nA--G------ * STOREIND int | |
[000523] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000524] ----------- \--* CNS_INT int 0 | |
***** BB03 [0073] | |
STMT00145 ( 0x025[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000528] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000527] ----------- \--* CAST int <- ubyte <- int | |
[000526] ----------- \--* CNS_INT int 0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000121] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000121] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000121] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000121] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000121] Starting PHASE Post-import | |
*************** Inline @[000121] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000121] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB62 [0074] created. | |
BB09 previous predecessor was BB08, now is BB62 | |
BB10 previous predecessor was BB08, now is BB62 | |
setting likelihood of BB08 -> BB62 to 1 | |
Convert bbKind of BB64 to BBJ_ALWAYS to bottomBlock BB62 | |
setting likelihood of BB64 -> BB62 to 1 | |
Convert bbKind of BB65 to BBJ_ALWAYS to bottomBlock BB62 | |
setting likelihood of BB65 -> BB62 to 1 | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
STMT00149 ( 0x09B[E-] ... ??? ) | |
[000541] DA--------- * STORE_LCL_VAR byref V52 tmp30 | |
[000540] ----------- \--* CNS_INT byref 0 | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB63 [0071] 1 0 BB08 0 0 [09B..09C)-> BB65(0.297),BB64(0.703) ( cond ) T0 i IBC rare bwd | |
BB64 [0072] 1 0 BB63 0 0 [09B..09C)-> BB62(1) (always) T0 i IBC rare bwd | |
BB65 [0073] 1 0 BB63 0 0 [09B..09C)-> BB62(1) (always) T0 i IBC rare bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB63 [0071] [09B..09C) -> BB65(0.2971004),BB64(0.7028996) (cond), preds={BB08} succs={BB64,BB65} | |
***** BB63 [0071] | |
STMT00142 ( INL15 @ 0x000[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000518] DAC-G------ * STORE_LCL_VAR byref V52 tmp30 | |
[000517] --C-G------ \--* CALL byref System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this | |
[000118] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000119] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
***** BB63 [0071] | |
STMT00143 ( INL15 @ 0x008[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000522] ----------- * JTRUE void | |
[000521] ----------- \--* EQ int | |
[000519] ----------- +--* LCL_VAR byref V52 tmp30 | |
[000520] ----------- \--* CNS_INT byref 0 | |
------------ BB64 [0072] [09B..09C) -> BB62(1) (always), preds={BB63} succs={BB62} | |
***** BB64 [0072] | |
STMT00146 ( INL15 @ 0x010[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000533] nA-XG------ * STOREIND int | |
[000530] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000532] ---XG------ \--* IND int | |
[000531] ----------- \--* LCL_VAR byref V52 tmp30 | |
***** BB64 [0072] | |
STMT00147 ( INL15 @ 0x01C[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000536] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000535] ----------- \--* CAST int <- ubyte <- int | |
[000534] ----------- \--* CNS_INT int 1 | |
------------ BB65 [0073] [09B..09C) -> BB62(1) (always), preds={BB63} succs={BB62} | |
***** BB65 [0073] | |
STMT00144 ( INL15 @ 0x01E[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000525] nA--G------ * STOREIND int | |
[000523] ----------- +--* LCL_ADDR long V18 loc14 [+0] | |
[000524] ----------- \--* CNS_INT int 0 | |
***** BB65 [0073] | |
STMT00145 ( INL15 @ 0x025[E-] ... ??? ) <- INLRT @ 0x09B[E-] | |
[000528] DA--------- * STORE_LCL_VAR ubyte V51 tmp29 | |
[000527] ----------- \--* CAST int <- ubyte <- int | |
[000526] ----------- \--* CNS_INT int 0 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this (39 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryGetValue(System.__Canon,byref):ubyte:this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:FindValue(System.__Canon):byref:this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Replacing the return expression placeholder [000122] with [000537] | |
[000122] --C-------- * RET_EXPR int (for [000121]) -> [000537] | |
Inserting the inline return expression | |
[000537] ----------- * LCL_VAR ubyte V51 tmp29 | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00043 in BB09: | |
STMT00043 ( 0x0A7[E-] ... 0x0AD ) | |
[000142] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000141] ----------- this \--* LCL_VAR ref V04 loc0 | |
thisArg: is a local var | |
[000141] ----------- * LCL_VAR ref V04 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
Jump targets: | |
none | |
New Basic Block BB01 [0075] created. | |
BB01 [0075] [000..007) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0075] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000142] Starting PHASE Pre-import | |
*************** Inline @[000142] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0075] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0075] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000142] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000142] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0075] 1 0 [000..007) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0075] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000142] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C4E | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000544] n--XG------ * IND int | |
[000543] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000141] ----------- \--* LCL_VAR ref V04 loc0 | |
Inlinee Return expression (after normalization) => | |
[000544] n--XG------ * IND int | |
[000543] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000141] ----------- \--* LCL_VAR ref V04 loc0 | |
** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL | |
*************** Inline @[000142] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0075] 1 0 [000..007) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0075] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000142] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000142] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000142] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000142] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000142] Starting PHASE Post-import | |
*************** Inline @[000142] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000142] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000143] with [000544] | |
[000143] --C-------- * RET_EXPR int (for [000142]) -> [000544] | |
Inserting the inline return expression | |
[000544] n--XG------ * IND int | |
[000543] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000141] ----------- \--* LCL_VAR ref V04 loc0 | |
Expanding INLINE_CANDIDATE in statement STMT00045 in BB09: | |
STMT00045 ( 0x0AF[E-] ... 0x0BC ) | |
[000148] I-C-G------ * CALL nullcheck void System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this (exactContextHnd=0x0x7f487806e339) | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000147] ----------- arg2 \--* LCL_VAR int V18 loc14 | |
thisArg: is a local var | |
[000145] ----------- * LCL_VAR ref V05 loc1 | |
Argument #1: is a local var | |
[000146] ----------- * LCL_VAR ref V17 loc13 | |
Argument #2: is a local var has caller local ref | |
[000147] ----------- * LCL_VAR int V18 loc14 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this set to 0x0x7f487806e339: | |
Invoking compiler for the inlinee method System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 04 ldarg.2 | |
IL_0003 18 ldc.i4.2 | |
IL_0004 28 e2 1b 00 0a call 0xA001BE2 | |
IL_0009 0a stloc.0 | |
IL_000a 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this is 0x0x7f487806e339. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this | |
Jump targets: | |
none | |
New Basic Block BB01 [0076] created. | |
BB01 [0076] [000..00B) | |
Basic block list for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0076] 1 1 [000..00B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000148] Starting PHASE Pre-import | |
*************** Inline @[000148] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0076] 1 1 [000..00B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0076] [000..00B) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000148] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000148] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0076] 1 0 [000..00B) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0076] [000..00B) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000148] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) ldarg.2 | |
lvaGrabTemp returning 53 (V53 tmp31) called for Inlining Arg. | |
Marked V53 as a single def temp | |
[ 3] 3 (0x003) ldc.i4.2 2 | |
[ 4] 4 (0x004) call 0A001BE2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[ 1] 9 (0x009) stloc.0 | |
lvaGrabTemp returning 54 (V54 tmp32) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V54 as a single def temp | |
STMT00150 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0AF[E-] | |
[000549] DAC-G------ * STORE_LCL_VAR ubyte V54 tmp32 | |
[000548] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000546] ----------- arg2 +--* LCL_VAR int V53 tmp31 | |
[000547] ----------- arg3 \--* CNS_INT int 2 | |
[ 0] 10 (0x00a) ret | |
*************** Inline @[000148] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0076] 1 0 [000..00B) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0076] [000..00B) (return), preds={} succs={} | |
***** BB01 [0076] | |
STMT00150 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0AF[E-] | |
[000549] DAC-G------ * STORE_LCL_VAR ubyte V54 tmp32 | |
[000548] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000546] ----------- arg2 +--* LCL_VAR int V53 tmp31 | |
[000547] ----------- arg3 \--* CNS_INT int 2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000148] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000148] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000148] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000148] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000148] Starting PHASE Post-import | |
*************** Inline @[000148] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000148] ----------- | |
Arguments setup: | |
STMT00151 ( 0x0AF[E-] ... ??? ) | |
[000552] DA--------- * STORE_LCL_VAR int V53 tmp31 | |
[000147] ----------- \--* LCL_VAR int V18 loc14 | |
Inlinee method body: | |
STMT00150 ( INL17 @ 0x000[E-] ... ??? ) <- INLRT @ 0x0AF[E-] | |
[000549] DAC-G------ * STORE_LCL_VAR ubyte V54 tmp32 | |
[000548] --C-G------ \--* CALL int System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this | |
[000145] ----------- this +--* LCL_VAR ref V05 loc1 | |
[000146] ----------- arg1 +--* LCL_VAR ref V17 loc13 | |
[000546] ----------- arg2 +--* LCL_VAR int V53 tmp31 | |
[000547] ----------- arg3 \--* CNS_INT int 2 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this (11 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:Add(System.__Canon,int):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Expanding INLINE_CANDIDATE in statement STMT00046 in BB09: | |
STMT00046 ( 0x0B9[E-] ... ??? ) | |
[000151] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f4876028ee9) | |
[000149] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
thisArg: is a local var | |
[000149] ----------- * LCL_VAR ref V04 loc0 | |
Argument #1: is a local var | |
[000150] ----------- * LCL_VAR ref V17 loc13 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4f 1c 00 0a ldfld 0xA001C4F | |
IL_0007 17 ldc.i4.1 | |
IL_0008 58 add | |
IL_0009 7d 4f 1c 00 0a stfld 0xA001C4F | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 0a stloc.0 | |
IL_0015 02 ldarg.0 | |
IL_0016 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_001b 0b stloc.1 | |
IL_001c 07 ldloc.1 | |
IL_001d 06 ldloc.0 | |
IL_001e 8e ldlen | |
IL_001f 69 conv.i4 | |
IL_0020 34 12 bge.un.s 18 (IL_0034) | |
IL_0022 02 ldarg.0 | |
IL_0023 07 ldloc.1 | |
IL_0024 17 ldc.i4.1 | |
IL_0025 58 add | |
IL_0026 7d 4e 1c 00 0a stfld 0xA001C4E | |
IL_002b 06 ldloc.0 | |
IL_002c 07 ldloc.1 | |
IL_002d 03 ldarg.1 | |
IL_002e a4 31 00 00 1b stelem 0x1B000031 | |
IL_0033 2a ret | |
IL_0034 02 ldarg.0 | |
IL_0035 03 ldarg.1 | |
IL_0036 28 52 1c 00 0a call 0xA001C52 | |
IL_003b 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
Jump targets: | |
IL_0034 | |
New Basic Block BB01 [0077] created. | |
BB01 [0077] [000..022) | |
New Basic Block BB02 [0078] created. | |
BB02 [0078] [022..034) | |
New Basic Block BB03 [0079] created. | |
BB03 [0079] [034..03C) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0077] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0078] 1 BB01 100 [022..034) (return) | |
BB03 [0079] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000151] Starting PHASE Pre-import | |
*************** Inline @[000151] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0077] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0078] 1 BB01 100 [022..034) (return) | |
BB03 [0079] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0077] [000..022) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0078] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0079] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000151] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c454dd30, data at 0x7f07c454dd60) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 144032 | |
... adding known edge BB03 -> BB01: weight 83872 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB03: all outgoing edge weights known, sum is 83872 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 83872 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 144032 | |
BB02: all outgoing edge weights known, sum is 144032 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 144032 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB02 -> BB01 has weight 144032 | |
BB01: all incoming edge weights known, sum is 227904 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/227904 | |
Setting likelihood of BB01 -> BB02 to 0.6319854 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.6319854 | |
Setting likelihood of BB01 -> BB03 to 0.3680146 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.3680146 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 227904 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 227904 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000151] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0077] 1 0 0 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) IBC rare | |
BB02 [0078] 1 BB01 0 0 [022..034) (return) IBC rare | |
BB03 [0079] 1 BB01 0 0 [034..03C) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0077] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0078] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0079] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000151] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4F | |
[ 2] 7 (0x007) ldc.i4.1 1 | |
[ 3] 8 (0x008) add | |
[ 2] 9 (0x009) stfld 0A001C4F | |
STMT00153 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000560] nA-XG------ * STOREIND int | |
[000559] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000149] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000558] ---XG------ \--* ADD int | |
[000556] n--XG------ +--* IND int | |
[000555] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000554] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000557] ----------- \--* CNS_INT int 1 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) stloc.0 | |
lvaGrabTemp returning 55 (V55 tmp33) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V55 as a single def temp | |
lvaSetClass: setting class for V55 to (0x7f487709c3f0) System.__Canon[] | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
STMT00154 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000564] DA-XG------ * STORE_LCL_VAR ref V55 tmp33 | |
[000563] n--XG------ \--* IND ref | |
[000562] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000561] ----------- \--* LCL_VAR ref V04 loc0 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldfld 0A001C4E | |
[ 1] 27 (0x01b) stloc.1 | |
lvaGrabTemp returning 56 (V56 tmp34) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V56 as a single def temp | |
STMT00155 ( 0x015[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000568] DA-XG------ * STORE_LCL_VAR int V56 tmp34 | |
[000567] n--XG------ \--* IND int | |
[000566] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000565] ----------- \--* LCL_VAR ref V04 loc0 | |
[ 0] 28 (0x01c) ldloc.1 | |
[ 1] 29 (0x01d) ldloc.0 | |
[ 2] 30 (0x01e) ldlen | |
[ 2] 31 (0x01f) conv.i4 | |
[ 2] 32 (0x020) bge.un.s | |
STMT00156 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000573] ---X------- * JTRUE void | |
[000572] N--X-----U- \--* GE int | |
[000569] ----------- +--* LCL_VAR int V56 tmp34 | |
[000571] ---X------- \--* ARR_LENGTH int | |
[000570] ----------- \--* LCL_VAR ref V55 tmp33 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=052) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 52 (0x034) ldarg.0 | |
[ 1] 53 (0x035) ldarg.1 | |
[ 2] 54 (0x036) call 0A001C52 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
STMT00157 ( 0x034[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000575] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000574] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
[ 0] 59 (0x03b) ret | |
Importing BB02 (PC=034) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 34 (0x022) ldarg.0 | |
[ 1] 35 (0x023) ldloc.1 | |
[ 2] 36 (0x024) ldc.i4.1 1 | |
[ 3] 37 (0x025) add | |
[ 2] 38 (0x026) stfld 0A001C4E | |
STMT00158 ( 0x022[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000581] nA-XG------ * STOREIND int | |
[000580] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000576] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000579] ----------- \--* ADD int | |
[000577] ----------- +--* LCL_VAR int V56 tmp34 | |
[000578] ----------- \--* CNS_INT int 1 | |
[ 0] 43 (0x02b) ldloc.0 | |
[ 1] 44 (0x02c) ldloc.1 | |
[ 2] 45 (0x02d) ldarg.1 | |
[ 3] 46 (0x02e) stelem 1B000031 | |
STMT00159 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000586] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000582] ----------- arg0 +--* LCL_VAR ref V55 tmp33 | |
[000585] ----------- arg1 +--* CAST long <- int | |
[000583] ----------- | \--* LCL_VAR int V56 tmp34 | |
[000584] ----------- arg2 \--* LCL_VAR ref V17 loc13 | |
[ 0] 51 (0x033) ret | |
*************** Inline @[000151] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0077] 1 0 0 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) i IBC rare idxlen | |
BB02 [0078] 1 BB01 0 0 [022..034) (return) i IBC rare | |
BB03 [0079] 1 BB01 0 0 [034..03C) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0077] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0077] | |
STMT00153 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000560] nA-XG------ * STOREIND int | |
[000559] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000149] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000558] ---XG------ \--* ADD int | |
[000556] n--XG------ +--* IND int | |
[000555] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000554] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000557] ----------- \--* CNS_INT int 1 | |
***** BB01 [0077] | |
STMT00154 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000564] DA-XG------ * STORE_LCL_VAR ref V55 tmp33 | |
[000563] n--XG------ \--* IND ref | |
[000562] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000561] ----------- \--* LCL_VAR ref V04 loc0 | |
***** BB01 [0077] | |
STMT00155 ( 0x015[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000568] DA-XG------ * STORE_LCL_VAR int V56 tmp34 | |
[000567] n--XG------ \--* IND int | |
[000566] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000565] ----------- \--* LCL_VAR ref V04 loc0 | |
***** BB01 [0077] | |
STMT00156 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000573] ---X------- * JTRUE void | |
[000572] N--X-----U- \--* GE int | |
[000569] ----------- +--* LCL_VAR int V56 tmp34 | |
[000571] ---X------- \--* ARR_LENGTH int | |
[000570] ----------- \--* LCL_VAR ref V55 tmp33 | |
------------ BB02 [0078] [022..034) (return), preds={BB01} succs={} | |
***** BB02 [0078] | |
STMT00158 ( 0x022[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000581] nA-XG------ * STOREIND int | |
[000580] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000576] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000579] ----------- \--* ADD int | |
[000577] ----------- +--* LCL_VAR int V56 tmp34 | |
[000578] ----------- \--* CNS_INT int 1 | |
***** BB02 [0078] | |
STMT00159 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000586] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000582] ----------- arg0 +--* LCL_VAR ref V55 tmp33 | |
[000585] ----------- arg1 +--* CAST long <- int | |
[000583] ----------- | \--* LCL_VAR int V56 tmp34 | |
[000584] ----------- arg2 \--* LCL_VAR ref V17 loc13 | |
------------ BB03 [0079] [034..03C) (return), preds={BB01} succs={} | |
***** BB03 [0079] | |
STMT00157 ( 0x034[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000575] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000574] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000151] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000151] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000151] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000151] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000151] Starting PHASE Post-import | |
*************** Inline @[000151] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000151] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB66 [0080] created. | |
BB10 previous predecessor was BB09, now is BB66 | |
setting likelihood of BB66 -> BB10 from 1 to 1 | |
setting likelihood of BB09 -> BB66 to 1 | |
Convert bbKind of BB68 to BBJ_ALWAYS to bottomBlock BB66 | |
setting likelihood of BB68 -> BB66 to 1 | |
Convert bbKind of BB69 to BBJ_ALWAYS to bottomBlock BB66 | |
setting likelihood of BB69 -> BB66 to 1 | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
STMT00160 ( 0x0B9[E-] ... ??? ) | |
[000588] DA--------- * STORE_LCL_VAR ref V55 tmp33 | |
[000587] ----------- \--* CNS_INT ref null | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB67 [0077] 1 0 BB09 0 0 [0B9..0BA)-> BB69(0.368),BB68(0.632) ( cond ) T0 i IBC rare idxlen bwd | |
BB68 [0078] 1 0 BB67 0 0 [0B9..0BA)-> BB66(1) (always) T0 i IBC rare bwd | |
BB69 [0079] 1 0 BB67 0 0 [0B9..0BA)-> BB66(1) (always) T0 i IBC rare bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB67 [0077] [0B9..0BA) -> BB69(0.3680146),BB68(0.6319854) (cond), preds={BB09} succs={BB68,BB69} | |
***** BB67 [0077] | |
STMT00153 ( INL18 @ 0x000[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000560] nA-XG------ * STOREIND int | |
[000559] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000149] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000558] ---XG------ \--* ADD int | |
[000556] n--XG------ +--* IND int | |
[000555] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000554] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000557] ----------- \--* CNS_INT int 1 | |
***** BB67 [0077] | |
STMT00154 ( INL18 @ 0x00E[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000564] DA-XG------ * STORE_LCL_VAR ref V55 tmp33 | |
[000563] n--XG------ \--* IND ref | |
[000562] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000561] ----------- \--* LCL_VAR ref V04 loc0 | |
***** BB67 [0077] | |
STMT00155 ( INL18 @ 0x015[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000568] DA-XG------ * STORE_LCL_VAR int V56 tmp34 | |
[000567] n--XG------ \--* IND int | |
[000566] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000565] ----------- \--* LCL_VAR ref V04 loc0 | |
***** BB67 [0077] | |
STMT00156 ( INL18 @ 0x01C[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000573] ---X------- * JTRUE void | |
[000572] N--X-----U- \--* GE int | |
[000569] ----------- +--* LCL_VAR int V56 tmp34 | |
[000571] ---X------- \--* ARR_LENGTH int | |
[000570] ----------- \--* LCL_VAR ref V55 tmp33 | |
------------ BB68 [0078] [0B9..0BA) -> BB66(1) (always), preds={BB67} succs={BB66} | |
***** BB68 [0078] | |
STMT00158 ( INL18 @ 0x022[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000581] nA-XG------ * STOREIND int | |
[000580] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000576] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000579] ----------- \--* ADD int | |
[000577] ----------- +--* LCL_VAR int V56 tmp34 | |
[000578] ----------- \--* CNS_INT int 1 | |
***** BB68 [0078] | |
STMT00159 ( INL18 @ 0x02B[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000586] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000582] ----------- arg0 +--* LCL_VAR ref V55 tmp33 | |
[000585] ----------- arg1 +--* CAST long <- int | |
[000583] ----------- | \--* LCL_VAR int V56 tmp34 | |
[000584] ----------- arg2 \--* LCL_VAR ref V17 loc13 | |
------------ BB69 [0079] [0B9..0BA) -> BB66(1) (always), preds={BB67} succs={BB66} | |
***** BB69 [0079] | |
STMT00157 ( INL18 @ 0x034[E-] ... ??? ) <- INLRT @ 0x0B9[E-] | |
[000575] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000574] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000150] ----------- arg1 \--* LCL_VAR ref V17 loc13 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (60 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00042 in BB11: | |
STMT00042 ( 0x0C9[E-] ... 0x0CF ) | |
[000140] I-C-G------ * CALL void System.Array:Resize[ubyte](byref,int) (exactContextHnd=0x0x7f487dd1f070) | |
[000136] ----------- arg0 +--* LCL_ADDR byref V15 loc11 [+0] | |
[000139] ----------- arg1 \--* ADD int | |
[000137] ----------- +--* LCL_VAR int V18 loc14 | |
[000138] ----------- \--* CNS_INT int 1 | |
Argument #0: is a constant or invariant | |
[000136] ----------- * LCL_ADDR byref V15 loc11 [+0] | |
Argument #1: has caller local ref | |
[000139] ----------- * ADD int | |
[000137] ----------- +--* LCL_VAR int V18 loc14 | |
[000138] ----------- \--* CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Array:Resize[ubyte](byref,int) set to 0x0x7f487dd1f070: | |
Invoking compiler for the inlinee method System.Array:Resize[ubyte](byref,int) : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 16 ldc.i4.0 | |
IL_0002 2f 09 bge.s 9 (IL_000d) | |
IL_0004 1f 47 ldc.i4.s 0x47 | |
IL_0006 1f 0d ldc.i4.s 0xD | |
IL_0008 28 e6 21 00 06 call 0x60021E6 | |
IL_000d 02 ldarg.0 | |
IL_000e 50 ldind.ref | |
IL_000f 0a stloc.0 | |
IL_0010 06 ldloc.0 | |
IL_0011 2d 09 brtrue.s 9 (IL_001c) | |
IL_0013 02 ldarg.0 | |
IL_0014 03 ldarg.1 | |
IL_0015 8d 1f 00 00 1b newarr 0x1B00001F | |
IL_001a 51 stind.ref | |
IL_001b 2a ret | |
IL_001c 06 ldloc.0 | |
IL_001d 8e ldlen | |
IL_001e 69 conv.i4 | |
IL_001f 03 ldarg.1 | |
IL_0020 2e 25 beq.s 37 (IL_0047) | |
IL_0022 03 ldarg.1 | |
IL_0023 8d 1f 00 00 1b newarr 0x1B00001F | |
IL_0028 0b stloc.1 | |
IL_0029 07 ldloc.1 | |
IL_002a 28 27 00 00 2b call 0x2B000027 | |
IL_002f 06 ldloc.0 | |
IL_0030 28 27 00 00 2b call 0x2B000027 | |
IL_0035 03 ldarg.1 | |
IL_0036 06 ldloc.0 | |
IL_0037 8e ldlen | |
IL_0038 69 conv.i4 | |
IL_0039 28 5b 05 00 06 call 0x600055B | |
IL_003e e0 conv.u | |
IL_003f 28 28 00 00 2b call 0x2B000028 | |
IL_0044 02 ldarg.0 | |
IL_0045 07 ldloc.1 | |
IL_0046 51 stind.ref | |
IL_0047 2a ret | |
INLINER impTokenLookupContextHandle for System.Array:Resize[ubyte](byref,int) is 0x0x7f487dd1f070. | |
*************** In compInitDebuggingInfo() for System.Array:Resize[ubyte](byref,int) | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Array:Resize[ubyte](byref,int) | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 15 : state 23 [ ldc.i4.0 ] | |
weight= 20 : state 47 [ bge.s ] | |
weight= 41 : state 32 [ ldc.i4.s ] | |
weight= 41 : state 32 [ ldc.i4.s ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 1 : state 68 [ ldind.ref ] | |
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight=152 : state 118 [ newarr ] | |
weight= 60 : state 69 [ stind.ref ] | |
weight= 19 : state 42 [ ret ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 6 : state 46 [ beq.s ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight=152 : state 118 [ newarr ] | |
Named Intrinsic System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference: Recognized | |
weight= -7 : state 200 [ stloc.1 -> ldloc.1 ] | |
weight= 79 : state 40 [ call ] | |
Named Intrinsic System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference: Recognized | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 79 : state 40 [ call ] | |
Named Intrinsic System.Buffer.Memmove: Not recognized | |
weight=-36 : state 165 [ conv.u ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 9 : state 8 [ ldloc.1 ] | |
weight= 60 : state 69 [ stind.ref ] | |
weight= 19 : state 42 [ ret ] | |
Inline candidate has 1 foldable branches. Multiplier increased to 4. | |
Inline has 2 intrinsics. Multiplier increased to 5.6. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 6.6. | |
Inline candidate callsite is in a loop. Multiplier increased to 9.6. | |
Caller has 67 locals. Multiplier decreased to 8.97187. | |
calleeNativeSizeEstimate=1156 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=8.97187 | |
threshold=1031 | |
Native estimate for function size exceeds threshold for inlining 115.6 > 103.1 (multiplier = 8.97187) | |
Inline expansion aborted, inline not profitable | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Array:Resize[ubyte](byref,int)' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.IEnumerator:MoveNext():ubyte:this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
**** Late devirt opportunity | |
[000104] --C-G------ * CALLV stub int System.Collections.IEnumerator:MoveNext():ubyte:this | |
[000295] -ACXG------ this \--* COMMA ref | |
[000294] DA--------- +--* STORE_LCL_VAR ref V40 tmp18 | |
[000103] ----------- | \--* LCL_VAR ref V16 loc12 | |
[000293] --CXG------ \--* COMMA ref | |
[000291] --CXG------ +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000289] ----------- arg0 | +--* LCL_VAR ref V40 tmp18 | |
[000290] ----------- arg1 | \--* CNS_INT long 0x7f487e5a56a8 | |
[000292] ----------- \--* LCL_VAR ref V40 tmp18 | |
impDevirtualizeCall: no type available (op=LCL_VAR) | |
No guarded devirt during late devirtualization | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.IDisposable:Dispose():this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target not direct' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
**** Late devirt opportunity | |
[000165] --C-G------ * CALLV stub void System.IDisposable:Dispose():this | |
[000310] -ACXG------ this \--* COMMA ref | |
[000309] DA--------- +--* STORE_LCL_VAR ref V41 tmp19 | |
[000164] ----------- | \--* LCL_VAR ref V16 loc12 | |
[000308] --CXG------ \--* COMMA ref | |
[000306] --CXG------ +--* CALL help void CORINFO_HELP_CLASSPROFILE32 | |
[000304] ----------- arg0 | +--* LCL_VAR ref V41 tmp19 | |
[000305] ----------- arg1 | \--* CNS_INT long 0x7f487e5a57c0 | |
[000307] ----------- \--* LCL_VAR ref V41 tmp19 | |
impDevirtualizeCall: no type available (op=LCL_VAR) | |
No guarded devirt during late devirtualization | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00047 in BB18: | |
STMT00047 ( 0x0F1[E-] ... 0x0F4 ) | |
[000154] I-C-G------ * CALL nullcheck void System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (exactContextHnd=0x0x7f487dd16109) | |
[000152] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000153] ----------- arg1 \--* LCL_VAR ref V15 loc11 | |
thisArg: is a local var | |
[000152] ----------- * LCL_VAR ref V06 loc2 | |
Argument #1: is a local var has caller local ref | |
[000153] ----------- * LCL_VAR ref V15 loc11 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this set to 0x0x7f487dd16109: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4f 1c 00 0a ldfld 0xA001C4F | |
IL_0007 17 ldc.i4.1 | |
IL_0008 58 add | |
IL_0009 7d 4f 1c 00 0a stfld 0xA001C4F | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 0a stloc.0 | |
IL_0015 02 ldarg.0 | |
IL_0016 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_001b 0b stloc.1 | |
IL_001c 07 ldloc.1 | |
IL_001d 06 ldloc.0 | |
IL_001e 8e ldlen | |
IL_001f 69 conv.i4 | |
IL_0020 34 12 bge.un.s 18 (IL_0034) | |
IL_0022 02 ldarg.0 | |
IL_0023 07 ldloc.1 | |
IL_0024 17 ldc.i4.1 | |
IL_0025 58 add | |
IL_0026 7d 4e 1c 00 0a stfld 0xA001C4E | |
IL_002b 06 ldloc.0 | |
IL_002c 07 ldloc.1 | |
IL_002d 03 ldarg.1 | |
IL_002e a4 31 00 00 1b stelem 0x1B000031 | |
IL_0033 2a ret | |
IL_0034 02 ldarg.0 | |
IL_0035 03 ldarg.1 | |
IL_0036 28 52 1c 00 0a call 0xA001C52 | |
IL_003b 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this is 0x0x7f487dd16109. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this | |
Jump targets: | |
IL_0034 | |
New Basic Block BB01 [0081] created. | |
BB01 [0081] [000..022) | |
New Basic Block BB02 [0082] created. | |
BB02 [0082] [022..034) | |
New Basic Block BB03 [0083] created. | |
BB03 [0083] [034..03C) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0081] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0082] 1 BB01 100 [022..034) (return) | |
BB03 [0083] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000154] Starting PHASE Pre-import | |
*************** Inline @[000154] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0081] 1 100 [000..022)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0082] 1 BB01 100 [022..034) (return) | |
BB03 [0083] 1 BB01 100 [034..03C) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0081] [000..022) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0082] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0083] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000154] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c454dd30, data at 0x7f07c454dd60) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 144032 | |
... adding known edge BB03 -> BB01: weight 83872 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... pseudo edge BB03 -> BB01 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB03: all outgoing edge weights known, sum is 83872 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 83872 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB01 has weight 144032 | |
BB02: all outgoing edge weights known, sum is 144032 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 144032 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 83872 | |
BB02 -> BB01 has weight 144032 | |
BB01: all incoming edge weights known, sum is 227904 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/227904 | |
Setting likelihood of BB01 -> BB02 to 0.6319854 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.6319854 | |
Setting likelihood of BB01 -> BB03 to 0.3680146 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 0.3680146 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB03[2, 1] | |
02 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 227904 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 227904 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000154] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0081] 1 0 0 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) IBC rare | |
BB02 [0082] 1 BB01 0 0 [022..034) (return) IBC rare | |
BB03 [0083] 1 BB01 0 0 [034..03C) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0081] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0082] [022..034) (return), preds={BB01} succs={} | |
------------ BB03 [0083] [034..03C) (return), preds={BB01} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000154] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4F | |
[ 2] 7 (0x007) ldc.i4.1 1 | |
[ 3] 8 (0x008) add | |
[ 2] 9 (0x009) stfld 0A001C4F | |
STMT00161 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000596] nA-XG------ * STOREIND int | |
[000595] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000152] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000594] ---XG------ \--* ADD int | |
[000592] n--XG------ +--* IND int | |
[000591] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000590] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000593] ----------- \--* CNS_INT int 1 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) stloc.0 | |
lvaGrabTemp returning 57 (V57 tmp35) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V57 as a single def temp | |
lvaSetClass: setting class for V57 to (0x7f487dd17010) ubyte[][] | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
lvaUpdateClass: NOT Updating class for V57 from (0x7f487dd17010) ubyte[][] to (0x7f487709c3f0) System.__Canon[] | |
STMT00162 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000600] DA-XG------ * STORE_LCL_VAR ref V57 tmp35 | |
[000599] n--XG------ \--* IND ref | |
[000598] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000597] ----------- \--* LCL_VAR ref V06 loc2 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldfld 0A001C4E | |
[ 1] 27 (0x01b) stloc.1 | |
lvaGrabTemp returning 58 (V58 tmp36) (a long lifetime temp) called for Inline stloc first use temp. | |
Marked V58 as a single def temp | |
STMT00163 ( 0x015[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000604] DA-XG------ * STORE_LCL_VAR int V58 tmp36 | |
[000603] n--XG------ \--* IND int | |
[000602] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000601] ----------- \--* LCL_VAR ref V06 loc2 | |
[ 0] 28 (0x01c) ldloc.1 | |
[ 1] 29 (0x01d) ldloc.0 | |
[ 2] 30 (0x01e) ldlen | |
[ 2] 31 (0x01f) conv.i4 | |
[ 2] 32 (0x020) bge.un.s | |
STMT00164 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000609] ---X------- * JTRUE void | |
[000608] N--X-----U- \--* GE int | |
[000605] ----------- +--* LCL_VAR int V58 tmp36 | |
[000607] ---X------- \--* ARR_LENGTH int | |
[000606] ----------- \--* LCL_VAR ref V57 tmp35 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=052) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 52 (0x034) ldarg.0 | |
[ 1] 53 (0x035) ldarg.1 | |
lvaGrabTemp returning 59 (V59 tmp37) called for Inlining Arg. | |
Marked V59 as a single def temp | |
lvaSetClass: setting class for V59 to (0x7f48767c27d0) ubyte[] | |
[ 2] 54 (0x036) call 0A001C52 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
STMT00165 ( 0x034[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000612] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000610] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000611] ----------- arg1 \--* LCL_VAR ref V59 tmp37 | |
[ 0] 59 (0x03b) ret | |
Importing BB02 (PC=034) of 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
[ 0] 34 (0x022) ldarg.0 | |
[ 1] 35 (0x023) ldloc.1 | |
[ 2] 36 (0x024) ldc.i4.1 1 | |
[ 3] 37 (0x025) add | |
[ 2] 38 (0x026) stfld 0A001C4E | |
STMT00166 ( 0x022[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000618] nA-XG------ * STOREIND int | |
[000617] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000613] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000616] ----------- \--* ADD int | |
[000614] ----------- +--* LCL_VAR int V58 tmp36 | |
[000615] ----------- \--* CNS_INT int 1 | |
[ 0] 43 (0x02b) ldloc.0 | |
[ 1] 44 (0x02c) ldloc.1 | |
[ 2] 45 (0x02d) ldarg.1 | |
[ 3] 46 (0x02e) stelem 1B000031 | |
STMT00167 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000623] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000619] ----------- arg0 +--* LCL_VAR ref V57 tmp35 | |
[000622] ----------- arg1 +--* CAST long <- int | |
[000620] ----------- | \--* LCL_VAR int V58 tmp36 | |
[000621] ----------- arg2 \--* LCL_VAR ref V59 tmp37 | |
[ 0] 51 (0x033) ret | |
*************** Inline @[000154] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0081] 1 0 0 [000..022)-> BB03(0.368),BB02(0.632) ( cond ) i IBC rare idxlen | |
BB02 [0082] 1 BB01 0 0 [022..034) (return) i IBC rare | |
BB03 [0083] 1 BB01 0 0 [034..03C) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0081] [000..022) -> BB03(0.3680146),BB02(0.6319854) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0081] | |
STMT00161 ( 0x000[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000596] nA-XG------ * STOREIND int | |
[000595] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000152] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000594] ---XG------ \--* ADD int | |
[000592] n--XG------ +--* IND int | |
[000591] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000590] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000593] ----------- \--* CNS_INT int 1 | |
***** BB01 [0081] | |
STMT00162 ( 0x00E[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000600] DA-XG------ * STORE_LCL_VAR ref V57 tmp35 | |
[000599] n--XG------ \--* IND ref | |
[000598] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000597] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB01 [0081] | |
STMT00163 ( 0x015[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000604] DA-XG------ * STORE_LCL_VAR int V58 tmp36 | |
[000603] n--XG------ \--* IND int | |
[000602] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000601] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB01 [0081] | |
STMT00164 ( 0x01C[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000609] ---X------- * JTRUE void | |
[000608] N--X-----U- \--* GE int | |
[000605] ----------- +--* LCL_VAR int V58 tmp36 | |
[000607] ---X------- \--* ARR_LENGTH int | |
[000606] ----------- \--* LCL_VAR ref V57 tmp35 | |
------------ BB02 [0082] [022..034) (return), preds={BB01} succs={} | |
***** BB02 [0082] | |
STMT00166 ( 0x022[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000618] nA-XG------ * STOREIND int | |
[000617] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000613] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000616] ----------- \--* ADD int | |
[000614] ----------- +--* LCL_VAR int V58 tmp36 | |
[000615] ----------- \--* CNS_INT int 1 | |
***** BB02 [0082] | |
STMT00167 ( 0x02B[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000623] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000619] ----------- arg0 +--* LCL_VAR ref V57 tmp35 | |
[000622] ----------- arg1 +--* CAST long <- int | |
[000620] ----------- | \--* LCL_VAR int V58 tmp36 | |
[000621] ----------- arg2 \--* LCL_VAR ref V59 tmp37 | |
------------ BB03 [0083] [034..03C) (return), preds={BB01} succs={} | |
***** BB03 [0083] | |
STMT00165 ( 0x034[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000612] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000610] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000611] ----------- arg1 \--* LCL_VAR ref V59 tmp37 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000154] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000154] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000154] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000154] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000154] Starting PHASE Post-import | |
*************** Inline @[000154] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000154] ----------- | |
Arguments setup: | |
STMT00168 ( 0x0F1[E-] ... ??? ) | |
[000624] DA--------- * STORE_LCL_VAR ref V59 tmp37 | |
[000153] ----------- \--* LCL_VAR ref V15 loc11 | |
Inlinee method body:New Basic Block BB70 [0084] created. | |
BB19 previous predecessor was BB18, now is BB70 | |
setting likelihood of BB70 -> BB19 from 1 to 1 | |
setting likelihood of BB18 -> BB70 to 1 | |
Convert bbKind of BB72 to BBJ_ALWAYS to bottomBlock BB70 | |
setting likelihood of BB72 -> BB70 to 1 | |
Convert bbKind of BB73 to BBJ_ALWAYS to bottomBlock BB70 | |
setting likelihood of BB73 -> BB70 to 1 | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
STMT00169 ( 0x0F1[E-] ... ??? ) | |
[000626] DA--------- * STORE_LCL_VAR ref V57 tmp35 | |
[000625] ----------- \--* CNS_INT ref null | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB71 [0081] 1 BB18 0 0 [0F1..0F2)-> BB73(0.368),BB72(0.632) ( cond ) i IBC rare idxlen bwd | |
BB72 [0082] 1 BB71 0 0 [0F1..0F2)-> BB70(1) (always) i IBC rare bwd | |
BB73 [0083] 1 BB71 0 0 [0F1..0F2)-> BB70(1) (always) i IBC rare bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB71 [0081] [0F1..0F2) -> BB73(0.3680146),BB72(0.6319854) (cond), preds={BB18} succs={BB72,BB73} | |
***** BB71 [0081] | |
STMT00161 ( INL19 @ 0x000[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000596] nA-XG------ * STOREIND int | |
[000595] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000152] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000594] ---XG------ \--* ADD int | |
[000592] n--XG------ +--* IND int | |
[000591] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_version | |
[000590] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000593] ----------- \--* CNS_INT int 1 | |
***** BB71 [0081] | |
STMT00162 ( INL19 @ 0x00E[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000600] DA-XG------ * STORE_LCL_VAR ref V57 tmp35 | |
[000599] n--XG------ \--* IND ref | |
[000598] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000597] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB71 [0081] | |
STMT00163 ( INL19 @ 0x015[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000604] DA-XG------ * STORE_LCL_VAR int V58 tmp36 | |
[000603] n--XG------ \--* IND int | |
[000602] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000601] ----------- \--* LCL_VAR ref V06 loc2 | |
***** BB71 [0081] | |
STMT00164 ( INL19 @ 0x01C[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000609] ---X------- * JTRUE void | |
[000608] N--X-----U- \--* GE int | |
[000605] ----------- +--* LCL_VAR int V58 tmp36 | |
[000607] ---X------- \--* ARR_LENGTH int | |
[000606] ----------- \--* LCL_VAR ref V57 tmp35 | |
------------ BB72 [0082] [0F1..0F2) -> BB70(1) (always), preds={BB71} succs={BB70} | |
***** BB72 [0082] | |
STMT00166 ( INL19 @ 0x022[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000618] nA-XG------ * STOREIND int | |
[000617] ---X------- +--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000613] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000616] ----------- \--* ADD int | |
[000614] ----------- +--* LCL_VAR int V58 tmp36 | |
[000615] ----------- \--* CNS_INT int 1 | |
***** BB72 [0082] | |
STMT00167 ( INL19 @ 0x02B[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000623] --CXG------ * CALL help void CORINFO_HELP_ARRADDR_ST | |
[000619] ----------- arg0 +--* LCL_VAR ref V57 tmp35 | |
[000622] ----------- arg1 +--* CAST long <- int | |
[000620] ----------- | \--* LCL_VAR int V58 tmp36 | |
[000621] ----------- arg2 \--* LCL_VAR ref V59 tmp37 | |
------------ BB73 [0083] [0F1..0F2) -> BB70(1) (always), preds={BB71} succs={BB70} | |
***** BB73 [0083] | |
STMT00165 ( INL19 @ 0x034[E-] ... ??? ) <- INLRT @ 0x0F1[E-] | |
[000612] --C-G------ * CALL void System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this | |
[000610] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000611] ----------- arg1 \--* LCL_VAR ref V59 tmp37 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this (60 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:Add(System.__Canon):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
lvaUpdateClass: NOT Updating class for V57 from (0x7f487dd17010) ubyte[][] to (0x7f487709c3f0) System.__Canon[] | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00019 in BB20: | |
STMT00019 ( 0x0FF[E-] ... 0x107 ) | |
[000056] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000055] ----------- this \--* LCL_VAR ref V04 loc0 | |
thisArg: is a local var | |
[000055] ----------- * LCL_VAR ref V04 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
Jump targets: | |
none | |
New Basic Block BB01 [0085] created. | |
BB01 [0085] [000..007) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0085] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000056] Starting PHASE Pre-import | |
*************** Inline @[000056] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0085] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0085] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000056] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 4 callee entry count 100 scale 0.04 | |
Scaling inlinee blocks | |
*************** Inline @[000056] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0085] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0085] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000056] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C4E | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000629] n--XG------ * IND int | |
[000628] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000055] ----------- \--* LCL_VAR ref V04 loc0 | |
Inlinee Return expression (after normalization) => | |
[000629] n--XG------ * IND int | |
[000628] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000055] ----------- \--* LCL_VAR ref V04 loc0 | |
** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL | |
*************** Inline @[000056] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0085] 1 1 [000..007) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0085] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000056] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000056] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000056] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000056] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000056] Starting PHASE Post-import | |
*************** Inline @[000056] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000056] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000057] with [000629] | |
[000057] --C-------- * RET_EXPR int (for [000056]) -> [000629] | |
Inserting the inline return expression | |
[000629] n--XG------ * IND int | |
[000628] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000055] ----------- \--* LCL_VAR ref V04 loc0 | |
Expanding INLINE_CANDIDATE in statement STMT00054 in BB21: | |
STMT00054 ( 0x10C[E-] ... 0x117 ) | |
[000173] I-C-G------ * CALL nullcheck int System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (exactContextHnd=0x0x7f4876028ee9) | |
[000172] ----------- this \--* LCL_VAR ref V04 loc0 | |
thisArg: is a local var | |
[000172] ----------- * LCL_VAR ref V04 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this | |
Jump targets: | |
none | |
New Basic Block BB01 [0086] created. | |
BB01 [0086] [000..007) | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0086] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000173] Starting PHASE Pre-import | |
*************** Inline @[000173] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0086] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0086] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000173] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
call site count 2 callee entry count 100 scale 0.02 | |
Scaling inlinee blocks | |
*************** Inline @[000173] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0086] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0086] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000173] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C4E | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000632] n--XG------ * IND int | |
[000631] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000172] ----------- \--* LCL_VAR ref V04 loc0 | |
Inlinee Return expression (after normalization) => | |
[000632] n--XG------ * IND int | |
[000631] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000172] ----------- \--* LCL_VAR ref V04 loc0 | |
** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL | |
*************** Inline @[000173] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0086] 1 1 [000..007) (return) i | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0086] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000173] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000173] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000173] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000173] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000173] Starting PHASE Post-import | |
*************** Inline @[000173] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000173] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Count():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Replacing the return expression placeholder [000174] with [000632] | |
[000174] --C-------- * RET_EXPR int (for [000173]) -> [000632] | |
Inserting the inline return expression | |
[000632] n--XG------ * IND int | |
[000631] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000172] ----------- \--* LCL_VAR ref V04 loc0 | |
Expanding INLINE_CANDIDATE in statement STMT00058 in BB22: | |
STMT00058 ( 0x11F[E-] ... 0x125 ) | |
[000188] I-C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:Dequeue():int:this (exactContextHnd=0x0x7f487dd15f41) | |
[000187] ----------- this \--* LCL_VAR ref V07 loc3 | |
thisArg: is a local var | |
[000187] ----------- * LCL_VAR ref V07 loc3 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Dequeue():int:this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:Dequeue():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 75 1c 00 0a ldfld 0xA001C75 | |
IL_0006 0a stloc.0 | |
IL_0007 02 ldarg.0 | |
IL_0008 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_000d 0b stloc.1 | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0014 2d 06 brtrue.s 6 (IL_001c) | |
IL_0016 02 ldarg.0 | |
IL_0017 28 7c 1c 00 0a call 0xA001C7C | |
IL_001c 07 ldloc.1 | |
IL_001d 06 ldloc.0 | |
IL_001e a3 31 00 00 1b ldelem 0x1B000031 | |
IL_0023 0c stloc.2 | |
IL_0024 28 1c 04 00 2b call 0x2B00041C | |
IL_0029 2c 10 brfalse.s 16 (IL_003b) | |
IL_002b 07 ldloc.1 | |
IL_002c 06 ldloc.0 | |
IL_002d 12 03 ldloca.s 0x3 | |
IL_002f fe 15 31 00 00 1b initobj 0x1B000031 | |
IL_0035 09 ldloc.3 | |
IL_0036 a4 31 00 00 1b stelem 0x1B000031 | |
IL_003b 02 ldarg.0 | |
IL_003c 02 ldarg.0 | |
IL_003d 7c 75 1c 00 0a ldflda 0xA001C75 | |
IL_0042 28 78 1c 00 0a call 0xA001C78 | |
IL_0047 02 ldarg.0 | |
IL_0048 02 ldarg.0 | |
IL_0049 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_004e 17 ldc.i4.1 | |
IL_004f 59 sub | |
IL_0050 7d 73 1c 00 0a stfld 0xA001C73 | |
IL_0055 02 ldarg.0 | |
IL_0056 02 ldarg.0 | |
IL_0057 7b 76 1c 00 0a ldfld 0xA001C76 | |
IL_005c 17 ldc.i4.1 | |
IL_005d 58 add | |
IL_005e 7d 76 1c 00 0a stfld 0xA001C76 | |
IL_0063 08 ldloc.2 | |
IL_0064 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Dequeue():int:this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:Dequeue():int:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:Dequeue():int:this | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 6 : state 11 [ stloc.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 34 : state 12 [ stloc.1 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 9 : state 8 [ ldloc.1 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 65 : state 140 [ ldelem ] | |
Named Intrinsic System.Runtime.CompilerServices.RuntimeHelpers.IsReferenceOrContainsReferences: Not recognized | |
weight= 4 : state 13 [ stloc.2 ] | |
weight= 79 : state 40 [ call ] | |
weight= 27 : state 44 [ brfalse.s ] | |
weight= 9 : state 8 [ ldloc.1 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 35 : state 189 [ ldloca.s.normed ] | |
weight= 55 : state 180 [ initobj ] | |
weight= 24 : state 10 [ ldloc.3 ] | |
weight= 65 : state 141 [ stelem ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 17 : state 110 [ ldflda ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-15 : state 77 [ sub ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 22 : state 9 [ ldloc.2 ] | |
weight= 19 : state 42 [ ret ] | |
8 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate has 2 binary expressions with constants. Multiplier increased to 2. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 3. | |
Inline candidate callsite is in a loop. Multiplier increased to 6. | |
Caller has 67 locals. Multiplier decreased to 5.60742. | |
calleeNativeSizeEstimate=973 | |
callsiteNativeSizeEstimate=85 | |
benefit multiplier=5.60742 | |
threshold=476 | |
Native estimate for function size exceeds threshold for inlining 97.3 > 47.6 (multiplier = 5.60742) | |
Inline expansion aborted, inline not profitable | |
Inlining [000188] failed, so bashing STMT00058 to NOP | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.Queue`1[int]:Dequeue():int:this' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' | |
Replacing the return expression placeholder [000189] with [000188] | |
[000189] --C-------- * RET_EXPR int (for [000188]) -> [000188] | |
Inserting the inline return expression | |
[000188] --C-G------ * CALL nullcheck int System.Collections.Generic.Queue`1[int]:Dequeue():int:this | |
[000187] ----------- this \--* LCL_VAR ref V07 loc3 | |
Expanding INLINE_CANDIDATE in statement STMT00062 in BB22: | |
STMT00062 ( ??? ... 0x138 ) | |
[000201] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f4876028ee9) | |
[000199] ----------- this +--* LCL_VAR ref V04 loc0 | |
[000200] ----------- arg1 \--* LCL_VAR int V19 loc15 | |
thisArg: is a local var | |
[000199] ----------- * LCL_VAR ref V04 loc0 | |
Argument #1: is a local var | |
[000200] ----------- * LCL_VAR int V19 loc15 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this set to 0x0x7f4876028ee9: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0007 37 05 blt.un.s 5 (IL_000e) | |
IL_0009 28 c2 21 00 06 call 0x60021C2 | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 03 ldarg.1 | |
IL_0015 a3 31 00 00 1b ldelem 0x1B000031 | |
IL_001a 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this is 0x0x7f4876028ee9. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight=-63 : state 55 [ blt.un.s ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 65 : state 140 [ ldelem ] | |
weight= 19 : state 42 [ ret ] | |
2 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4. | |
Inline candidate has arg that feeds range check. Multiplier increased to 5. | |
Inline candidate callsite is in a loop. Multiplier increased to 8. | |
Caller has 67 locals. Multiplier decreased to 7.47656. | |
calleeNativeSizeEstimate=194 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=7.47656 | |
threshold=859 | |
Native estimate for function size is within threshold for inlining 19.4 <= 85.9 (multiplier = 7.47656) | |
Jump targets: | |
IL_000e | |
New Basic Block BB01 [0087] created. | |
BB01 [0087] [000..009) | |
New Basic Block BB02 [0088] created. | |
BB02 [0088] [009..00E) | |
New Basic Block BB03 [0089] created. | |
BB03 [0089] [00E..01B) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0087] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0088] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0089] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000201] Starting PHASE Pre-import | |
*************** Inline @[000201] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0087] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0088] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0089] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0087] [000..009) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0088] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0089] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000201] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c457d110, data at 0x7f07c457d140) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 1837312 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB03: all outgoing edge weights known, sum is 1837312 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 1837312 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB03 has weight 0 | |
BB02: all outgoing edge weights known, sum is 0 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 0 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB01: all incoming edge weights known, sum is 1837312 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/1837312 | |
Setting likelihood of BB01 -> BB03 to 1 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 1 | |
Setting likelihood of BB01 -> BB02 to 0 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0 | |
BB02 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB02 -> BB03 to 1 (heur) | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 1837312 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 1837312 scale 1.088547e-06 | |
Scaling inlinee blocks | |
*************** Inline @[000201] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0087] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) IBC | |
BB02 [0088] 1 BB01 0 0 [009..00E)-> BB03(1) (always) IBC rare | |
BB03 [0089] 2 BB01,BB02 2 2 [00E..01B) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0087] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0088] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0089] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000201] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 0 (0x000) ldarg.1 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4E | |
[ 2] 7 (0x007) blt.un.s | |
STMT00170 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000638] ---XG------ * JTRUE void | |
[000637] N--XG----U- \--* LT int | |
[000200] ----------- +--* LCL_VAR int V19 loc15 | |
[000636] n--XG------ \--* IND int | |
[000635] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000199] ----------- \--* LCL_VAR ref V04 loc0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=014) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) ldarg.1 | |
[ 2] 21 (0x015) ldelem 1B000031 | |
[ 1] 26 (0x01a) ret | |
Inlinee Return expression (before normalization) => | |
[000644] n--XG------ * IND ref | |
[000643] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000641] n--XG------ +--* IND ref | |
[000640] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000639] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000642] ----------- \--* LCL_VAR int V19 loc15 | |
Inlinee Return expression (after normalization) => | |
[000644] n--XG------ * IND ref | |
[000643] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000641] n--XG------ +--* IND ref | |
[000640] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000639] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000642] ----------- \--* LCL_VAR int V19 loc15 | |
Importing BB02 (PC=009) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 9 (0x009) call 060021C2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate ThrowArgumentOutOfRange_IndexMustBeLessException -- context 0x7f48765d4fe9 | |
Class context: System.ThrowHelper | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00171 ( 0x009[E-] ... ??? ) <- INLRT @ ??? | |
[000645] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
impImportBlockPending for BB03 | |
** Note: inlinee IL was partially imported -- imported 14 of 27 bytes of method IL | |
*************** Inline @[000201] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0087] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) i IBC | |
BB02 [0088] 1 BB01 0 0 [009..00E)-> BB03(1) (always) i IBC rare | |
BB03 [0089] 2 BB01,BB02 2 2 [00E..01B) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0087] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0087] | |
STMT00170 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000638] ---XG------ * JTRUE void | |
[000637] N--XG----U- \--* LT int | |
[000200] ----------- +--* LCL_VAR int V19 loc15 | |
[000636] n--XG------ \--* IND int | |
[000635] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000199] ----------- \--* LCL_VAR ref V04 loc0 | |
------------ BB02 [0088] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0088] | |
STMT00171 ( 0x009[E-] ... ??? ) <- INLRT @ ??? | |
[000645] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB03 [0089] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000201] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000201] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000201] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000201] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000201] Starting PHASE Post-import | |
*************** Inline @[000201] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000201] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB74 [0090] created. | |
BB29 previous predecessor was BB22, now is BB74 | |
setting likelihood of BB74 -> BB29 from 1 to 1 | |
setting likelihood of BB22 -> BB74 to 1 | |
Convert bbKind of BB77 to BBJ_ALWAYS to bottomBlock BB74 | |
setting likelihood of BB77 -> BB74 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB75 [0087] 1 BB22 2 2 [000..000)-> BB77(1),BB76(0) ( cond ) i IBC internal bwd | |
BB76 [0088] 1 BB75 0 0 [000..000)-> BB77(1) (always) i IBC rare internal bwd | |
BB77 [0089] 2 BB75,BB76 2 2 [000..000)-> BB74(1) (always) i IBC internal bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB75 [0087] [000..000) -> BB77(1),BB76(0) (cond), preds={BB22} succs={BB76,BB77} | |
***** BB75 [0087] | |
STMT00170 ( INL22 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000638] ---XG------ * JTRUE void | |
[000637] N--XG----U- \--* LT int | |
[000200] ----------- +--* LCL_VAR int V19 loc15 | |
[000636] n--XG------ \--* IND int | |
[000635] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000199] ----------- \--* LCL_VAR ref V04 loc0 | |
------------ BB76 [0088] [000..000) -> BB77(1) (always), preds={BB75} succs={BB77} | |
***** BB76 [0088] | |
STMT00171 ( INL22 @ 0x009[E-] ... ??? ) <- INLRT @ ??? | |
[000645] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB77 [0089] [000..000) -> BB74(1) (always), preds={BB75,BB76} succs={BB74} | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (27 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00171 in BB76: | |
STMT00171 ( INL22 @ 0x009[E-] ... ??? ) <- INLRT @ ??? | |
[000645] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() set to 0x0x7f48765d4fe9: | |
Invoking compiler for the inlinee method System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() : | |
IL to import: | |
IL_0000 1f 15 ldc.i4.s 0x15 | |
IL_0002 17 ldc.i4.1 | |
IL_0003 28 20 22 00 06 call 0x6002220 | |
IL_0008 7a throw | |
INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() is 0x0x7f48765d4fe9. | |
*************** In compInitDebuggingInfo() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
Jump targets: | |
none | |
New Basic Block BB01 [0091] created. | |
BB01 [0091] [000..009) | |
Basic block list for 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0091] 1 0 [000..009) (throw ) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Replacing the return expression placeholder [000202] with [000644] | |
[000202] --C-------- * RET_EXPR ref (for [000201]) -> [000644] | |
Inserting the inline return expression | |
[000644] n--XG------ * IND ref | |
[000643] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000641] n--XG------ +--* IND ref | |
[000640] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000639] ----------- | \--* LCL_VAR ref V04 loc0 | |
[000642] ----------- \--* LCL_VAR int V19 loc15 | |
Expanding INLINE_CANDIDATE in statement STMT00067 in BB23: | |
STMT00067 ( 0x142[E-] ... 0x14A ) | |
[000215] I-C-G------ * CALL nullcheck ref System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (exactContextHnd=0x0x7f487dd16109) | |
[000213] ----------- this +--* LCL_VAR ref V06 loc2 | |
[000214] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
thisArg: is a local var | |
[000213] ----------- * LCL_VAR ref V06 loc2 | |
Argument #1: is a local var | |
[000214] ----------- * LCL_VAR int V20 loc16 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this set to 0x0x7f487dd16109: | |
Invoking compiler for the inlinee method System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 02 ldarg.0 | |
IL_0002 7b 4e 1c 00 0a ldfld 0xA001C4E | |
IL_0007 37 05 blt.un.s 5 (IL_000e) | |
IL_0009 28 c2 21 00 06 call 0x60021C2 | |
IL_000e 02 ldarg.0 | |
IL_000f 7b 4d 1c 00 0a ldfld 0xA001C4D | |
IL_0014 03 ldarg.1 | |
IL_0015 a3 31 00 00 1b ldelem 0x1B000031 | |
IL_001a 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this is 0x0x7f487dd16109. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight=-63 : state 55 [ blt.un.s ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 65 : state 140 [ ldelem ] | |
weight= 19 : state 42 [ ret ] | |
2 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4. | |
Inline candidate has arg that feeds range check. Multiplier increased to 5. | |
Inline candidate callsite is in a loop. Multiplier increased to 8. | |
Caller has 67 locals. Multiplier decreased to 7.47656. | |
calleeNativeSizeEstimate=194 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=7.47656 | |
threshold=859 | |
Native estimate for function size is within threshold for inlining 19.4 <= 85.9 (multiplier = 7.47656) | |
Jump targets: | |
IL_000e | |
New Basic Block BB01 [0091] created. | |
BB01 [0091] [000..009) | |
New Basic Block BB02 [0092] created. | |
BB02 [0092] [009..00E) | |
New Basic Block BB03 [0093] created. | |
BB03 [0093] [00E..01B) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0091] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0092] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0093] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000215] Starting PHASE Pre-import | |
*************** Inline @[000215] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0091] 1 100 [000..009)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0092] 1 BB01 100 [009..00E)-> BB03(1) (always) | |
BB03 [0093] 2 BB01,BB02 100 [00E..01B) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0091] [000..009) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0092] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0093] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000215] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c457d110, data at 0x7f07c457d140) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 1837312 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero | |
Pass [1]: 3 unknown blocks, 2 unknown edges | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB03: all outgoing edge weights known, sum is 1837312 | |
BB01 -> BB03: target block weight and all other incoming edge weights known, so weight is 1837312 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB03 has weight 0 | |
BB02: all outgoing edge weights known, sum is 0 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 0 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB03 -> BB01 has weight 1837312 | |
BB01: all incoming edge weights known, sum is 1837312 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/1837312 | |
Setting likelihood of BB01 -> BB03 to 1 (pgo) | |
setting likelihood of BB01 -> BB03 from 0.5 to 1 | |
Setting likelihood of BB01 -> BB02 to 0 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0 | |
BB02 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB02 -> BB03 to 1 (heur) | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 1837312 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
call site count 2 callee entry count 1837312 scale 1.088547e-06 | |
Scaling inlinee blocks | |
*************** Inline @[000215] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0091] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) IBC | |
BB02 [0092] 1 BB01 0 0 [009..00E)-> BB03(1) (always) IBC rare | |
BB03 [0093] 2 BB01,BB02 2 2 [00E..01B) (return) IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0091] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0092] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0093] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000215] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 0 (0x000) ldarg.1 | |
[ 1] 1 (0x001) ldarg.0 | |
[ 2] 2 (0x002) ldfld 0A001C4E | |
[ 2] 7 (0x007) blt.un.s | |
STMT00172 ( 0x000[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000650] ---XG------ * JTRUE void | |
[000649] N--XG----U- \--* LT int | |
[000214] ----------- +--* LCL_VAR int V20 loc16 | |
[000648] n--XG------ \--* IND int | |
[000647] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000213] ----------- \--* LCL_VAR ref V06 loc2 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=014) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldfld 0A001C4D | |
[ 1] 20 (0x014) ldarg.1 | |
[ 2] 21 (0x015) ldelem 1B000031 | |
[ 1] 26 (0x01a) ret | |
Inlinee Return expression (before normalization) => | |
[000656] n--XG------ * IND ref | |
[000655] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000653] n--XG------ +--* IND ref | |
[000652] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000651] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000654] ----------- \--* LCL_VAR int V20 loc16 | |
Inlinee Return expression (after normalization) => | |
[000656] n--XG------ * IND ref | |
[000655] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000653] n--XG------ +--* IND ref | |
[000652] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000651] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000654] ----------- \--* LCL_VAR int V20 loc16 | |
Importing BB02 (PC=009) of 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
[ 0] 9 (0x009) call 060021C2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate ThrowArgumentOutOfRange_IndexMustBeLessException -- context 0x7f48765d4fe9 | |
Class context: System.ThrowHelper | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00173 ( 0x009[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000657] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
impImportBlockPending for BB03 | |
** Note: inlinee IL was partially imported -- imported 14 of 27 bytes of method IL | |
*************** Inline @[000215] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0091] 1 2 2 [000..009)-> BB03(1),BB02(0) ( cond ) i IBC | |
BB02 [0092] 1 BB01 0 0 [009..00E)-> BB03(1) (always) i IBC rare | |
BB03 [0093] 2 BB01,BB02 2 2 [00E..01B) (return) i IBC | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0091] [000..009) -> BB03(1),BB02(0) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0091] | |
STMT00172 ( 0x000[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000650] ---XG------ * JTRUE void | |
[000649] N--XG----U- \--* LT int | |
[000214] ----------- +--* LCL_VAR int V20 loc16 | |
[000648] n--XG------ \--* IND int | |
[000647] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000213] ----------- \--* LCL_VAR ref V06 loc2 | |
------------ BB02 [0092] [009..00E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
***** BB02 [0092] | |
STMT00173 ( 0x009[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000657] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB03 [0093] [00E..01B) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000215] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000215] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000215] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000215] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000215] Starting PHASE Post-import | |
*************** Inline @[000215] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000215] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB78 [0094] created. | |
BB24 previous predecessor was BB23, now is BB78 | |
BB28 previous predecessor was BB23, now is BB78 | |
setting likelihood of BB23 -> BB78 to 1 | |
Convert bbKind of BB81 to BBJ_ALWAYS to bottomBlock BB78 | |
setting likelihood of BB81 -> BB78 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB79 [0091] 1 BB23 2 2 [142..143)-> BB81(1),BB80(0) ( cond ) i IBC bwd | |
BB80 [0092] 1 BB79 0 0 [142..143)-> BB81(1) (always) i IBC rare bwd | |
BB81 [0093] 2 BB79,BB80 2 2 [142..143)-> BB78(1) (always) i IBC bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB79 [0091] [142..143) -> BB81(1),BB80(0) (cond), preds={BB23} succs={BB80,BB81} | |
***** BB79 [0091] | |
STMT00172 ( INL23 @ 0x000[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000650] ---XG------ * JTRUE void | |
[000649] N--XG----U- \--* LT int | |
[000214] ----------- +--* LCL_VAR int V20 loc16 | |
[000648] n--XG------ \--* IND int | |
[000647] ---X------- \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_size | |
[000213] ----------- \--* LCL_VAR ref V06 loc2 | |
------------ BB80 [0092] [142..143) -> BB81(1) (always), preds={BB79} succs={BB81} | |
***** BB80 [0092] | |
STMT00173 ( INL23 @ 0x009[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000657] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
------------ BB81 [0093] [142..143) -> BB78(1) (always), preds={BB79,BB80} succs={BB78} | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this (27 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
BB23 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Collections.Generic.List`1[System.__Canon]:get_Item(int):System.__Canon:this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement STMT00173 in BB80: | |
STMT00173 ( INL23 @ 0x009[E-] ... ??? ) <- INLRT @ 0x142[E-] | |
[000657] I-C-G------ * CALL void System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() (exactContextHnd=0x0x7f48765d4fe9) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() set to 0x0x7f48765d4fe9: | |
Invoking compiler for the inlinee method System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() : | |
IL to import: | |
IL_0000 1f 15 ldc.i4.s 0x15 | |
IL_0002 17 ldc.i4.1 | |
IL_0003 28 20 22 00 06 call 0x6002220 | |
IL_0008 7a throw | |
INLINER impTokenLookupContextHandle for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() is 0x0x7f48765d4fe9. | |
*************** In compInitDebuggingInfo() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() | |
Jump targets: | |
none | |
New Basic Block BB01 [0095] created. | |
BB01 [0095] [000..009) | |
Basic block list for 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0095] 1 0 [000..009) (throw ) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()' | |
INLINER: during 'fgInline' result 'failed this callee' reason 'does not return' | |
Replacing the return expression placeholder [000216] with [000656] | |
[000216] --C-------- * RET_EXPR ref (for [000215]) -> [000656] | |
Inserting the inline return expression | |
[000656] n--XG------ * IND ref | |
[000655] ---XG------ \--* INDEX_ADDR byref ref[] | |
[000653] n--XG------ +--* IND ref | |
[000652] ---X------- | \--* FIELD_ADDR byref System.Collections.Generic.List`1[System.__Canon]:_items | |
[000651] ----------- | \--* LCL_VAR ref V06 loc2 | |
[000654] ----------- \--* LCL_VAR int V20 loc16 | |
Querying runtime about current class of field System.Collections.Generic.List`1[System.__Canon]:_items (declared as System.__Canon[]) | |
Field's current class not available | |
lvaUpdateClass: NOT Updating class for V21 from (0x7f48767c27d0) ubyte[] to (0x7f4875ec5f70) System.__Canon | |
Expanding INLINE_CANDIDATE in statement STMT00074 in BB26: | |
STMT00074 ( 0x165[E-] ... 0x173 ) | |
[000244] I-C-G------ * CALL struct System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (exactContextHnd=0x0x7f487dd1f120) | |
[000243] ----------- arg0 \--* LCL_VAR ref V21 loc17 | |
Argument #0: is a local var | |
[000243] ----------- * LCL_VAR ref V21 loc17 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] set to 0x0x7f487dd1f120: | |
Invoking compiler for the inlinee method System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 73 4e 00 00 0a newobj 0xA00004E | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] is 0x0x7f487dd1f120. | |
**** getSystemVAmd64PassStructInRegisterDescriptor(0x760c3338 (System.Span`1[ubyte]), ...) => | |
passedInRegisters = true | |
eightByteCount = 2 | |
eightByte #0 -- classification: IntegerByReference, byteSize: 8, byteOffset: 0 | |
eightByte #1 -- classification: Integer, byteSize: 8, byteOffset: 8 | |
**** getSystemVAmd64PassStructInRegisterDescriptor(0x760c3338 (System.Span`1[ubyte]), ...) => | |
passedInRegisters = true | |
eightByteCount = 2 | |
eightByte #0 -- classification: IntegerByReference, byteSize: 8, byteOffset: 0 | |
eightByte #1 -- classification: Integer, byteSize: 8, byteOffset: 8 | |
*************** In compInitDebuggingInfo() for System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] | |
Jump targets: | |
none | |
New Basic Block BB01 [0095] created. | |
BB01 [0095] [000..007) | |
Basic block list for 'System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte]' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0095] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000244] Starting PHASE Pre-import | |
*************** Inline @[000244] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0095] 1 1 [000..007) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0095] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000244] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000244] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0095] 1 0 [000..007) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0095] [000..007) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000244] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte]' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) newobj | |
lvaGrabTemp returning 60 (V60 tmp38) called for NewObj constructor temp. | |
STMT00174 ( 0x000[E-] ... ??? ) <- INLRT @ 0x165[E-] | |
[000660] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000659] ----------- \--* CNS_INT int 0 | |
0A00004E | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate .ctor -- context 0x7f48760c3339 | |
Class context: System.Span`1[ubyte] | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte]' calling 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00175 ( ??? ... ??? ) <- INLRT @ 0x165[E-] | |
[000662] I-C-G------ * CALL void System.Span`1[ubyte]:.ctor(ubyte[]):this (exactContextHnd=0x0x7f48760c3339) | |
[000661] ----------- this +--* LCL_ADDR byref V60 tmp38 [+0] | |
[000243] ----------- arg1 \--* LCL_VAR ref V21 loc17 | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000663] ----------- * LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
*************** Inline @[000244] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0095] 1 0 [000..007) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0095] [000..007) (return), preds={} succs={} | |
***** BB01 [0095] | |
STMT00174 ( 0x000[E-] ... ??? ) <- INLRT @ 0x165[E-] | |
[000660] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000659] ----------- \--* CNS_INT int 0 | |
***** BB01 [0095] | |
STMT00175 ( ??? ... ??? ) <- INLRT @ 0x165[E-] | |
[000662] I-C-G------ * CALL void System.Span`1[ubyte]:.ctor(ubyte[]):this (exactContextHnd=0x0x7f48760c3339) | |
[000661] ----------- this +--* LCL_ADDR byref V60 tmp38 [+0] | |
[000243] ----------- arg1 \--* LCL_VAR ref V21 loc17 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000244] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000244] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000244] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000244] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000244] Starting PHASE Post-import | |
*************** Inline @[000244] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000244] ----------- | |
Arguments setup: | |
Inlinee method body: | |
STMT00174 ( INL24 @ 0x000[E-] ... ??? ) <- INLRT @ 0x165[E-] | |
[000660] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000659] ----------- \--* CNS_INT int 0 | |
STMT00175 ( INL24 @ ??? ... ??? ) <- INLRT @ 0x165[E-] | |
[000662] I-C-G------ * CALL void System.Span`1[ubyte]:.ctor(ubyte[]):this (exactContextHnd=0x0x7f48760c3339) | |
[000661] ----------- this +--* LCL_ADDR byref V60 tmp38 [+0] | |
[000243] ----------- arg1 \--* LCL_VAR ref V21 loc17 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte] (7 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.MemoryExtensions:AsSpan[ubyte](ubyte[]):System.Span`1[ubyte]' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement STMT00175 in BB26: | |
STMT00175 ( INL24 @ ??? ... ??? ) <- INLRT @ 0x165[E-] | |
[000662] I-C-G------ * CALL void System.Span`1[ubyte]:.ctor(ubyte[]):this (exactContextHnd=0x0x7f48760c3339) | |
[000661] ----------- this +--* LCL_ADDR byref V60 tmp38 [+0] | |
[000243] ----------- arg1 \--* LCL_VAR ref V21 loc17 | |
thisArg: is a constant or invariant is byref to a struct local | |
[000661] ----------- * LCL_ADDR byref V60 tmp38 [+0] | |
Argument #1: is a local var | |
[000243] ----------- * LCL_VAR ref V21 loc17 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Span`1[ubyte]:.ctor(ubyte[]):this set to 0x0x7f48760c3339: | |
Invoking compiler for the inlinee method System.Span`1[ubyte]:.ctor(ubyte[]):this : | |
IL to import: | |
IL_0000 03 ldarg.1 | |
IL_0001 2d 08 brtrue.s 8 (IL_000b) | |
IL_0003 02 ldarg.0 | |
IL_0004 fe 15 70 00 00 1b initobj 0x1B000070 | |
IL_000a 2a ret | |
IL_000b d0 31 00 00 1b ldtoken 0x1B000031 | |
IL_0010 28 f6 08 00 06 call 0x60008F6 | |
IL_0015 28 41 09 00 06 call 0x6000941 | |
IL_001a 2d 1c brtrue.s 28 (IL_0038) | |
IL_001c 03 ldarg.1 | |
IL_001d 6f cd 05 00 06 callvirt 0x60005CD | |
IL_0022 d0 a4 00 00 1b ldtoken 0x1B0000A4 | |
IL_0027 28 f6 08 00 06 call 0x60008F6 | |
IL_002c 28 ab 09 00 06 call 0x60009AB | |
IL_0031 2c 05 brfalse.s 5 (IL_0038) | |
IL_0033 28 b5 21 00 06 call 0x60021B5 | |
IL_0038 02 ldarg.0 | |
IL_0039 03 ldarg.1 | |
IL_003a 28 d2 02 00 2b call 0x2B0002D2 | |
IL_003f 7d a3 07 00 0a stfld 0xA0007A3 | |
IL_0044 02 ldarg.0 | |
IL_0045 03 ldarg.1 | |
IL_0046 8e ldlen | |
IL_0047 69 conv.i4 | |
IL_0048 7d c8 08 00 0a stfld 0xA0008C8 | |
IL_004d 2a ret | |
INLINER impTokenLookupContextHandle for System.Span`1[ubyte]:.ctor(ubyte[]):this is 0x0x7f48760c3339. | |
*************** In compInitDebuggingInfo() for System.Span`1[ubyte]:.ctor(ubyte[]):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Span`1[ubyte]:.ctor(ubyte[]):this | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.get_IsValueType: Recognized | |
Named Intrinsic System.Object.GetType: Recognized | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.op_Inequality: Recognized | |
Named Intrinsic System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference: Recognized | |
Jump targets: | |
IL_000b | |
IL_0038 | |
New Basic Block BB01 [0096] created. | |
BB01 [0096] [000..003) | |
New Basic Block BB02 [0097] created. | |
BB02 [0097] [003..00B) | |
New Basic Block BB03 [0098] created. | |
BB03 [0098] [00B..01C) | |
New Basic Block BB04 [0099] created. | |
BB04 [0099] [01C..033) | |
New Basic Block BB05 [0100] created. | |
BB05 [0100] [033..038) | |
New Basic Block BB06 [0101] created. | |
BB06 [0101] [038..04E) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB03 -> BB06 to 0.5 | |
setting likelihood of BB03 -> BB04 to 0.5 | |
setting likelihood of BB04 -> BB06 to 0.5 | |
setting likelihood of BB04 -> BB05 to 0.5 | |
setting likelihood of BB05 -> BB06 to 1 | |
Basic block list for 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 100 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0097] 1 BB01 100 [003..00B) (return) | |
BB03 [0098] 1 BB01 100 [00B..01C)-> BB06(0.5),BB04(0.5) ( cond ) | |
BB04 [0099] 1 BB03 100 [01C..033)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0100] 1 BB04 100 [033..038)-> BB06(1) (always) | |
BB06 [0101] 3 BB03,BB04,BB05 100 [038..04E) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000662] Starting PHASE Pre-import | |
*************** Inline @[000662] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 100 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0097] 1 BB01 100 [003..00B) (return) | |
BB03 [0098] 1 BB01 100 [00B..01C)-> BB06(0.5),BB04(0.5) ( cond ) | |
BB04 [0099] 1 BB03 100 [01C..033)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0100] 1 BB04 100 [033..038)-> BB06(1) (always) | |
BB06 [0101] 3 BB03,BB04,BB05 100 [038..04E) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0096] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0097] [003..00B) (return), preds={BB01} succs={} | |
------------ BB03 [0098] [00B..01C) -> BB06(0.5),BB04(0.5) (cond), preds={BB01} succs={BB04,BB06} | |
------------ BB04 [0099] [01C..033) -> BB06(0.5),BB05(0.5) (cond), preds={BB03} succs={BB05,BB06} | |
------------ BB05 [0100] [033..038) -> BB06(1) (always), preds={BB04} succs={BB06} | |
------------ BB06 [0101] [038..04E) (return), preds={BB03,BB04,BB05} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000662] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c4551070, data at 0x7f07c45510a0) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB01: weight 0 | |
... adding known edge BB06 -> BB01: weight 0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 7, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB03 | |
... unknown edge BB01 -> BB02 | |
... pseudo edge BB02 -> BB01 | |
... unknown edge BB03 -> BB04 | |
... unknown edge BB03 -> BB06 | |
... pseudo edge BB06 -> BB01 | |
... unknown edge BB04 -> BB05 | |
Schema is missing non-tree edge BB04 -> BB06, will presume zero | |
... known edge BB04 -> BB06 | |
Schema is missing non-tree edge BB05 -> BB06, will presume zero | |
... known edge BB05 -> BB06 | |
... not solving because of the zero counts | |
... discarding profile count data: PGO data available, profile data was all zero | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 5] | |
01 -> BB03[2, 4] | |
02 -> BB04[3, 3] | |
03 -> BB05[4, 2] | |
04 -> BB06[5, 1] | |
05 -> BB02[1, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB05 -> BB06 from 1 to 1 | |
Synthesis: entry BB01 has input weight 100 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (6 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000662] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 0 0 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) IBC rare | |
BB02 [0097] 1 BB01 0 0 [003..00B) (return) IBC rare | |
BB03 [0098] 1 BB01 0 0 [00B..01C)-> BB06(0.5),BB04(0.5) ( cond ) IBC rare | |
BB04 [0099] 1 BB03 0 0 [01C..033)-> BB06(0.5),BB05(0.5) ( cond ) IBC rare | |
BB05 [0100] 1 BB04 0 0 [033..038)-> BB06(1) (always) IBC rare | |
BB06 [0101] 3 BB03,BB04,BB05 0 0 [038..04E) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0096] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0097] [003..00B) (return), preds={BB01} succs={} | |
------------ BB03 [0098] [00B..01C) -> BB06(0.5),BB04(0.5) (cond), preds={BB01} succs={BB04,BB06} | |
------------ BB04 [0099] [01C..033) -> BB06(0.5),BB05(0.5) (cond), preds={BB03} succs={BB05,BB06} | |
------------ BB05 [0100] [033..038) -> BB06(1) (always), preds={BB04} succs={BB06} | |
------------ BB06 [0101] [038..04E) (return), preds={BB03,BB04,BB05} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (6 profiled blocks, 0 unprofiled) | |
*************** Inline @[000662] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
[ 0] 0 (0x000) ldarg.1 | |
[ 1] 1 (0x001) brtrue.s | |
STMT00176 ( 0x000[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000667] ----------- * JTRUE void | |
[000666] ----------- \--* NE int | |
[000243] ----------- +--* LCL_VAR ref V21 loc17 | |
[000665] ----------- \--* CNS_INT ref null | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=011) of 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
[ 0] 11 (0x00b) ldtoken**** getSystemVAmd64PassStructInRegisterDescriptor(0x76086380 (System.RuntimeTypeHandle), ...) => | |
passedInRegisters = true | |
eightByteCount = 1 | |
eightByte #0 -- classification: IntegerReference, byteSize: 8, byteOffset: 0 | |
[ 1] 16 (0x010) call 060008F6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
[ 1] 21 (0x015) call 06000941 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Type.get_IsValueType: Recognized | |
[ 1] 26 (0x01a) brtrue.s | |
Folding operator with constant nodes into a constant: | |
[000673] ----------- * NE int | |
[000671] ----------- +--* CNS_INT int 1 | |
[000672] ----------- \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000673] ----------- * CNS_INT int 1 | |
The conditional jump becomes an unconditional jump to BB06 | |
setting likelihood of BB03 -> BB06 from 0.5 to 1 | |
impImportBlockPending for BB06 | |
Importing BB06 (PC=056) of 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
[ 0] 56 (0x038) ldarg.0 | |
[ 1] 57 (0x039) ldarg.1 | |
[ 2] 58 (0x03a) call 2B0002D2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 | |
Named Intrinsic System.Runtime.InteropServices.MemoryMarshal.GetArrayDataReference: Recognized | |
STMT00177 ( 0x038[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000677] ---X------- * NULLCHECK byte | |
[000675] ----------- \--* LCL_VAR ref V21 loc17 | |
[ 2] 63 (0x03f) stfld 0A0007A3 | |
STMT00178 ( ??? ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000681] nA-X------- * STOREIND byref | |
[000680] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000674] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000679] ---XG------ \--* INDEX_ADDR byref ubyte[] | |
[000676] ----------- +--* LCL_VAR ref V21 loc17 | |
[000678] ----------- \--* CNS_INT long 0 | |
[ 0] 68 (0x044) ldarg.0 | |
[ 1] 69 (0x045) ldarg.1 | |
[ 2] 70 (0x046) ldlen | |
[ 2] 71 (0x047) conv.i4 | |
[ 2] 72 (0x048) stfld 0A0008C8 | |
STMT00179 ( 0x044[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000686] nA-X------- * STOREIND int | |
[000685] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000682] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000684] ---X------- \--* ARR_LENGTH int | |
[000683] ----------- \--* LCL_VAR ref V21 loc17 | |
[ 0] 77 (0x04d) ret | |
Importing BB02 (PC=003) of 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
[ 0] 3 (0x003) ldarg.0 | |
[ 1] 4 (0x004) initobj 1B000070 | |
STMT00180 ( 0x003[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000689] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000688] ----------- \--* CNS_INT int 0 | |
[ 0] 10 (0x00a) ret | |
** Note: inlinee IL was partially imported -- imported 33 of 78 bytes of method IL | |
*************** Inline @[000662] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 0 0 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0097] 1 BB01 0 0 [003..00B) (return) i IBC rare | |
BB03 [0098] 1 BB01 0 0 [00B..01C)-> BB06(1) (always) i IBC rare | |
BB04 [0099] 0 0 0 [01C..033)-> BB06(0.5),BB05(0.5) ( cond ) IBC rare | |
BB05 [0100] 1 BB04 0 0 [033..038)-> BB06(1) (always) IBC rare | |
BB06 [0101] 3 BB03,BB04,BB05 0 0 [038..04E) (return) i IBC rare idxlen nullcheck | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0096] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0096] | |
STMT00176 ( 0x000[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000667] ----------- * JTRUE void | |
[000666] ----------- \--* NE int | |
[000243] ----------- +--* LCL_VAR ref V21 loc17 | |
[000665] ----------- \--* CNS_INT ref null | |
------------ BB02 [0097] [003..00B) (return), preds={BB01} succs={} | |
***** BB02 [0097] | |
STMT00180 ( 0x003[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000689] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000688] ----------- \--* CNS_INT int 0 | |
------------ BB03 [0098] [00B..01C) -> BB06(1) (always), preds={BB01} succs={BB06} | |
------------ BB04 [0099] [01C..033) -> BB06(0.5),BB05(0.5) (cond), preds={} succs={BB05,BB06} | |
------------ BB05 [0100] [033..038) -> BB06(1) (always), preds={BB04} succs={BB06} | |
------------ BB06 [0101] [038..04E) (return), preds={BB03,BB04,BB05} succs={} | |
***** BB06 [0101] | |
STMT00177 ( 0x038[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000677] ---X------- * NULLCHECK byte | |
[000675] ----------- \--* LCL_VAR ref V21 loc17 | |
***** BB06 [0101] | |
STMT00178 ( ??? ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000681] nA-X------- * STOREIND byref | |
[000680] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000674] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000679] ---XG------ \--* INDEX_ADDR byref ubyte[] | |
[000676] ----------- +--* LCL_VAR ref V21 loc17 | |
[000678] ----------- \--* CNS_INT long 0 | |
***** BB06 [0101] | |
STMT00179 ( 0x044[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000686] nA-X------- * STOREIND int | |
[000685] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000682] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000684] ---X------- \--* ARR_LENGTH int | |
[000683] ----------- \--* LCL_VAR ref V21 loc17 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (6 profiled blocks, 0 unprofiled) | |
*************** Inline @[000662] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000662] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000662] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000662] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000662] Starting PHASE Post-import | |
BB04 was not imported, marking as removed (0) | |
BB05 was not imported, marking as removed (1) | |
Renumbering the basic blocks for fgPostImportationCleanup | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 0 0 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0097] 1 BB01 0 0 [003..00B) (return) i IBC rare | |
BB03 [0098] 1 BB01 0 0 [00B..01C)-> BB06(1) (always) i IBC rare | |
BB06 [0101] 1 BB03 0 0 [038..04E) (return) i IBC rare idxlen nullcheck | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
Renumber BB06 to BB04 | |
*************** After renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 0 0 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0097] 1 BB01 0 0 [003..00B) (return) i IBC rare | |
BB03 [0098] 1 BB01 0 0 [00B..01C)-> BB04(1) (always) i IBC rare | |
BB04 [0101] 1 BB03 0 0 [038..04E) (return) i IBC rare idxlen nullcheck | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
New BlockSet epoch 2, # of blocks (including unused BB00): 5, bitset array size: 1 (short) | |
*************** Inline @[000662] Finishing PHASE Post-import | |
Trees after Post-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0096] 1 0 0 [000..003)-> BB03(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0097] 1 BB01 0 0 [003..00B) (return) i IBC rare | |
BB03 [0098] 1 BB01 0 0 [00B..01C)-> BB04(1) (always) i IBC rare | |
BB04 [0101] 1 BB03 0 0 [038..04E) (return) i IBC rare idxlen nullcheck | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0096] [000..003) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0096] | |
STMT00176 ( 0x000[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000667] ----------- * JTRUE void | |
[000666] ----------- \--* NE int | |
[000243] ----------- +--* LCL_VAR ref V21 loc17 | |
[000665] ----------- \--* CNS_INT ref null | |
------------ BB02 [0097] [003..00B) (return), preds={BB01} succs={} | |
***** BB02 [0097] | |
STMT00180 ( 0x003[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000689] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000688] ----------- \--* CNS_INT int 0 | |
------------ BB03 [0098] [00B..01C) -> BB04(1) (always), preds={BB01} succs={BB04} | |
------------ BB04 [0101] [038..04E) (return), preds={BB03} succs={} | |
***** BB04 [0101] | |
STMT00177 ( 0x038[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000677] ---X------- * NULLCHECK byte | |
[000675] ----------- \--* LCL_VAR ref V21 loc17 | |
***** BB04 [0101] | |
STMT00178 ( ??? ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000681] nA-X------- * STOREIND byref | |
[000680] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000674] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000679] ---XG------ \--* INDEX_ADDR byref ubyte[] | |
[000676] ----------- +--* LCL_VAR ref V21 loc17 | |
[000678] ----------- \--* CNS_INT long 0 | |
***** BB04 [0101] | |
STMT00179 ( 0x044[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000686] nA-X------- * STOREIND int | |
[000685] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000682] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000684] ---X------- \--* ARR_LENGTH int | |
[000683] ----------- \--* LCL_VAR ref V21 loc17 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (4 profiled blocks, 0 unprofiled) | |
----------- Statements (and blocks) added due to the inlining of call [000662] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB82 [0102] created. | |
BB27 previous predecessor was BB26, now is BB82 | |
BB36 previous predecessor was BB26, now is BB82 | |
setting likelihood of BB26 -> BB82 to 1 | |
Convert bbKind of BB84 to BBJ_ALWAYS to bottomBlock BB82 | |
setting likelihood of BB84 -> BB82 to 1 | |
Convert bbKind of BB86 to BBJ_ALWAYS to bottomBlock BB82 | |
setting likelihood of BB86 -> BB82 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB83 [0096] 1 BB26 0 0 [165..166)-> BB85(0.5),BB84(0.5) ( cond ) i IBC rare bwd | |
BB84 [0097] 1 BB83 0 0 [165..166)-> BB82(1) (always) i IBC rare bwd | |
BB85 [0098] 1 BB83 0 0 [165..166)-> BB86(1) (always) i IBC rare bwd | |
BB86 [0101] 1 BB85 0 0 [165..166)-> BB82(1) (always) i IBC rare idxlen nullcheck bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB83 [0096] [165..166) -> BB85(0.5),BB84(0.5) (cond), preds={BB26} succs={BB84,BB85} | |
***** BB83 [0096] | |
STMT00176 ( INL25 @ 0x000[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000667] ----------- * JTRUE void | |
[000666] ----------- \--* NE int | |
[000243] ----------- +--* LCL_VAR ref V21 loc17 | |
[000665] ----------- \--* CNS_INT ref null | |
------------ BB84 [0097] [165..166) -> BB82(1) (always), preds={BB83} succs={BB82} | |
***** BB84 [0097] | |
STMT00180 ( INL25 @ 0x003[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000689] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
[000688] ----------- \--* CNS_INT int 0 | |
------------ BB85 [0098] [165..166) -> BB86(1) (always), preds={BB83} succs={BB86} | |
------------ BB86 [0101] [165..166) -> BB82(1) (always), preds={BB85} succs={BB82} | |
***** BB86 [0101] | |
STMT00177 ( INL25 @ 0x038[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000677] ---X------- * NULLCHECK byte | |
[000675] ----------- \--* LCL_VAR ref V21 loc17 | |
***** BB86 [0101] | |
STMT00178 ( INL25 @ ??? ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000681] nA-X------- * STOREIND byref | |
[000680] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000674] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000679] ---XG------ \--* INDEX_ADDR byref ubyte[] | |
[000676] ----------- +--* LCL_VAR ref V21 loc17 | |
[000678] ----------- \--* CNS_INT long 0 | |
***** BB86 [0101] | |
STMT00179 ( INL25 @ 0x044[E-] ... ??? ) <- INL24 @ ??? <- INLRT @ 0x165[E-] | |
[000686] nA-X------- * STOREIND int | |
[000685] ----------- +--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000682] ----------- | \--* LCL_ADDR byref V60 tmp38 [+0] | |
[000684] ---X------- \--* ARR_LENGTH int | |
[000683] ----------- \--* LCL_VAR ref V21 loc17 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.Span`1[ubyte]:.ctor(ubyte[]):this (78 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Span`1[ubyte]:.ctor(ubyte[]):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000245] with [000663] | |
[000245] --C-------- * RET_EXPR struct(for [000244]) -> [000663] | |
Inserting the inline return expression | |
[000663] ----------- * LCL_VAR struct<System.Span`1, 16> V60 tmp38 | |
Expanding INLINE_CANDIDATE in statement STMT00076 in BB82: | |
STMT00076 ( ??? ... ??? ) | |
[000247] I-C-G------ * CALL int System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int (exactContextHnd=0x0x7f487dd1f178) | |
[000249] ----------- arg0 +--* LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
[000246] ----------- arg1 \--* CNS_INT int 1 | |
Argument #0: is a local var | |
[000249] ----------- * LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
Argument #1: is a constant or invariant | |
[000246] ----------- * CNS_INT int 1 | |
Folding operator with constant nodes into a constant: | |
[000691] ----------- * CAST int <- ubyte <- int | |
[000246] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000691] ----------- * CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int set to 0x0x7f487dd1f178: | |
Invoking compiler for the inlinee method System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int : | |
IL to import: | |
IL_0000 28 44 00 00 2b call 0x2B000044 | |
IL_0005 39 9c 00 00 00 brfalse 156 (IL_00a6) | |
IL_000a fe 1c 1f 00 00 1b sizeof 0x1B00001F | |
IL_0010 17 ldc.i4.1 | |
IL_0011 33 1e bne.un.s 30 (IL_0031) | |
IL_0013 02 ldarg.0 | |
IL_0014 28 3d 02 00 2b call 0x2B00023D | |
IL_0019 28 45 00 00 2b call 0x2B000045 | |
IL_001e 03 ldarg.1 | |
IL_001f 28 d9 02 00 2b call 0x2B0002D9 | |
IL_0024 0f 00 ldarga.s 0x0 | |
IL_0026 28 e9 03 00 0a call 0xA0003E9 | |
IL_002b 28 46 00 00 2b call 0x2B000046 | |
IL_0030 2a ret | |
IL_0031 fe 1c 1f 00 00 1b sizeof 0x1B00001F | |
IL_0037 18 ldc.i4.2 | |
IL_0038 33 1e bne.un.s 30 (IL_0058) | |
IL_003a 02 ldarg.0 | |
IL_003b 28 3d 02 00 2b call 0x2B00023D | |
IL_0040 28 47 00 00 2b call 0x2B000047 | |
IL_0045 03 ldarg.1 | |
IL_0046 28 db 02 00 2b call 0x2B0002DB | |
IL_004b 0f 00 ldarga.s 0x0 | |
IL_004d 28 e9 03 00 0a call 0xA0003E9 | |
IL_0052 28 49 00 00 2b call 0x2B000049 | |
IL_0057 2a ret | |
IL_0058 fe 1c 1f 00 00 1b sizeof 0x1B00001F | |
IL_005e 1a ldc.i4.4 | |
IL_005f 33 1e bne.un.s 30 (IL_007f) | |
IL_0061 02 ldarg.0 | |
IL_0062 28 3d 02 00 2b call 0x2B00023D | |
IL_0067 28 4a 00 00 2b call 0x2B00004A | |
IL_006c 03 ldarg.1 | |
IL_006d 28 dc 02 00 2b call 0x2B0002DC | |
IL_0072 0f 00 ldarga.s 0x0 | |
IL_0074 28 e9 03 00 0a call 0xA0003E9 | |
IL_0079 28 4b 00 00 2b call 0x2B00004B | |
IL_007e 2a ret | |
IL_007f fe 1c 1f 00 00 1b sizeof 0x1B00001F | |
IL_0085 1e ldc.i4.8 | |
IL_0086 33 1e bne.un.s 30 (IL_00a6) | |
IL_0088 02 ldarg.0 | |
IL_0089 28 3d 02 00 2b call 0x2B00023D | |
IL_008e 28 4c 00 00 2b call 0x2B00004C | |
IL_0093 03 ldarg.1 | |
IL_0094 28 de 02 00 2b call 0x2B0002DE | |
IL_0099 0f 00 ldarga.s 0x0 | |
IL_009b 28 e9 03 00 0a call 0xA0003E9 | |
IL_00a0 28 4e 00 00 2b call 0x2B00004E | |
IL_00a5 2a ret | |
IL_00a6 02 ldarg.0 | |
IL_00a7 28 3d 02 00 2b call 0x2B00023D | |
IL_00ac 03 ldarg.1 | |
IL_00ad 0f 00 ldarga.s 0x0 | |
IL_00af 28 e9 03 00 0a call 0xA0003E9 | |
IL_00b4 28 f5 02 00 2b call 0x2B0002F5 | |
IL_00b9 2a ret | |
INLINER impTokenLookupContextHandle for System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int is 0x0x7f487dd1f178. | |
*************** In compInitDebuggingInfo() for System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int | |
Named Intrinsic System.Runtime.CompilerServices.RuntimeHelpers.IsBitwiseEquatable: Not recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
Jump targets: | |
IL_0031 | |
IL_0058 | |
IL_007f | |
IL_00a6 | |
New Basic Block BB01 [0103] created. | |
BB01 [0103] [000..00A) | |
New Basic Block BB02 [0104] created. | |
BB02 [0104] [00A..013) | |
New Basic Block BB03 [0105] created. | |
BB03 [0105] [013..031) | |
New Basic Block BB04 [0106] created. | |
BB04 [0106] [031..03A) | |
New Basic Block BB05 [0107] created. | |
BB05 [0107] [03A..058) | |
New Basic Block BB06 [0108] created. | |
BB06 [0108] [058..061) | |
New Basic Block BB07 [0109] created. | |
BB07 [0109] [061..07F) | |
New Basic Block BB08 [0110] created. | |
BB08 [0110] [07F..088) | |
New Basic Block BB09 [0111] created. | |
BB09 [0111] [088..0A6) | |
New Basic Block BB10 [0112] created. | |
BB10 [0112] [0A6..0BA) | |
setting likelihood of BB01 -> BB10 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB04 to 0.5 | |
setting likelihood of BB02 -> BB03 to 0.5 | |
setting likelihood of BB04 -> BB06 to 0.5 | |
setting likelihood of BB04 -> BB05 to 0.5 | |
setting likelihood of BB06 -> BB08 to 0.5 | |
setting likelihood of BB06 -> BB07 to 0.5 | |
setting likelihood of BB08 -> BB10 to 0.5 | |
setting likelihood of BB08 -> BB09 to 0.5 | |
lvaGrabTemp returning 61 (V61 tmp39) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 100 [000..00A)-> BB10(0.5),BB02(0.5) ( cond ) | |
BB02 [0104] 1 BB01 100 [00A..013)-> BB04(0.5),BB03(0.5) ( cond ) | |
BB03 [0105] 1 BB02 100 [013..031) (return) | |
BB04 [0106] 1 BB02 100 [031..03A)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0107] 1 BB04 100 [03A..058) (return) | |
BB06 [0108] 1 BB04 100 [058..061)-> BB08(0.5),BB07(0.5) ( cond ) | |
BB07 [0109] 1 BB06 100 [061..07F) (return) | |
BB08 [0110] 1 BB06 100 [07F..088)-> BB10(0.5),BB09(0.5) ( cond ) | |
BB09 [0111] 1 BB08 100 [088..0A6) (return) | |
BB10 [0112] 2 BB01,BB08 100 [0A6..0BA) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000247] Starting PHASE Pre-import | |
*************** Inline @[000247] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 100 [000..00A)-> BB10(0.5),BB02(0.5) ( cond ) | |
BB02 [0104] 1 BB01 100 [00A..013)-> BB04(0.5),BB03(0.5) ( cond ) | |
BB03 [0105] 1 BB02 100 [013..031) (return) | |
BB04 [0106] 1 BB02 100 [031..03A)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0107] 1 BB04 100 [03A..058) (return) | |
BB06 [0108] 1 BB04 100 [058..061)-> BB08(0.5),BB07(0.5) ( cond ) | |
BB07 [0109] 1 BB06 100 [061..07F) (return) | |
BB08 [0110] 1 BB06 100 [07F..088)-> BB10(0.5),BB09(0.5) ( cond ) | |
BB09 [0111] 1 BB08 100 [088..0A6) (return) | |
BB10 [0112] 2 BB01,BB08 100 [0A6..0BA) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0103] [000..00A) -> BB10(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB10} | |
------------ BB02 [0104] [00A..013) -> BB04(0.5),BB03(0.5) (cond), preds={BB01} succs={BB03,BB04} | |
------------ BB03 [0105] [013..031) (return), preds={BB02} succs={} | |
------------ BB04 [0106] [031..03A) -> BB06(0.5),BB05(0.5) (cond), preds={BB02} succs={BB05,BB06} | |
------------ BB05 [0107] [03A..058) (return), preds={BB04} succs={} | |
------------ BB06 [0108] [058..061) -> BB08(0.5),BB07(0.5) (cond), preds={BB04} succs={BB07,BB08} | |
------------ BB07 [0109] [061..07F) (return), preds={BB06} succs={} | |
------------ BB08 [0110] [07F..088) -> BB10(0.5),BB09(0.5) (cond), preds={BB06} succs={BB09,BB10} | |
------------ BB09 [0111] [088..0A6) (return), preds={BB08} succs={} | |
------------ BB10 [0112] [0A6..0BA) (return), preds={BB01,BB08} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000247] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c4551100, data at 0x7f07c4551130) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB03 -> BB01: weight 0 | |
... adding known edge BB10 -> BB01: weight 0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 11, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB10 | |
... pseudo edge BB10 -> BB01 | |
... unknown edge BB02 -> BB04 | |
... unknown edge BB02 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... unknown edge BB04 -> BB06 | |
... unknown edge BB04 -> BB05 | |
Schema is missing non-tree edge BB05 -> BB01, will presume zero | |
... pseudo edge BB05 -> BB01 | |
... unknown edge BB06 -> BB08 | |
... unknown edge BB06 -> BB07 | |
Schema is missing non-tree edge BB07 -> BB01, will presume zero | |
... pseudo edge BB07 -> BB01 | |
... unknown edge BB08 -> BB09 | |
Schema is missing non-tree edge BB08 -> BB10, will presume zero | |
... known edge BB08 -> BB10 | |
Schema is missing non-tree edge BB09 -> BB01, will presume zero | |
... pseudo edge BB09 -> BB01 | |
... not solving because of the zero counts | |
... discarding profile count data: PGO data available, profile data was all zero | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 9] | |
01 -> BB02[1, 8] | |
02 -> BB04[3, 7] | |
03 -> BB06[5, 6] | |
04 -> BB08[7, 5] | |
05 -> BB10[9, 4] | |
06 -> BB09[8, 3] | |
07 -> BB07[6, 2] | |
08 -> BB05[4, 1] | |
09 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Synthesis: entry BB01 has input weight 100 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (10 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000247] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 0 0 [000..00A)-> BB10(0.5),BB02(0.5) ( cond ) IBC rare | |
BB02 [0104] 1 BB01 0 0 [00A..013)-> BB04(0.5),BB03(0.5) ( cond ) IBC rare | |
BB03 [0105] 1 BB02 0 0 [013..031) (return) IBC rare | |
BB04 [0106] 1 BB02 0 0 [031..03A)-> BB06(0.5),BB05(0.5) ( cond ) IBC rare | |
BB05 [0107] 1 BB04 0 0 [03A..058) (return) IBC rare | |
BB06 [0108] 1 BB04 0 0 [058..061)-> BB08(0.5),BB07(0.5) ( cond ) IBC rare | |
BB07 [0109] 1 BB06 0 0 [061..07F) (return) IBC rare | |
BB08 [0110] 1 BB06 0 0 [07F..088)-> BB10(0.5),BB09(0.5) ( cond ) IBC rare | |
BB09 [0111] 1 BB08 0 0 [088..0A6) (return) IBC rare | |
BB10 [0112] 2 BB01,BB08 0 0 [0A6..0BA) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0103] [000..00A) -> BB10(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB10} | |
------------ BB02 [0104] [00A..013) -> BB04(0.5),BB03(0.5) (cond), preds={BB01} succs={BB03,BB04} | |
------------ BB03 [0105] [013..031) (return), preds={BB02} succs={} | |
------------ BB04 [0106] [031..03A) -> BB06(0.5),BB05(0.5) (cond), preds={BB02} succs={BB05,BB06} | |
------------ BB05 [0107] [03A..058) (return), preds={BB04} succs={} | |
------------ BB06 [0108] [058..061) -> BB08(0.5),BB07(0.5) (cond), preds={BB04} succs={BB07,BB08} | |
------------ BB07 [0109] [061..07F) (return), preds={BB06} succs={} | |
------------ BB08 [0110] [07F..088) -> BB10(0.5),BB09(0.5) (cond), preds={BB06} succs={BB09,BB10} | |
------------ BB09 [0111] [088..0A6) (return), preds={BB08} succs={} | |
------------ BB10 [0112] [0A6..0BA) (return), preds={BB01,BB08} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (10 profiled blocks, 0 unprofiled) | |
*************** Inline @[000247] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
[ 0] 0 (0x000) call 2B000044 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Runtime.CompilerServices.RuntimeHelpers.IsBitwiseEquatable: Not recognized | |
CheckCanInline: fetching method info for inline candidate IsBitwiseEquatable -- context 0x7f48767cf950 | |
Method context: System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' calling 'System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00181 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000692] I-C-G------ * CALL int System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (exactContextHnd=0x0x7f48767cf950) | |
[ 1] 5 (0x005) brfalse | |
STMT00182 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000696] --C-------- * JTRUE void | |
[000695] --C-------- \--* EQ int | |
[000693] --C-------- +--* RET_EXPR int (for [000692]) | |
[000694] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB10 | |
Importing BB10 (PC=166) of 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
[ 0] 166 (0x0a6) ldarg.0 | |
lvaGrabTemp returning 62 (V62 tmp40) called for Inlining Arg. | |
[ 1] 167 (0x0a7) call 2B00023D | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 | |
Calling impNormStructVal on: | |
[000697] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
resulting tree: | |
[000697] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
CheckCanInline: fetching method info for inline candidate GetReference -- context 0x7f48767cf9a8 | |
Method context: System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' calling 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00183 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000698] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000697] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
[ 1] 172 (0x0ac) ldarg.1 | |
[ 2] 173 (0x0ad) ldarga.s 0 | |
[ 3] 175 (0x0af) call 0A0003E9 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
impIntrinsic: Expanding Span<T>.get_Length, T=System.Boolean, sizeof(T)=1 | |
with ptr-to-span | |
[000701] ----------- * LCL_ADDR byref V62 tmp40 [+0] | |
[ 3] 180 (0x0b4) call 2B0002F5 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate IndexOf -- context 0x7f487dd1f280 | |
Method context: System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' calling 'System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int' | |
INLINER: Marking System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int as NOINLINE because of too many il bytes | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'too many il bytes' | |
[ 1] 185 (0x0b9) ret | |
Inlinee Return expression (before normalization) => | |
[000704] --C-G------ * CALL int System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
[000699] --C-------- arg0 +--* RET_EXPR byref (for [000698]) | |
[000700] ----------- arg1 +--* CNS_INT int 1 | |
[000703] n---G------ arg2 \--* IND int | |
[000702] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000701] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
STMT00184 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000705] DAC-G------ * STORE_LCL_VAR int V61 tmp39 | |
[000704] --C-G------ \--* CALL int System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
[000699] --C-------- arg0 +--* RET_EXPR byref (for [000698]) | |
[000700] ----------- arg1 +--* CNS_INT int 1 | |
[000703] n---G------ arg2 \--* IND int | |
[000702] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000701] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
Inlinee Return expression (after normalization) => | |
[000706] ----------- * LCL_VAR int V61 tmp39 | |
Importing BB02 (PC=010) of 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
[ 0] 10 (0x00a) sizeof 1B00001F | |
[ 1] 16 (0x010) ldc.i4.1 1 | |
[ 2] 17 (0x011) bne.un.s | |
Folding operator with constant nodes into a constant: | |
[000709] N--------U- * NE int | |
[000707] ----------- +--* CNS_INT int 1 | |
[000708] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000709] ----------- * CNS_INT int 0 | |
The conditional jump becomes an unconditional jump to BB03 | |
setting likelihood of BB02 -> BB03 from 0.5 to 1 | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=019) of 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
[ 0] 19 (0x013) ldarg.0 | |
[ 1] 20 (0x014) call 2B00023D | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 | |
Calling impNormStructVal on: | |
[000710] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
resulting tree: | |
[000710] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
CheckCanInline: fetching method info for inline candidate GetReference -- context 0x7f48767cf9a8 | |
Method context: System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' calling 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00185 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000711] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000710] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
[ 1] 25 (0x019) call 2B000045 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is byref, structSize is 0 | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
[ 1] 30 (0x01e) ldarg.1 | |
[ 2] 31 (0x01f) call 2B0002D9 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
[ 2] 36 (0x024) ldarga.s 0 | |
[ 3] 38 (0x026) call 0A0003E9 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
Named Intrinsic System.Span`1.get_Length: Recognized | |
impIntrinsic: Expanding Span<T>.get_Length, T=System.Boolean, sizeof(T)=1 | |
with ptr-to-span | |
[000715] ----------- * LCL_ADDR byref V62 tmp40 [+0] | |
[ 3] 43 (0x02b) call 2B000046 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate IndexOfValueType -- context 0x7f487dd1f4a0 | |
Method context: System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' calling 'System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00186 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000718] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (exactContextHnd=0x0x7f487dd1f4a0) | |
[000712] --C-------- arg0 +--* RET_EXPR byref (for [000711]) | |
[000714] ----------- arg1 +--* CAST int <- ubyte <- int | |
[000713] ----------- | \--* CNS_INT int 1 | |
[000717] n---G------ arg2 \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
[ 1] 48 (0x030) ret | |
Inlinee Return expression (before normalization) => | |
[000719] --C-------- * RET_EXPR int (for [000718]) | |
STMT00187 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000720] DAC-------- * STORE_LCL_VAR int V61 tmp39 | |
[000719] --C-------- \--* RET_EXPR int (for [000718]) | |
Inlinee Return expression (after normalization) => | |
[000721] ----------- * LCL_VAR int V61 tmp39 | |
** Note: inlinee IL was partially imported -- imported 60 of 186 bytes of method IL | |
*************** Inline @[000247] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 0 0 [000..00A)-> BB10(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0104] 1 BB01 0 0 [00A..013)-> BB03(1) (always) i IBC rare | |
BB03 [0105] 1 BB02 0 0 [013..031) (return) i IBC rare | |
BB04 [0106] 0 0 0 [031..03A)-> BB06(0.5),BB05(0.5) ( cond ) IBC rare | |
BB05 [0107] 1 BB04 0 0 [03A..058) (return) IBC rare | |
BB06 [0108] 1 BB04 0 0 [058..061)-> BB08(0.5),BB07(0.5) ( cond ) IBC rare | |
BB07 [0109] 1 BB06 0 0 [061..07F) (return) IBC rare | |
BB08 [0110] 1 BB06 0 0 [07F..088)-> BB10(0.5),BB09(0.5) ( cond ) IBC rare | |
BB09 [0111] 1 BB08 0 0 [088..0A6) (return) IBC rare | |
BB10 [0112] 2 BB01,BB08 0 0 [0A6..0BA) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0103] [000..00A) -> BB10(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB10} | |
***** BB01 [0103] | |
STMT00181 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000692] I-C-G------ * CALL int System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (exactContextHnd=0x0x7f48767cf950) | |
***** BB01 [0103] | |
STMT00182 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000696] --C-------- * JTRUE void | |
[000695] --C-------- \--* EQ int | |
[000693] --C-------- +--* RET_EXPR int (for [000692]) | |
[000694] ----------- \--* CNS_INT int 0 | |
------------ BB02 [0104] [00A..013) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0105] [013..031) (return), preds={BB02} succs={} | |
***** BB03 [0105] | |
STMT00185 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000711] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000710] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB03 [0105] | |
STMT00186 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000718] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (exactContextHnd=0x0x7f487dd1f4a0) | |
[000712] --C-------- arg0 +--* RET_EXPR byref (for [000711]) | |
[000714] ----------- arg1 +--* CAST int <- ubyte <- int | |
[000713] ----------- | \--* CNS_INT int 1 | |
[000717] n---G------ arg2 \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
***** BB03 [0105] | |
STMT00187 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000720] DAC-------- * STORE_LCL_VAR int V61 tmp39 | |
[000719] --C-------- \--* RET_EXPR int (for [000718]) | |
------------ BB04 [0106] [031..03A) -> BB06(0.5),BB05(0.5) (cond), preds={} succs={BB05,BB06} | |
------------ BB05 [0107] [03A..058) (return), preds={BB04} succs={} | |
------------ BB06 [0108] [058..061) -> BB08(0.5),BB07(0.5) (cond), preds={BB04} succs={BB07,BB08} | |
------------ BB07 [0109] [061..07F) (return), preds={BB06} succs={} | |
------------ BB08 [0110] [07F..088) -> BB10(0.5),BB09(0.5) (cond), preds={BB06} succs={BB09,BB10} | |
------------ BB09 [0111] [088..0A6) (return), preds={BB08} succs={} | |
------------ BB10 [0112] [0A6..0BA) (return), preds={BB01,BB08} succs={} | |
***** BB10 [0112] | |
STMT00183 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000698] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000697] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB10 [0112] | |
STMT00184 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000705] DAC-G------ * STORE_LCL_VAR int V61 tmp39 | |
[000704] --C-G------ \--* CALL int System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
[000699] --C-------- arg0 +--* RET_EXPR byref (for [000698]) | |
[000700] ----------- arg1 +--* CNS_INT int 1 | |
[000703] n---G------ arg2 \--* IND int | |
[000702] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000701] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (10 profiled blocks, 0 unprofiled) | |
*************** Inline @[000247] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000247] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000247] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000247] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000247] Starting PHASE Post-import | |
BB04 was not imported, marking as removed (0) | |
BB05 was not imported, marking as removed (1) | |
BB06 was not imported, marking as removed (2) | |
BB07 was not imported, marking as removed (3) | |
BB08 was not imported, marking as removed (4) | |
BB09 was not imported, marking as removed (5) | |
Renumbering the basic blocks for fgPostImportationCleanup | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 0 0 [000..00A)-> BB10(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0104] 1 BB01 0 0 [00A..013)-> BB03(1) (always) i IBC rare | |
BB03 [0105] 1 BB02 0 0 [013..031) (return) i IBC rare | |
BB10 [0112] 1 BB01 0 0 [0A6..0BA) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
Renumber BB10 to BB04 | |
*************** After renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 0 0 [000..00A)-> BB04(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0104] 1 BB01 0 0 [00A..013)-> BB03(1) (always) i IBC rare | |
BB03 [0105] 1 BB02 0 0 [013..031) (return) i IBC rare | |
BB04 [0112] 1 BB01 0 0 [0A6..0BA) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
New BlockSet epoch 2, # of blocks (including unused BB00): 5, bitset array size: 1 (short) | |
*************** Inline @[000247] Finishing PHASE Post-import | |
Trees after Post-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0103] 1 0 0 [000..00A)-> BB04(0.5),BB02(0.5) ( cond ) i IBC rare | |
BB02 [0104] 1 BB01 0 0 [00A..013)-> BB03(1) (always) i IBC rare | |
BB03 [0105] 1 BB02 0 0 [013..031) (return) i IBC rare | |
BB04 [0112] 1 BB01 0 0 [0A6..0BA) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0103] [000..00A) -> BB04(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB04} | |
***** BB01 [0103] | |
STMT00181 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000692] I-C-G------ * CALL int System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (exactContextHnd=0x0x7f48767cf950) | |
***** BB01 [0103] | |
STMT00182 ( 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000696] --C-------- * JTRUE void | |
[000695] --C-------- \--* EQ int | |
[000693] --C-------- +--* RET_EXPR int (for [000692]) | |
[000694] ----------- \--* CNS_INT int 0 | |
------------ BB02 [0104] [00A..013) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0105] [013..031) (return), preds={BB02} succs={} | |
***** BB03 [0105] | |
STMT00185 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000711] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000710] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB03 [0105] | |
STMT00186 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000718] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (exactContextHnd=0x0x7f487dd1f4a0) | |
[000712] --C-------- arg0 +--* RET_EXPR byref (for [000711]) | |
[000714] ----------- arg1 +--* CAST int <- ubyte <- int | |
[000713] ----------- | \--* CNS_INT int 1 | |
[000717] n---G------ arg2 \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
***** BB03 [0105] | |
STMT00187 ( 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000720] DAC-------- * STORE_LCL_VAR int V61 tmp39 | |
[000719] --C-------- \--* RET_EXPR int (for [000718]) | |
------------ BB04 [0112] [0A6..0BA) (return), preds={BB01} succs={} | |
***** BB04 [0112] | |
STMT00183 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000698] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000697] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB04 [0112] | |
STMT00184 ( 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000705] DAC-G------ * STORE_LCL_VAR int V61 tmp39 | |
[000704] --C-G------ \--* CALL int System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
[000699] --C-------- arg0 +--* RET_EXPR byref (for [000698]) | |
[000700] ----------- arg1 +--* CNS_INT int 1 | |
[000703] n---G------ arg2 \--* IND int | |
[000702] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000701] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (4 profiled blocks, 0 unprofiled) | |
----------- Statements (and blocks) added due to the inlining of call [000247] ----------- | |
Arguments setup: | |
STMT00188 ( ??? ... ??? ) | |
[000722] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
[000249] ----------- \--* LCL_VAR struct<System.Span`1, 16> V37 tmp15 | |
Inlinee method body:New Basic Block BB87 [0113] created. | |
BB27 previous predecessor was BB82, now is BB87 | |
BB36 previous predecessor was BB82, now is BB87 | |
setting likelihood of BB82 -> BB87 to 1 | |
Convert bbKind of BB90 to BBJ_ALWAYS to bottomBlock BB87 | |
setting likelihood of BB90 -> BB87 to 1 | |
Convert bbKind of BB91 to BBJ_ALWAYS to bottomBlock BB87 | |
setting likelihood of BB91 -> BB87 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB88 [0103] 1 BB82 0 0 [000..000)-> BB91(0.5),BB89(0.5) ( cond ) i IBC rare internal bwd | |
BB89 [0104] 1 BB88 0 0 [000..000)-> BB90(1) (always) i IBC rare internal bwd | |
BB90 [0105] 1 BB89 0 0 [000..000)-> BB87(1) (always) i IBC rare internal bwd | |
BB91 [0112] 1 BB88 0 0 [000..000)-> BB87(1) (always) i IBC rare internal bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB88 [0103] [000..000) -> BB91(0.5),BB89(0.5) (cond), preds={BB82} succs={BB89,BB91} | |
***** BB88 [0103] | |
STMT00181 ( INL26 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000692] I-C-G------ * CALL int System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (exactContextHnd=0x0x7f48767cf950) | |
***** BB88 [0103] | |
STMT00182 ( INL26 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000696] --C-------- * JTRUE void | |
[000695] --C-------- \--* EQ int | |
[000693] --C-------- +--* RET_EXPR int (for [000692]) | |
[000694] ----------- \--* CNS_INT int 0 | |
------------ BB89 [0104] [000..000) -> BB90(1) (always), preds={BB88} succs={BB90} | |
------------ BB90 [0105] [000..000) -> BB87(1) (always), preds={BB89} succs={BB87} | |
***** BB90 [0105] | |
STMT00185 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000711] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000710] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB90 [0105] | |
STMT00186 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000718] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (exactContextHnd=0x0x7f487dd1f4a0) | |
[000712] --C-------- arg0 +--* RET_EXPR byref (for [000711]) | |
[000714] ----------- arg1 +--* CAST int <- ubyte <- int | |
[000713] ----------- | \--* CNS_INT int 1 | |
[000717] n---G------ arg2 \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
***** BB90 [0105] | |
STMT00187 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000720] DAC-------- * STORE_LCL_VAR int V61 tmp39 | |
[000719] --C-------- \--* RET_EXPR int (for [000718]) | |
------------ BB91 [0112] [000..000) -> BB87(1) (always), preds={BB88} succs={BB87} | |
***** BB91 [0112] | |
STMT00183 ( INL26 @ 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000698] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000697] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
***** BB91 [0112] | |
STMT00184 ( INL26 @ 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000705] DAC-G------ * STORE_LCL_VAR int V61 tmp39 | |
[000704] --C-G------ \--* CALL int System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int | |
[000699] --C-------- arg0 +--* RET_EXPR byref (for [000698]) | |
[000700] ----------- arg1 +--* CNS_INT int 1 | |
[000703] n---G------ arg2 \--* IND int | |
[000702] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000701] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int (186 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.MemoryExtensions:IndexOf[ubyte](System.Span`1[ubyte],ubyte):int' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement STMT00181 in BB88: | |
STMT00181 ( INL26 @ 0x000[E-] ... ??? ) <- INLRT @ ??? | |
[000692] I-C-G------ * CALL int System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (exactContextHnd=0x0x7f48767cf950) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte set to 0x0x7f48767cf950: | |
Invoking compiler for the inlinee method System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte : | |
IL to import: | |
IL_0000 17 ldc.i4.1 | |
IL_0001 2a ret | |
INLINER impTokenLookupContextHandle for System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte is 0x0x7f48767cf950. | |
*************** In compInitDebuggingInfo() for System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte | |
Jump targets: | |
none | |
New Basic Block BB01 [0114] created. | |
BB01 [0114] [000..002) | |
Basic block list for 'System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0114] 1 1 [000..002) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000692] Starting PHASE Pre-import | |
*************** Inline @[000692] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0114] 1 1 [000..002) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0114] [000..002) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000692] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000692] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0114] 1 0 [000..002) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0114] [000..002) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000692] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte' | |
[ 0] 0 (0x000) ldc.i4.1 1 | |
[ 1] 1 (0x001) ret | |
Inlinee Return expression (before normalization) => | |
[000724] ----------- * CNS_INT int 1 | |
Inlinee Return expression (after normalization) => | |
[000725] ----------- * CAST int <- ubyte <- int | |
[000724] ----------- \--* CNS_INT int 1 | |
** Note: inlinee IL was partially imported -- imported 0 of 2 bytes of method IL | |
*************** Inline @[000692] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0114] 1 0 [000..002) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0114] [000..002) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000692] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000692] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000692] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000692] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000692] Starting PHASE Post-import | |
*************** Inline @[000692] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000692] ----------- | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte (2 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Runtime.CompilerServices.RuntimeHelpers:IsBitwiseEquatable[ubyte]():ubyte' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Folding operator with constant nodes into a constant: | |
[000725] ----------- * CAST int <- ubyte <- int | |
[000724] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000725] ----------- * CNS_INT int 1 | |
Replacing the return expression placeholder [000693] with [000725] | |
[000693] --C-------- * RET_EXPR int (for [000692]) -> [000725] | |
Inserting the inline return expression | |
[000725] ----------- * CNS_INT int 1 | |
Folding operator with constant nodes into a constant: | |
[000695] --C-------- * EQ int | |
[000725] ----------- +--* CNS_INT int 1 | |
[000694] ----------- \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000695] ----------- * CNS_INT int 0 | |
... found foldable jtrue at [000696] in BB88 | |
setting likelihood of BB88 -> BB89 from 0.5 to 1 | |
Expanding INLINE_CANDIDATE in statement STMT00185 in BB90: | |
STMT00185 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000711] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000710] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
Argument #0: is a local var has caller local ref | |
[000710] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref set to 0x0x7f48767cf9a8: | |
Invoking compiler for the inlinee method System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref : | |
IL to import: | |
IL_0000 0f 00 ldarga.s 0x0 | |
IL_0002 7b d8 16 00 0a ldfld 0xA0016D8 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref is 0x0x7f48767cf9a8. | |
*************** In compInitDebuggingInfo() for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
Jump targets: | |
none | |
New Basic Block BB01 [0115] created. | |
BB01 [0115] [000..008) | |
Basic block list for 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0115] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000711] Starting PHASE Pre-import | |
*************** Inline @[000711] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0115] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0115] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000711] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000711] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0115] 1 0 [000..008) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0115] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000711] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
[ 0] 0 (0x000) ldarga.s 0 | |
lvaGrabTemp returning 63 (V63 tmp41) called for Inlining Arg. | |
[ 1] 2 (0x002) ldfld 0A0016D8 | |
[ 1] 7 (0x007) ret | |
Inlinee Return expression (before normalization) => | |
[000729] n---------- * IND byref | |
[000728] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- \--* LCL_ADDR byref V63 tmp41 [+0] | |
Inlinee Return expression (after normalization) => | |
[000729] n---------- * IND byref | |
[000728] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- \--* LCL_ADDR byref V63 tmp41 [+0] | |
** Note: inlinee IL was partially imported -- imported 0 of 8 bytes of method IL | |
*************** Inline @[000711] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0115] 1 0 [000..008) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0115] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000711] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000711] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000711] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000711] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000711] Starting PHASE Post-import | |
*************** Inline @[000711] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000711] ----------- | |
Arguments setup: | |
STMT00189 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000730] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V63 tmp41 | |
[000710] ----------- \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (8 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000712] with [000729] | |
[000712] --C-------- * RET_EXPR byref (for [000711]) -> [000729] | |
Inserting the inline return expression | |
[000729] n---------- * IND byref | |
[000728] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- \--* LCL_ADDR byref V63 tmp41 [+0] | |
Folding operator with constant nodes into a constant: | |
[000714] ----------- * CAST int <- ubyte <- int | |
[000713] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000714] ----------- * CNS_INT int 1 | |
Expanding INLINE_CANDIDATE in statement STMT00186 in BB90: | |
STMT00186 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000718] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (exactContextHnd=0x0x7f487dd1f4a0) | |
[000729] n---------- arg0 +--* IND byref | |
[000728] ----------- | \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- | \--* LCL_ADDR byref V63 tmp41 [+0] | |
[000714] ----------- arg1 +--* CNS_INT int 1 | |
[000717] n---G------ arg2 \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
Argument #0: has caller local ref | |
[000729] n---------- * IND byref | |
[000728] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- \--* LCL_ADDR byref V63 tmp41 [+0] | |
Argument #1: is a constant or invariant | |
[000714] ----------- * CNS_INT int 1 | |
Argument #2: has global refs has caller local ref | |
[000717] n---G------ * IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
Folding operator with constant nodes into a constant: | |
[000732] ----------- * CAST int <- ubyte <- int | |
[000714] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000732] ----------- * CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int set to 0x0x7f487dd1f4a0: | |
Invoking compiler for the inlinee method System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 04 ldarg.2 | |
IL_0003 28 83 04 00 2b call 0x2B000483 | |
IL_0008 2a ret | |
INLINER impTokenLookupContextHandle for System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int is 0x0x7f487dd1f4a0. | |
*************** In compInitDebuggingInfo() for System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int | |
Jump targets: | |
none | |
New Basic Block BB01 [0116] created. | |
BB01 [0116] [000..009) | |
Basic block list for 'System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0116] 1 1 [000..009) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000718] Starting PHASE Pre-import | |
*************** Inline @[000718] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0116] 1 1 [000..009) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0116] [000..009) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000718] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000718] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0116] 1 0 [000..009) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0116] [000..009) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000718] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 64 (V64 tmp42) called for Inlining Arg. | |
Marked V64 as a single def temp | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) ldarg.2 | |
lvaGrabTemp returning 65 (V65 tmp43) called for Inlining Arg. | |
Marked V65 as a single def temp | |
[ 3] 3 (0x003) call 2B000483 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate IndexOfValueType -- context 0x7f487df3f010 | |
Method context: System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int' calling 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00190 ( 0x000[E-] ... ??? ) <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000736] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int (exactContextHnd=0x0x7f487df3f010) | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000734] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
[ 1] 8 (0x008) ret | |
Inlinee Return expression (before normalization) => | |
[000737] --C-------- * RET_EXPR int (for [000736]) | |
Inlinee Return expression (after normalization) => | |
[000737] --C-------- * RET_EXPR int (for [000736]) | |
*************** Inline @[000718] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0116] 1 0 [000..009) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0116] [000..009) (return), preds={} succs={} | |
***** BB01 [0116] | |
STMT00190 ( 0x000[E-] ... ??? ) <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000736] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int (exactContextHnd=0x0x7f487df3f010) | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000734] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000718] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000718] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000718] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000718] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000718] Starting PHASE Post-import | |
*************** Inline @[000718] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000718] ----------- | |
Arguments setup: | |
STMT00191 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000738] DA--------- * STORE_LCL_VAR byref V64 tmp42 | |
[000729] n---------- \--* IND byref | |
[000728] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000727] ----------- \--* LCL_ADDR byref V63 tmp41 [+0] | |
STMT00192 ( INL26 @ 0x013[E-] ... ??? ) <- INLRT @ ??? | |
[000739] DA--G------ * STORE_LCL_VAR int V65 tmp43 | |
[000717] n---G------ \--* IND int | |
[000716] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_length | |
[000715] ----------- \--* LCL_ADDR byref V62 tmp40 [+0] | |
Inlinee method body: | |
STMT00190 ( INL29 @ 0x000[E-] ... ??? ) <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000736] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int (exactContextHnd=0x0x7f487df3f010) | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000734] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int (9 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.SpanHelpers:IndexOfValueType[ubyte](byref,ubyte,int):int' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement STMT00190 in BB90: | |
STMT00190 ( INL29 @ 0x000[E-] ... ??? ) <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000736] I-C-G------ * CALL int System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int (exactContextHnd=0x0x7f487df3f010) | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000734] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
Argument #0: is a local var | |
[000733] ----------- * LCL_VAR byref V64 tmp42 | |
Argument #1: is a constant or invariant | |
[000734] ----------- * CNS_INT int 1 | |
Argument #2: is a local var | |
[000735] ----------- * LCL_VAR int V65 tmp43 | |
Folding operator with constant nodes into a constant: | |
[000741] ----------- * CAST int <- ubyte <- int | |
[000734] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000741] ----------- * CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int set to 0x0x7f487df3f010: | |
Invoking compiler for the inlinee method System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int : | |
IL to import: | |
IL_0000 28 ca 1c 00 06 call 0x6001CCA | |
IL_0005 2c 64 brfalse.s 100 (IL_006b) | |
IL_0007 d0 1f 00 00 1b ldtoken 0x1B00001F | |
IL_000c 28 f6 08 00 06 call 0x60008F6 | |
IL_0011 d0 1e 01 00 02 ldtoken 0x200011E | |
IL_0016 28 f6 08 00 06 call 0x60008F6 | |
IL_001b 28 aa 09 00 06 call 0x60009AA | |
IL_0020 2c 49 brfalse.s 73 (IL_006b) | |
IL_0022 03 ldarg.1 | |
IL_0023 28 76 04 00 2b call 0x2B000476 | |
IL_0028 2c 41 brfalse.s 65 (IL_006b) | |
IL_002a d0 25 00 00 1b ldtoken 0x1B000025 | |
IL_002f 28 f6 08 00 06 call 0x60008F6 | |
IL_0034 d0 bb 02 00 1b ldtoken 0x1B0002BB | |
IL_0039 28 f6 08 00 06 call 0x60008F6 | |
IL_003e 28 aa 09 00 06 call 0x60009AA | |
IL_0043 2d 13 brtrue.s 19 (IL_0058) | |
IL_0045 02 ldarg.0 | |
IL_0046 28 f4 00 00 2b call 0x2B0000F4 | |
IL_004b 03 ldarg.1 | |
IL_004c 28 85 04 00 2b call 0x2B000485 | |
IL_0051 04 ldarg.2 | |
IL_0052 28 cd 1c 00 06 call 0x6001CCD | |
IL_0057 2a ret | |
IL_0058 02 ldarg.0 | |
IL_0059 28 f4 00 00 2b call 0x2B0000F4 | |
IL_005e 03 ldarg.1 | |
IL_005f 28 85 04 00 2b call 0x2B000485 | |
IL_0064 04 ldarg.2 | |
IL_0065 28 cc 1c 00 06 call 0x6001CCC | |
IL_006a 2a ret | |
IL_006b 02 ldarg.0 | |
IL_006c 03 ldarg.1 | |
IL_006d 04 ldarg.2 | |
IL_006e 28 86 04 00 2b call 0x2B000486 | |
IL_0073 2a ret | |
INLINER impTokenLookupContextHandle for System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int is 0x0x7f487df3f010. | |
*************** In compInitDebuggingInfo() for System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.op_Equality: Recognized | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
Named Intrinsic System.Type.op_Equality: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.As: Recognized | |
Named Intrinsic System.Runtime.CompilerServices.Unsafe.BitCast: Recognized | |
Jump targets: | |
IL_0058 | |
IL_006b | |
New Basic Block BB01 [0117] created. | |
BB01 [0117] [000..007) | |
New Basic Block BB02 [0118] created. | |
BB02 [0118] [007..022) | |
New Basic Block BB03 [0119] created. | |
BB03 [0119] [022..02A) | |
New Basic Block BB04 [0120] created. | |
BB04 [0120] [02A..045) | |
New Basic Block BB05 [0121] created. | |
BB05 [0121] [045..058) | |
New Basic Block BB06 [0122] created. | |
BB06 [0122] [058..06B) | |
New Basic Block BB07 [0123] created. | |
BB07 [0123] [06B..074) | |
setting likelihood of BB01 -> BB07 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB07 to 0.5 | |
setting likelihood of BB02 -> BB03 to 0.5 | |
setting likelihood of BB03 -> BB07 to 0.5 | |
setting likelihood of BB03 -> BB04 to 0.5 | |
setting likelihood of BB04 -> BB06 to 0.5 | |
setting likelihood of BB04 -> BB05 to 0.5 | |
lvaGrabTemp returning 66 (V66 tmp44) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 100 [000..007)-> BB07(0.5),BB02(0.5) ( cond ) | |
BB02 [0118] 1 BB01 100 [007..022)-> BB07(0.5),BB03(0.5) ( cond ) | |
BB03 [0119] 1 BB02 100 [022..02A)-> BB07(0.5),BB04(0.5) ( cond ) | |
BB04 [0120] 1 BB03 100 [02A..045)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0121] 1 BB04 100 [045..058) (return) | |
BB06 [0122] 1 BB04 100 [058..06B) (return) | |
BB07 [0123] 3 BB01,BB02,BB03 100 [06B..074) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000736] Starting PHASE Pre-import | |
*************** Inline @[000736] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 100 [000..007)-> BB07(0.5),BB02(0.5) ( cond ) | |
BB02 [0118] 1 BB01 100 [007..022)-> BB07(0.5),BB03(0.5) ( cond ) | |
BB03 [0119] 1 BB02 100 [022..02A)-> BB07(0.5),BB04(0.5) ( cond ) | |
BB04 [0120] 1 BB03 100 [02A..045)-> BB06(0.5),BB05(0.5) ( cond ) | |
BB05 [0121] 1 BB04 100 [045..058) (return) | |
BB06 [0122] 1 BB04 100 [058..06B) (return) | |
BB07 [0123] 3 BB01,BB02,BB03 100 [06B..074) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0117] [000..007) -> BB07(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB07} | |
------------ BB02 [0118] [007..022) -> BB07(0.5),BB03(0.5) (cond), preds={BB01} succs={BB03,BB07} | |
------------ BB03 [0119] [022..02A) -> BB07(0.5),BB04(0.5) (cond), preds={BB02} succs={BB04,BB07} | |
------------ BB04 [0120] [02A..045) -> BB06(0.5),BB05(0.5) (cond), preds={BB03} succs={BB05,BB06} | |
------------ BB05 [0121] [045..058) (return), preds={BB04} succs={} | |
------------ BB06 [0122] [058..06B) (return), preds={BB04} succs={} | |
------------ BB07 [0123] [06B..074) (return), preds={BB01,BB02,BB03} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000736] Starting PHASE Profile incorporation | |
Have Static PGO: 3 schema records (schema at 0x7f07c4668208, data at 0x7f07c4668200) | |
Profile summary: 7 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB07: weight 92790 | |
... adding known edge BB07 -> BB01: weight 92634 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 8, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB07 | |
... pseudo edge BB07 -> BB01 | |
... unknown edge BB02 -> BB03 | |
... known edge BB02 -> BB07 | |
... unknown edge BB03 -> BB04 | |
Schema is missing non-tree edge BB03 -> BB07, will presume zero | |
... known edge BB03 -> BB07 | |
... unknown edge BB04 -> BB06 | |
... unknown edge BB04 -> BB05 | |
Schema is missing non-tree edge BB05 -> BB01, will presume zero | |
... pseudo edge BB05 -> BB01 | |
Schema is missing non-tree edge BB06 -> BB01, will presume zero | |
... pseudo edge BB06 -> BB01 | |
Solver: 7 blocks, 7 unknown; 11 edges, 6 unknown, 3 zero | |
Pass [1]: 7 unknown blocks, 6 unknown edges | |
BB07: 1 incoming unknown, 0 outgoing unknown | |
BB07: all outgoing edge weights known, summing... | |
BB07 -> BB01 has weight 92634 | |
BB07: all outgoing edge weights known, sum is 92634 | |
BB01 -> BB07: target block weight and all other incoming edge weights known, so weight is -156 | |
.... weight was negative, setting it to 92.634 | |
BB06: 1 incoming unknown, 0 outgoing unknown | |
BB06: all outgoing edge weights known, summing... | |
BB06 -> BB01 has weight 0 | |
BB06: all outgoing edge weights known, sum is 0 | |
BB04 -> BB06: target block weight and all other incoming edge weights known, so weight is 0 | |
BB05: 1 incoming unknown, 0 outgoing unknown | |
BB05: all outgoing edge weights known, summing... | |
BB05 -> BB01 has weight 0 | |
BB05: all outgoing edge weights known, sum is 0 | |
BB04 -> BB05: target block weight and all other incoming edge weights known, so weight is 0 | |
BB04: 1 incoming unknown, 0 outgoing unknown | |
BB04: all outgoing edge weights known, summing... | |
BB04 -> BB05 has weight 0 | |
BB04 -> BB06 has weight 0 | |
BB04: all outgoing edge weights known, sum is 0 | |
BB03 -> BB04: target block weight and all other incoming edge weights known, so weight is 0 | |
BB03: 1 incoming unknown, 0 outgoing unknown | |
BB03: all outgoing edge weights known, summing... | |
BB03 -> BB07 has weight 0 | |
BB03 -> BB04 has weight 0 | |
BB03: all outgoing edge weights known, sum is 0 | |
BB02 -> BB03: target block weight and all other incoming edge weights known, so weight is 0 | |
BB02: 1 incoming unknown, 0 outgoing unknown | |
BB02: all outgoing edge weights known, summing... | |
BB02 -> BB07 has weight 92790 | |
BB02 -> BB03 has weight 0 | |
BB02: all outgoing edge weights known, sum is 92790 | |
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 92790 | |
BB01: 0 incoming unknown, 0 outgoing unknown | |
BB01: all incoming edge weights known, summing... | |
BB06 -> BB01 has weight 0 | |
BB05 -> BB01 has weight 0 | |
BB07 -> BB01 has weight 92634 | |
BB01: all incoming edge weights known, sum is 92634 | |
Solver: converged in 1 passes | |
Normalizing successor likelihoods with factor 1/92882.63 | |
Setting likelihood of BB01 -> BB07 to 0.0009973231 (pgo) | |
setting likelihood of BB01 -> BB07 from 0.5 to 0.0009973231 | |
Setting likelihood of BB01 -> BB02 to 0.9990027 (pgo) | |
setting likelihood of BB01 -> BB02 from 0.5 to 0.9990027 | |
Normalizing successor likelihoods with factor 1/92790 | |
Setting likelihood of BB02 -> BB07 to 1 (pgo) | |
setting likelihood of BB02 -> BB07 from 0.5 to 1 | |
Setting likelihood of BB02 -> BB03 to 0 (pgo) | |
setting likelihood of BB02 -> BB03 from 0.5 to 0 | |
BB03 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB03 -> BB04 to 0.5 (heur) | |
setting likelihood of BB03 -> BB04 from 0.5 to 0.5 | |
Setting likelihood of BB03 -> BB07 to 0.5 (heur) | |
setting likelihood of BB03 -> BB07 from 0.5 to 0.5 | |
BB04 has zero weight , setting outgoing likelihoods heuristically | |
Setting likelihood of BB04 -> BB05 to 0.5 (heur) | |
setting likelihood of BB04 -> BB05 from 0.5 to 0.5 | |
Setting likelihood of BB04 -> BB06 to 0.5 (heur) | |
setting likelihood of BB04 -> BB06 from 0.5 to 0.5 | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 6] | |
01 -> BB02[1, 5] | |
02 -> BB03[2, 4] | |
03 -> BB07[6, 3] | |
04 -> BB04[3, 2] | |
05 -> BB06[5, 1] | |
06 -> BB05[4, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
Repairing likelihoods in BB03; zero weight block | |
setting likelihood of BB03 -> BB07 from 0.5 to 0.2 | |
setting likelihood of BB03 -> BB04 from 0.5 to 0.8 | |
Repairing likelihoods in BB04; zero weight block | |
setting likelihood of BB04 -> BB06 from 0.5 to 0.48 | |
setting likelihood of BB04 -> BB05 from 0.5 to 0.52 | |
Synthesis: entry BB01 has input weight 92634 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (7 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 92634 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000736] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 0 0 [000..007)-> BB07(0.000997),BB02(0.999) ( cond ) IBC rare | |
BB02 [0118] 1 BB01 0 0 [007..022)-> BB07(1),BB03(0) ( cond ) IBC rare | |
BB03 [0119] 1 BB02 0 0 [022..02A)-> BB07(0.2),BB04(0.8) ( cond ) IBC rare | |
BB04 [0120] 1 BB03 0 0 [02A..045)-> BB06(0.48),BB05(0.52) ( cond ) IBC rare | |
BB05 [0121] 1 BB04 0 0 [045..058) (return) IBC rare | |
BB06 [0122] 1 BB04 0 0 [058..06B) (return) IBC rare | |
BB07 [0123] 3 BB01,BB02,BB03 0 0 [06B..074) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0117] [000..007) -> BB07(0.0009973231),BB02(0.9990027) (cond), preds={} succs={BB02,BB07} | |
------------ BB02 [0118] [007..022) -> BB07(1),BB03(0) (cond), preds={BB01} succs={BB03,BB07} | |
------------ BB03 [0119] [022..02A) -> BB07(0.2),BB04(0.8) (cond), preds={BB02} succs={BB04,BB07} | |
------------ BB04 [0120] [02A..045) -> BB06(0.48),BB05(0.52) (cond), preds={BB03} succs={BB05,BB06} | |
------------ BB05 [0121] [045..058) (return), preds={BB04} succs={} | |
------------ BB06 [0122] [058..06B) (return), preds={BB04} succs={} | |
------------ BB07 [0123] [06B..074) (return), preds={BB01,BB02,BB03} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (7 profiled blocks, 0 unprofiled) | |
*************** Inline @[000736] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
[ 0] 0 (0x000) call 06001CCA | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
CheckCanInline: fetching method info for inline candidate get_PackedIndexOfIsSupported -- context 0x7f48766e5009 | |
Class context: System.PackedSpanHelpers | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' for 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' calling 'System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte' | |
INLINER: during 'impMarkInlineCandidate' result 'CheckCanInline Success' reason 'CheckCanInline Success' | |
STMT00193 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000742] I-C-G------ * CALL int System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (exactContextHnd=0x0x7f48766e5009) | |
[ 1] 5 (0x005) brfalse.s | |
STMT00194 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000746] --C-------- * JTRUE void | |
[000745] --C-------- \--* EQ int | |
[000743] --C-------- +--* RET_EXPR int (for [000742]) | |
[000744] ----------- \--* CNS_INT int 0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB07 | |
Importing BB07 (PC=107) of 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
[ 0] 107 (0x06b) ldarg.0 | |
[ 1] 108 (0x06c) ldarg.1 | |
[ 2] 109 (0x06d) ldarg.2 | |
[ 3] 110 (0x06e) call 2B000486 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' calling 'System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[ 1] 115 (0x073) ret | |
Inlinee Return expression (before normalization) => | |
[000748] --C-G------ * CALL int System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000747] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
STMT00195 ( 0x06B[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000749] DAC-G------ * STORE_LCL_VAR int V66 tmp44 | |
[000748] --C-G------ \--* CALL int System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000747] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
Inlinee Return expression (after normalization) => | |
[000750] ----------- * LCL_VAR int V66 tmp44 | |
Importing BB02 (PC=007) of 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
[ 0] 7 (0x007) ldtoken**** getSystemVAmd64PassStructInRegisterDescriptor(0x76086380 (System.RuntimeTypeHandle), ...) => | |
passedInRegisters = true | |
eightByteCount = 1 | |
eightByte #0 -- classification: IntegerReference, byteSize: 8, byteOffset: 0 | |
[ 1] 12 (0x00c) call 060008F6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
[ 1] 17 (0x011) ldtoken**** getSystemVAmd64PassStructInRegisterDescriptor(0x76086380 (System.RuntimeTypeHandle), ...) => | |
passedInRegisters = true | |
eightByteCount = 1 | |
eightByte #0 -- classification: IntegerReference, byteSize: 8, byteOffset: 0 | |
[ 2] 22 (0x016) call 060008F6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
Named Intrinsic System.Type.GetTypeFromHandle: Recognized | |
[ 2] 27 (0x01b) call 060009AA | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Type.op_Equality: Recognized | |
Importing Type.op_*Equality intrinsic | |
Folding call to Type:op_Equality to a simple compare via EQ | |
Optimizing compare of types-from-handles to instead compare handles | |
Asking runtime to compare 0x7f4875f129a8 (System.Byte) and 0x7f4875f14910 (System.Int16) for equality | |
Runtime reports comparison is known at jit time: 0 | |
[ 1] 32 (0x020) brfalse.s | |
Folding operator with constant nodes into a constant: | |
[000760] ----------- * EQ int | |
[000758] ----------- +--* CNS_INT int 0 | |
[000759] ----------- \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000760] ----------- * CNS_INT int 1 | |
The conditional jump becomes an unconditional jump to BB07 | |
setting likelihood of BB02 -> BB07 from 1 to 1 | |
impImportBlockPending for BB07 | |
** Note: inlinee IL was partially imported -- imported 16 of 116 bytes of method IL | |
*************** Inline @[000736] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 0 0 [000..007)-> BB07(0.000997),BB02(0.999) ( cond ) i IBC rare | |
BB02 [0118] 1 BB01 0 0 [007..022)-> BB07(1) (always) i IBC rare | |
BB03 [0119] 0 0 0 [022..02A)-> BB07(0.2),BB04(0.8) ( cond ) IBC rare | |
BB04 [0120] 1 BB03 0 0 [02A..045)-> BB06(0.48),BB05(0.52) ( cond ) IBC rare | |
BB05 [0121] 1 BB04 0 0 [045..058) (return) IBC rare | |
BB06 [0122] 1 BB04 0 0 [058..06B) (return) IBC rare | |
BB07 [0123] 3 BB01,BB02,BB03 0 0 [06B..074) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0117] [000..007) -> BB07(0.0009973231),BB02(0.9990027) (cond), preds={} succs={BB02,BB07} | |
***** BB01 [0117] | |
STMT00193 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000742] I-C-G------ * CALL int System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (exactContextHnd=0x0x7f48766e5009) | |
***** BB01 [0117] | |
STMT00194 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000746] --C-------- * JTRUE void | |
[000745] --C-------- \--* EQ int | |
[000743] --C-------- +--* RET_EXPR int (for [000742]) | |
[000744] ----------- \--* CNS_INT int 0 | |
------------ BB02 [0118] [007..022) -> BB07(1) (always), preds={BB01} succs={BB07} | |
------------ BB03 [0119] [022..02A) -> BB07(0.2),BB04(0.8) (cond), preds={} succs={BB04,BB07} | |
------------ BB04 [0120] [02A..045) -> BB06(0.48),BB05(0.52) (cond), preds={BB03} succs={BB05,BB06} | |
------------ BB05 [0121] [045..058) (return), preds={BB04} succs={} | |
------------ BB06 [0122] [058..06B) (return), preds={BB04} succs={} | |
------------ BB07 [0123] [06B..074) (return), preds={BB01,BB02,BB03} succs={} | |
***** BB07 [0123] | |
STMT00195 ( 0x06B[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000749] DAC-G------ * STORE_LCL_VAR int V66 tmp44 | |
[000748] --C-G------ \--* CALL int System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000747] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (7 profiled blocks, 0 unprofiled) | |
*************** Inline @[000736] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000736] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000736] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000736] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000736] Starting PHASE Post-import | |
BB03 was not imported, marking as removed (0) | |
BB04 was not imported, marking as removed (1) | |
BB05 was not imported, marking as removed (2) | |
BB06 was not imported, marking as removed (3) | |
Renumbering the basic blocks for fgPostImportationCleanup | |
*************** Before renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 0 0 [000..007)-> BB07(0.000997),BB02(0.999) ( cond ) i IBC rare | |
BB02 [0118] 1 BB01 0 0 [007..022)-> BB07(1) (always) i IBC rare | |
BB07 [0123] 2 BB01,BB02 0 0 [06B..074) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
Renumber BB07 to BB03 | |
*************** After renumbering the basic blocks | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 0 0 [000..007)-> BB03(0.000997),BB02(0.999) ( cond ) i IBC rare | |
BB02 [0118] 1 BB01 0 0 [007..022)-> BB03(1) (always) i IBC rare | |
BB03 [0123] 2 BB01,BB02 0 0 [06B..074) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB07..BB14 [090..0E5), Finally at BB15..BB17 [0E5..0F1) | |
New BlockSet epoch 2, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
*************** Inline @[000736] Finishing PHASE Post-import | |
Trees after Post-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0117] 1 0 0 [000..007)-> BB03(0.000997),BB02(0.999) ( cond ) i IBC rare | |
BB02 [0118] 1 BB01 0 0 [007..022)-> BB03(1) (always) i IBC rare | |
BB03 [0123] 2 BB01,BB02 0 0 [06B..074) (return) i IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0117] [000..007) -> BB03(0.0009973231),BB02(0.9990027) (cond), preds={} succs={BB02,BB03} | |
***** BB01 [0117] | |
STMT00193 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000742] I-C-G------ * CALL int System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (exactContextHnd=0x0x7f48766e5009) | |
***** BB01 [0117] | |
STMT00194 ( 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000746] --C-------- * JTRUE void | |
[000745] --C-------- \--* EQ int | |
[000743] --C-------- +--* RET_EXPR int (for [000742]) | |
[000744] ----------- \--* CNS_INT int 0 | |
------------ BB02 [0118] [007..022) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0123] [06B..074) (return), preds={BB01,BB02} succs={} | |
***** BB03 [0123] | |
STMT00195 ( 0x06B[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000749] DAC-G------ * STORE_LCL_VAR int V66 tmp44 | |
[000748] --C-G------ \--* CALL int System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000747] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
----------- Statements (and blocks) added due to the inlining of call [000736] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB92 [0124] created. | |
BB87 previous predecessor was BB90, now is BB92 | |
setting likelihood of BB92 -> BB87 from 1 to 1 | |
setting likelihood of BB90 -> BB92 to 1 | |
Convert bbKind of BB95 to BBJ_ALWAYS to bottomBlock BB92 | |
setting likelihood of BB95 -> BB92 to 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB93 [0117] 1 BB90 0 0 [000..000)-> BB95(0.000997),BB94(0.999) ( cond ) i IBC rare internal bwd | |
BB94 [0118] 1 BB93 0 0 [000..000)-> BB95(1) (always) i IBC rare internal bwd | |
BB95 [0123] 2 BB93,BB94 0 0 [000..000)-> BB92(1) (always) i IBC rare internal bwd | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB93 [0117] [000..000) -> BB95(0.0009973231),BB94(0.9990027) (cond), preds={BB90} succs={BB94,BB95} | |
***** BB93 [0117] | |
STMT00193 ( INL30 @ 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000742] I-C-G------ * CALL int System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (exactContextHnd=0x0x7f48766e5009) | |
***** BB93 [0117] | |
STMT00194 ( INL30 @ 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000746] --C-------- * JTRUE void | |
[000745] --C-------- \--* EQ int | |
[000743] --C-------- +--* RET_EXPR int (for [000742]) | |
[000744] ----------- \--* CNS_INT int 0 | |
------------ BB94 [0118] [000..000) -> BB95(1) (always), preds={BB93} succs={BB95} | |
------------ BB95 [0123] [000..000) -> BB92(1) (always), preds={BB93,BB94} succs={BB92} | |
***** BB95 [0123] | |
STMT00195 ( INL30 @ 0x06B[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000749] DAC-G------ * STORE_LCL_VAR int V66 tmp44 | |
[000748] --C-G------ \--* CALL int System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int | |
[000733] ----------- arg0 +--* LCL_VAR byref V64 tmp42 | |
[000747] ----------- arg1 +--* CNS_INT int 1 | |
[000735] ----------- arg2 \--* LCL_VAR int V65 tmp43 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int (116 IL bytes) (depth 3) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.SpanHelpers:IndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement STMT00193 in BB93: | |
STMT00193 ( INL30 @ 0x000[E-] ... ??? ) <- INL29 @ 0x000[E-] <- INL26 @ 0x013[E-] <- INLRT @ ??? | |
[000742] I-C-G------ * CALL int System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (exactContextHnd=0x0x7f48766e5009) | |
INLINER: inlineInfo.tokenLookupContextHandle for System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte set to 0x0x7f48766e5009: | |
Invoking compiler for the inlinee method System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte : | |
IL to import: | |
IL_0000 28 b8 61 00 06 call 0x60061B8 | |
IL_0005 2a ret | |
INLINER impTokenLookupContextHandle for System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte is 0x0x7f48766e5009. | |
*************** In compInitDebuggingInfo() for System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte | |
Named Intrinsic System.Runtime.Intrinsics.X86.Sse2.get_IsSupported: Notify VM instruction set (SSE2) must be supported. | |
Notify VM instruction set (AVX) must be supported. | |
Recognized | |
Jump targets: | |
none | |
New Basic Block BB01 [0125] created. | |
BB01 [0125] [000..006) | |
Basic block list for 'System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0125] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000742] Starting PHASE Pre-import | |
*************** Inline @[000742] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0125] 1 1 [000..006) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0125] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000742] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000742] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0125] 1 0 [000..006) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0125] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000742] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte' | |
[ 0] 0 (0x000) call 060061B8 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ubyte, structSize is 0 | |
Named Intrinsic System.Runtime.Intrinsics.X86.Sse2.get_IsSupported: Recognized | |
[ 1] 5 (0x005) ret | |
Inlinee Return expression (before normalization) => | |
[000762] ----------- * CNS_INT int 1 | |
Inlinee Return expression (after normalization) => | |
[000763] ----------- * CAST int <- ubyte <- int | |
[000762] ----------- \--* CNS_INT int 1 | |
** Note: inlinee IL was partially imported -- imported 0 of 6 bytes of method IL | |
*************** Inline @[000742] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0125] 1 0 [000..006) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0125] [000..006) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000742] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000742] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000742] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000742] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000742] Starting PHASE Post-import | |
*************** Inline @[000742] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000742] ----------- | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte (6 IL bytes) (depth 4) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.PackedSpanHelpers:get_PackedIndexOfIsSupported():ubyte' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Folding operator with constant nodes into a constant: | |
[000763] ----------- * CAST int <- ubyte <- int | |
[000762] ----------- \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000763] ----------- * CNS_INT int 1 | |
Replacing the return expression placeholder [000743] with [000763] | |
[000743] --C-------- * RET_EXPR int (for [000742]) -> [000763] | |
Inserting the inline return expression | |
[000763] ----------- * CNS_INT int 1 | |
Folding operator with constant nodes into a constant: | |
[000745] --C-------- * EQ int | |
[000763] ----------- +--* CNS_INT int 1 | |
[000744] ----------- \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000745] ----------- * CNS_INT int 0 | |
... found foldable jtrue at [000746] in BB93 | |
setting likelihood of BB93 -> BB94 from 0.9990027 to 1 | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.SpanHelpers:NonPackedIndexOfValueType[ubyte,System.SpanHelpers+DontNegate`1[ubyte]](byref,ubyte,int):int' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
Replacing the return expression placeholder [000719] with [000750] | |
[000719] --C-------- * RET_EXPR int (for [000718]) -> [000737] | |
Inserting the inline return expression | |
[000750] ----------- * LCL_VAR int V66 tmp44 | |
Expanding INLINE_CANDIDATE in statement STMT00183 in BB91: | |
STMT00183 ( INL26 @ 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000698] I-C-G------ * CALL byref System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (exactContextHnd=0x0x7f48767cf9a8) | |
[000697] ----------- arg0 \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
Argument #0: is a local var has caller local ref | |
[000697] ----------- * LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref set to 0x0x7f48767cf9a8: | |
Invoking compiler for the inlinee method System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref : | |
IL to import: | |
IL_0000 0f 00 ldarga.s 0x0 | |
IL_0002 7b d8 16 00 0a ldfld 0xA0016D8 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref is 0x0x7f48767cf9a8. | |
*************** In compInitDebuggingInfo() for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref | |
Jump targets: | |
none | |
New Basic Block BB01 [0126] created. | |
BB01 [0126] [000..008) | |
Basic block list for 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0126] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000698] Starting PHASE Pre-import | |
*************** Inline @[000698] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0126] 1 1 [000..008) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0126] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000698] Starting PHASE Profile incorporation | |
BBOPT set, but no profile data available (hr=80004001) | |
Computing inlinee profile scale: | |
... no callee profile data, will use non-pgo weight to scale | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000698] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0126] 1 0 [000..008) (return) rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0126] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000698] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
[ 0] 0 (0x000) ldarga.s 0 | |
lvaGrabTemp returning 67 (V67 tmp45) called for Inlining Arg. | |
[ 1] 2 (0x002) ldfld 0A0016D8 | |
[ 1] 7 (0x007) ret | |
Inlinee Return expression (before normalization) => | |
[000767] n---------- * IND byref | |
[000766] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000765] ----------- \--* LCL_ADDR byref V67 tmp45 [+0] | |
Inlinee Return expression (after normalization) => | |
[000767] n---------- * IND byref | |
[000766] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000765] ----------- \--* LCL_ADDR byref V67 tmp45 [+0] | |
** Note: inlinee IL was partially imported -- imported 0 of 8 bytes of method IL | |
*************** Inline @[000698] Finishing PHASE Importation | |
Trees after Importation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0126] 1 0 [000..008) (return) i rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0126] [000..008) (return), preds={} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
No blocks were profiled, so nothing to check | |
*************** Inline @[000698] Starting PHASE Expand patchpoints | |
-- no patchpoints to transform | |
*************** Inline @[000698] Finishing PHASE Expand patchpoints [no changes] | |
*************** Inline @[000698] Starting PHASE Indirect call transform | |
-- no candidates to transform | |
*************** Inline @[000698] Finishing PHASE Indirect call transform [no changes] | |
*************** Inline @[000698] Starting PHASE Post-import | |
*************** Inline @[000698] Finishing PHASE Post-import [no changes] | |
----------- Statements (and blocks) added due to the inlining of call [000698] ----------- | |
Arguments setup: | |
STMT00196 ( INL26 @ 0x0A6[E-] ... ??? ) <- INLRT @ ??? | |
[000768] DA--------- * STORE_LCL_VAR struct<System.Span`1, 16> V67 tmp45 | |
[000697] ----------- \--* LCL_VAR struct<System.Span`1, 16> V62 tmp40 | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref (8 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.Runtime.InteropServices.MemoryMarshal:GetReference[ubyte](System.Span`1[ubyte]):byref' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'too many il bytes' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int' | |
INLINER: Marking System.SpanHelpers:IndexOf[ubyte](byref,ubyte,int):int as NOINLINE because of too many il bytes | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this callee' reason 'too many il bytes' | |
Replacing the return expression placeholder [000699] with [000767] | |
[000699] --C-------- * RET_EXPR byref (for [000698]) -> [000767] | |
Inserting the inline return expression | |
[000767] n---------- * IND byref | |
[000766] ----------- \--* FIELD_ADDR byref System.Span`1[ubyte]:_reference | |
[000765] ----------- \--* LCL_ADDR byref V67 tmp45 [+0] | |
Replacing the return expression placeholder [000250] with [000721] | |
[000250] --C-------- * RET_EXPR int (for [000247]) -> [000721] | |
Inserting the inline return expression | |
[000721] ----------- * LCL_VAR int V61 tmp39 | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' for 'System.Text.Json.JsonHelpers:TraverseGraphWithTopologicalSort[System.__Canon](System.__Canon,System.Func`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):System.__Canon[]' calling 'n/a' | |
INLINER: during 'fgNoteNonInlineCandidate' result 'failed this call site' reason 'target is helper' | |
Expanding INLINE_CANDIDATE in statement STMT00078 in BB27: | |
STMT00078 ( 0x175[E-] ... 0x178 ) | |
[000256] I-C-G------ * CALL nullcheck void System.Collections.Generic.Queue`1[int]:Enqueue(int):this (exactContextHnd=0x0x7f487dd15f41) | |
[000254] ----------- this +--* LCL_VAR ref V07 loc3 | |
[000255] ----------- arg1 \--* LCL_VAR int V20 loc16 | |
thisArg: is a local var | |
[000254] ----------- * LCL_VAR ref V07 loc3 | |
Argument #1: is a local var | |
[000255] ----------- * LCL_VAR int V20 loc16 | |
INLINER: inlineInfo.tokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Enqueue(int):this set to 0x0x7f487dd15f41: | |
Invoking compiler for the inlinee method System.Collections.Generic.Queue`1[int]:Enqueue(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0006 02 ldarg.0 | |
IL_0007 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_000c 8e ldlen | |
IL_000d 69 conv.i4 | |
IL_000e 33 0e bne.un.s 14 (IL_001e) | |
IL_0010 02 ldarg.0 | |
IL_0011 02 ldarg.0 | |
IL_0012 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0017 17 ldc.i4.1 | |
IL_0018 58 add | |
IL_0019 28 77 1c 00 0a call 0xA001C77 | |
IL_001e 02 ldarg.0 | |
IL_001f 7b 72 1c 00 0a ldfld 0xA001C72 | |
IL_0024 02 ldarg.0 | |
IL_0025 7b 74 1c 00 0a ldfld 0xA001C74 | |
IL_002a 03 ldarg.1 | |
IL_002b a4 31 00 00 1b stelem 0x1B000031 | |
IL_0030 02 ldarg.0 | |
IL_0031 02 ldarg.0 | |
IL_0032 7c 74 1c 00 0a ldflda 0xA001C74 | |
IL_0037 28 78 1c 00 0a call 0xA001C78 | |
IL_003c 02 ldarg.0 | |
IL_003d 02 ldarg.0 | |
IL_003e 7b 73 1c 00 0a ldfld 0xA001C73 | |
IL_0043 17 ldc.i4.1 | |
IL_0044 58 add | |
IL_0045 7d 73 1c 00 0a stfld 0xA001C73 | |
IL_004a 02 ldarg.0 | |
IL_004b 02 ldarg.0 | |
IL_004c 7b 76 1c 00 0a ldfld 0xA001C76 | |
IL_0051 17 ldc.i4.1 | |
IL_0052 58 add | |
IL_0053 7d 76 1c 00 0a stfld 0xA001C76 | |
IL_0058 2a ret | |
INLINER impTokenLookupContextHandle for System.Collections.Generic.Queue`1[int]:Enqueue(int):this is 0x0x7f487dd15f41. | |
*************** In compInitDebuggingInfo() for System.Collections.Generic.Queue`1[int]:Enqueue(int):this | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for System.Collections.Generic.Queue`1[int]:Enqueue(int):this | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 7 : state 119 [ ldlen ] | |
weight= 2 : state 93 [ conv.i4 ] | |
weight= 12 : state 51 [ bne.un.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 65 : state 141 [ stelem ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 17 : state 110 [ ldflda ] | |
weight= 79 : state 40 [ call ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-12 : state 76 [ add ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
10 ldfld or stfld over arguments which are structs. Multiplier increased to 1. | |
Inline candidate has arg that feeds range check. Multiplier increased to 2. | |
Inline candidate has 3 binary expressions with constants. Multiplier increased to 3.5. | |
Inline candidate callsite is in a loop. Multiplier increased to 6.5. | |
Caller has 101 locals. Multiplier decreased to 5.85889. | |
calleeNativeSizeEstimate=673 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=5.85889 | |
threshold=673 | |
Native estimate for function size is within threshold for inlining 67.3 <= 67.3 (multiplier = 5.85889) | |
Jump targets: | |
IL_001e | |
New Basic Block BB01 [0127] created. | |
BB01 [0127] [000..010) | |
New Basic Block BB02 [0128] created. | |
BB02 [0128] [010..01E) | |
New Basic Block BB03 [0129] created. | |
BB03 [0129] [01E..059) | |
setting likelihood of BB01 -> BB03 to 0.5 | |
setting likelihood of BB01 -> BB02 to 0.5 | |
setting likelihood of BB02 -> BB03 to 1 | |
Basic block list for 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0127] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0128] 1 BB01 100 [010..01E)-> BB03(1) (always) | |
BB03 [0129] 2 BB01,BB02 100 [01E..059) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Inline @[000256] Starting PHASE Pre-import | |
*************** Inline @[000256] Finishing PHASE Pre-import | |
Trees after Pre-import | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0127] 1 100 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) | |
BB02 [0128] 1 BB01 100 [010..01E)-> BB03(1) (always) | |
BB03 [0129] 2 BB01,BB02 100 [01E..059) (return) | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0127] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0128] [010..01E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0129] [01E..059) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** Inline @[000256] Starting PHASE Profile incorporation | |
Have Dynamic PGO: 2 schema records (schema at 0x7f07c46058e0, data at 0x7f07c4605910) | |
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 method profiles, 0 other records | |
Reconstructing block counts from sparse edge instrumentation | |
... adding known edge BB02 -> BB03: weight 0 | |
... adding known edge BB03 -> BB01: weight 0 | |
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short) | |
... unknown edge BB01 -> BB02 | |
... unknown edge BB01 -> BB03 | |
... pseudo edge BB03 -> BB01 | |
... known edge BB02 -> BB03 | |
... not solving because of the zero counts | |
... discarding profile count data: PGO data available, profile data was all zero | |
repairingRepairing profile... | |
Identifying loops in DFS tree with following reverse post order: | |
RPO -> BB [pre, post] | |
00 -> BB01[0, 2] | |
01 -> BB02[1, 1] | |
02 -> BB03[2, 0] | |
Flow graph has no cycles; skipping identification of natural loops | |
Repairing inconsistent or missing edge likelihoods | |
setting likelihood of BB02 -> BB03 from 1 to 1 | |
Synthesis: entry BB01 has input weight 100 | |
Synthesis: exception weight 1e-05 | |
Computing block weights | |
Synthesis solver: flow graph has 0 improper loop headers | |
converged at iteration 0 rel residual inf eigenvalue 0 | |
Checking Profile Weights (flags:0x14) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
Computing inlinee profile scale: | |
... zero call site count; scale will be 0.0 | |
call site count 0 callee entry count 100 scale 0 | |
Scaling inlinee blocks | |
*************** Inline @[000256] Finishing PHASE Profile incorporation | |
Trees after Profile incorporation | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight IBC [IL range] [jump] [EH region] [flags] | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0127] 1 0 0 [000..010)-> BB03(0.5),BB02(0.5) ( cond ) IBC rare | |
BB02 [0128] 1 BB01 0 0 [010..01E)-> BB03(1) (always) IBC rare | |
BB03 [0129] 2 BB01,BB02 0 0 [01E..059) (return) IBC rare | |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [0127] [000..010) -> BB03(0.5),BB02(0.5) (cond), preds={} succs={BB02,BB03} | |
------------ BB02 [0128] [010..01E) -> BB03(1) (always), preds={BB01} succs={BB03} | |
------------ BB03 [0129] [01E..059) (return), preds={BB01,BB02} succs={} | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Checking Profile Weights (flags:0xc) | |
Profile is self-consistent (3 profiled blocks, 0 unprofiled) | |
*************** Inline @[000256] Starting PHASE Importation | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'System.Collections.Generic.Queue`1[int]:Enqueue(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A001C73 | |
[ 1] 6 (0x006) ldarg.0 | |
[ 2] 7 (0x007) ldfld 0A001C72 | |
[ 2] 12 (0x00c) ldlen | |
[ 2] 13 (0x00d) conv.i4 | |
[ 2] 14 (0x00e) bne.un.s | |
STMT00197 ( 0x000[E-] ... ??? ) <- INLRT @ 0x175[E-] | |
[000777] ---XG------ * JTRUE void | |
[000776] N--XG----U- \--* NE int | |
[000771] n--XG------ +--* IND int | |
[000770] ---X------- | \--* FIELD_ADDR byref System |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment