Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Created April 30, 2024 02:10
Show Gist options
  • Save AndyAyersMS/5c161009b027e4d146edb5032a526487 to your computer and use it in GitHub Desktop.
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.
****** 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