Skip to content

Instantly share code, notes, and snippets.

@AndyAyersMS
Created May 20, 2022 18:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndyAyersMS/f236bed055897393e321b4d1925a7f5c to your computer and use it in GitHub Desktop.
Save AndyAyersMS/f236bed055897393e321b4d1925a7f5c to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
****** START compiling Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference (MethodHash=29af777d)
Generating code for Windows 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: optimized using dynamic profile data
IL to import:
IL_0000 02 ldarg.0
IL_0001 75 52 00 00 02 isinst 0x2000052
IL_0006 0a stloc.0
IL_0007 06 ldloc.0
IL_0008 2c 0d brfalse.s 13 (IL_0017)
IL_000a 06 ldloc.0
IL_000b 28 eb 00 00 06 call 0x60000EB
IL_0010 16 ldc.i4.0
IL_0011 73 04 01 00 06 newobj 0x6000104
IL_0016 2a ret
IL_0017 02 ldarg.0
IL_0018 2d 0c brtrue.s 12 (IL_0026)
IL_001a 28 d8 07 00 06 call 0x60007D8
IL_001f 16 ldc.i4.0
IL_0020 73 04 01 00 06 newobj 0x6000104
IL_0025 2a ret
IL_0026 02 ldarg.0
IL_0027 6f f9 00 00 0a callvirt 0xA0000F9
IL_002c 10 01 starg.s 0x1
IL_002e 03 ldarg.1
IL_002f 6f fa 00 00 0a callvirt 0xA0000FA
IL_0034 39 84 00 00 00 brfalse 132 (IL_00bd)
IL_0039 02 ldarg.0
IL_003a 75 49 00 00 01 isinst 0x1000049
IL_003f 2c 7c brfalse.s 124 (IL_00bd)
IL_0041 02 ldarg.0
IL_0042 75 cd 00 00 01 isinst 0x10000CD
IL_0047 2d 74 brtrue.s 116 (IL_00bd)
IL_0049 73 ce 06 00 06 newobj 0x60006CE
IL_004e 0d stloc.3
IL_004f 02 ldarg.0
IL_0050 74 29 00 00 01 castclass 0x1000029
IL_0055 6f 13 00 00 0a callvirt 0xA000013
IL_005a 13 04 stloc.s 0x4
IL_005c 2b 28 br.s 40 (IL_0086)
IL_005e 11 04 ldloc.s 0x4
IL_0060 6f 11 00 00 0a callvirt 0xA000011
IL_0065 13 05 stloc.s 0x5
IL_0067 11 05 ldloc.s 0x5
IL_0069 28 56 00 00 06 call 0x6000056
IL_006e 13 06 stloc.s 0x6
IL_0070 09 ldloc.3
IL_0071 11 06 ldloc.s 0x6
IL_0073 6f d3 06 00 06 callvirt 0x60006D3
IL_0078 de 0c leave.s 12 (IL_0086)
IL_007a 11 06 ldloc.s 0x6
IL_007c 2c 07 brfalse.s 7 (IL_0085)
IL_007e 11 06 ldloc.s 0x6
IL_0080 6f 0d 00 00 0a callvirt 0xA00000D
IL_0085 dc endfinally
IL_0086 11 04 ldloc.s 0x4
IL_0088 6f 0e 00 00 0a callvirt 0xA00000E
IL_008d 2d cf brtrue.s -49 (IL_005e)
IL_008f de 15 leave.s 21 (IL_00a6)
IL_0091 11 04 ldloc.s 0x4
IL_0093 75 27 00 00 01 isinst 0x1000027
IL_0098 13 07 stloc.s 0x7
IL_009a 11 07 ldloc.s 0x7
IL_009c 2c 07 brfalse.s 7 (IL_00a5)
IL_009e 11 07 ldloc.s 0x7
IL_00a0 6f 0d 00 00 0a callvirt 0xA00000D
IL_00a5 dc endfinally
IL_00a6 09 ldloc.3
IL_00a7 28 74 07 00 06 call 0x6000774
IL_00ac 13 08 stloc.s 0x8
IL_00ae dd e1 03 00 00 leave 993 (IL_0494)
IL_00b3 09 ldloc.3
IL_00b4 2c 06 brfalse.s 6 (IL_00bc)
IL_00b6 09 ldloc.3
IL_00b7 6f 0d 00 00 0a callvirt 0xA00000D
IL_00bc dc endfinally
IL_00bd 02 ldarg.0
IL_00be 75 6b 00 00 02 isinst 0x200006B
IL_00c3 0b stloc.1
IL_00c4 07 ldloc.1
IL_00c5 2c 14 brfalse.s 20 (IL_00db)
IL_00c7 7e 2e 00 00 04 ldsfld 0x400002E
IL_00cc 07 ldloc.1
IL_00cd 6f fb 00 00 0a callvirt 0xA0000FB
IL_00d2 2d 07 brtrue.s 7 (IL_00db)
IL_00d4 07 ldloc.1
IL_00d5 28 a7 09 00 06 call 0x60009A7
IL_00da 2a ret
IL_00db 03 ldarg.1
IL_00dc 28 fc 00 00 0a call 0xA0000FC
IL_00e1 0c stloc.2
IL_00e2 08 ldloc.2
IL_00e3 17 ldc.i4.1
IL_00e4 59 sub
IL_00e5 45 12 00 00 00 05 00 00 00 dc 02 00 00 8b 00 00 00 b7 00 00 00 f4 00 00 00 ab 00 00 00 c3 00 00 00 00 01 00 00 7f 00 00 00 0c 01 00 00 cf 00 00 00 19 01 00 00 db 00 00 00 e8 00 00 00 25 01 00 00 36 01 00 00 dc 02 00 00 73 00 00 00 switch
IL_0132 38 d7 02 00 00 br 727 (IL_040e)
IL_0137 02 ldarg.0
IL_0138 75 42 00 00 01 isinst 0x1000042
IL_013d 2c 5e brfalse.s 94 (IL_019d)
IL_013f 02 ldarg.0
IL_0140 a5 42 00 00 01 unbox.any 0x1000042
IL_0145 13 0f stloc.s 0xF
IL_0147 17 ldc.i4.1
IL_0148 d3 conv.i
IL_0149 28 b3 08 00 06 call 0x60008B3
IL_014e 13 10 stloc.s 0x10
IL_0150 12 10 ldloca.s 0x10
IL_0152 28 16 01 00 06 call 0x6000116
IL_0157 16 ldc.i4.0
IL_0158 d3 conv.i
IL_0159 12 0f ldloca.s 0xF
IL_015b 28 fd 00 00 0a call 0xA0000FD
IL_0160 28 54 08 00 06 call 0x6000854
IL_0165 13 12 stloc.s 0x12
IL_0167 12 12 ldloca.s 0x12
IL_0169 28 0c 01 00 06 call 0x600010C
IL_016e 28 b6 08 00 06 call 0x60008B6
IL_0173 26 pop
IL_0174 7e 20 00 00 04 ldsfld 0x4000020
IL_0179 28 eb 00 00 06 call 0x60000EB
IL_017e 12 10 ldloca.s 0x10
IL_0180 28 16 01 00 06 call 0x6000116
IL_0185 28 24 08 00 06 call 0x6000824
IL_018a 13 11 stloc.s 0x11
IL_018c 11 11 ldloc.s 0x11
IL_018e 13 08 stloc.s 0x8
IL_0190 dd ff 02 00 00 leave 767 (IL_0494)
IL_0195 12 10 ldloca.s 0x10
IL_0197 28 0e 01 00 06 call 0x600010E
IL_019c dc endfinally
IL_019d 02 ldarg.0
IL_019e 03 ldarg.1
IL_019f 28 c8 09 00 06 call 0x60009C8
IL_01a4 2a ret
IL_01a5 02 ldarg.0
IL_01a6 74 be 00 00 01 castclass 0x10000BE
IL_01ab 28 81 08 00 06 call 0x6000881
IL_01b0 2a ret
IL_01b1 02 ldarg.0
IL_01b2 a5 c9 00 00 01 unbox.any 0x10000C9
IL_01b7 28 47 08 00 06 call 0x6000847
IL_01bc 2a ret
IL_01bd 02 ldarg.0
IL_01be a5 b6 00 00 01 unbox.any 0x10000B6
IL_01c3 2c 0c brfalse.s 12 (IL_01d1)
IL_01c5 28 d6 07 00 06 call 0x60007D6
IL_01ca 16 ldc.i4.0
IL_01cb 73 04 01 00 06 newobj 0x6000104
IL_01d0 2a ret
IL_01d1 28 d7 07 00 06 call 0x60007D7
IL_01d6 16 ldc.i4.0
IL_01d7 73 04 01 00 06 newobj 0x6000104
IL_01dc 2a ret
IL_01dd 02 ldarg.0
IL_01de a5 b5 00 00 01 unbox.any 0x10000B5
IL_01e3 28 47 08 00 06 call 0x6000847
IL_01e8 2a ret
IL_01e9 02 ldarg.0
IL_01ea a5 bf 00 00 01 unbox.any 0x10000BF
IL_01ef 28 8b 08 00 06 call 0x600088B
IL_01f4 2a ret
IL_01f5 02 ldarg.0
IL_01f6 a5 c8 00 00 01 unbox.any 0x10000C8
IL_01fb 28 47 08 00 06 call 0x6000847
IL_0200 2a ret
IL_0201 02 ldarg.0
IL_0202 a5 ca 00 00 01 unbox.any 0x10000CA
IL_0207 28 4a 08 00 06 call 0x600084A
IL_020c 2a ret
IL_020d 02 ldarg.0
IL_020e a5 cb 00 00 01 unbox.any 0x10000CB
IL_0213 6c conv.r8
IL_0214 28 54 08 00 06 call 0x6000854
IL_0219 2a ret
IL_021a 02 ldarg.0
IL_021b a5 cc 00 00 01 unbox.any 0x10000CC
IL_0220 28 54 08 00 06 call 0x6000854
IL_0225 2a ret
IL_0226 02 ldarg.0
IL_0227 a5 ce 00 00 01 unbox.any 0x10000CE
IL_022c 28 47 08 00 06 call 0x6000847
IL_0231 2a ret
IL_0232 02 ldarg.0
IL_0233 a5 cf 00 00 01 unbox.any 0x10000CF
IL_0238 28 47 08 00 06 call 0x6000847
IL_023d 2a ret
IL_023e 02 ldarg.0
IL_023f a5 d0 00 00 01 unbox.any 0x10000D0
IL_0244 6e conv.u8
IL_0245 28 4b 08 00 06 call 0x600084B
IL_024a 2a ret
IL_024b 02 ldarg.0
IL_024c a5 d1 00 00 01 unbox.any 0x10000D1
IL_0251 28 4b 08 00 06 call 0x600084B
IL_0256 2a ret
IL_0257 02 ldarg.0
IL_0258 a5 46 00 00 01 unbox.any 0x1000046
IL_025d 28 fe 00 00 0a call 0xA0000FE
IL_0262 28 54 08 00 06 call 0x6000854
IL_0267 2a ret
IL_0268 02 ldarg.0
IL_0269 a5 41 00 00 01 unbox.any 0x1000041
IL_026e 13 09 stloc.s 0x9
IL_0270 12 09 ldloca.s 0x9
IL_0272 28 ff 00 00 0a call 0xA0000FF
IL_0277 2c 03 brfalse.s 3 (IL_027c)
IL_0279 1e ldc.i4.8
IL_027a 2b 01 br.s 1 (IL_027d)
IL_027c 1d ldc.i4.7
IL_027d 13 0a stloc.s 0xA
IL_027f 12 09 ldloca.s 0x9
IL_0281 28 ff 00 00 0a call 0xA0000FF
IL_0286 2c 07 brfalse.s 7 (IL_028f)
IL_0288 7e 23 00 00 04 ldsfld 0x4000023
IL_028d 2b 05 br.s 5 (IL_0294)
IL_028f 7e 22 00 00 04 ldsfld 0x4000022
IL_0294 13 0b stloc.s 0xB
IL_0296 11 0b ldloc.s 0xB
IL_0298 28 eb 00 00 06 call 0x60000EB
IL_029d 16 ldc.i4.0
IL_029e d3 conv.i
IL_029f 12 09 ldloca.s 0x9
IL_02a1 28 00 01 00 0a call 0xA000100
IL_02a6 28 47 08 00 06 call 0x6000847
IL_02ab 13 12 stloc.s 0x12
IL_02ad 12 12 ldloca.s 0x12
IL_02af 28 0c 01 00 06 call 0x600010C
IL_02b4 28 b6 08 00 06 call 0x60008B6
IL_02b9 26 pop
IL_02ba 11 0b ldloc.s 0xB
IL_02bc 28 eb 00 00 06 call 0x60000EB
IL_02c1 17 ldc.i4.1
IL_02c2 d3 conv.i
IL_02c3 12 09 ldloca.s 0x9
IL_02c5 28 01 01 00 0a call 0xA000101
IL_02ca 28 47 08 00 06 call 0x6000847
IL_02cf 13 12 stloc.s 0x12
IL_02d1 12 12 ldloca.s 0x12
IL_02d3 28 0c 01 00 06 call 0x600010C
IL_02d8 28 b6 08 00 06 call 0x60008B6
IL_02dd 26 pop
IL_02de 11 0b ldloc.s 0xB
IL_02e0 28 eb 00 00 06 call 0x60000EB
IL_02e5 18 ldc.i4.2
IL_02e6 d3 conv.i
IL_02e7 12 09 ldloca.s 0x9
IL_02e9 28 02 01 00 0a call 0xA000102
IL_02ee 28 47 08 00 06 call 0x6000847
IL_02f3 13 12 stloc.s 0x12
IL_02f5 12 12 ldloca.s 0x12
IL_02f7 28 0c 01 00 06 call 0x600010C
IL_02fc 28 b6 08 00 06 call 0x60008B6
IL_0301 26 pop
IL_0302 11 0b ldloc.s 0xB
IL_0304 28 eb 00 00 06 call 0x60000EB
IL_0309 19 ldc.i4.3
IL_030a d3 conv.i
IL_030b 12 09 ldloca.s 0x9
IL_030d 28 03 01 00 0a call 0xA000103
IL_0312 28 47 08 00 06 call 0x6000847
IL_0317 13 12 stloc.s 0x12
IL_0319 12 12 ldloca.s 0x12
IL_031b 28 0c 01 00 06 call 0x600010C
IL_0320 28 b6 08 00 06 call 0x60008B6
IL_0325 26 pop
IL_0326 11 0b ldloc.s 0xB
IL_0328 28 eb 00 00 06 call 0x60000EB
IL_032d 1a ldc.i4.4
IL_032e d3 conv.i
IL_032f 12 09 ldloca.s 0x9
IL_0331 28 04 01 00 0a call 0xA000104
IL_0336 28 47 08 00 06 call 0x6000847
IL_033b 13 12 stloc.s 0x12
IL_033d 12 12 ldloca.s 0x12
IL_033f 28 0c 01 00 06 call 0x600010C
IL_0344 28 b6 08 00 06 call 0x60008B6
IL_0349 26 pop
IL_034a 11 0b ldloc.s 0xB
IL_034c 28 eb 00 00 06 call 0x60000EB
IL_0351 1b ldc.i4.5
IL_0352 d3 conv.i
IL_0353 12 09 ldloca.s 0x9
IL_0355 28 05 01 00 0a call 0xA000105
IL_035a 28 47 08 00 06 call 0x6000847
IL_035f 13 12 stloc.s 0x12
IL_0361 12 12 ldloca.s 0x12
IL_0363 28 0c 01 00 06 call 0x600010C
IL_0368 28 b6 08 00 06 call 0x60008B6
IL_036d 26 pop
IL_036e 12 09 ldloca.s 0x9
IL_0370 28 06 01 00 0a call 0xA000106
IL_0375 13 13 stloc.s 0x13
IL_0377 12 13 ldloca.s 0x13
IL_0379 28 07 01 00 0a call 0xA000107
IL_037e 13 0c stloc.s 0xC
IL_0380 11 0c ldloc.s 0xC
IL_0382 11 0c ldloc.s 0xC
IL_0384 28 08 01 00 0a call 0xA000108
IL_0389 59 sub
IL_038a 23 00 00 00 00 80 84 2e 41 ldc.r8 1000000.000000
IL_0393 5a mul
IL_0394 28 09 01 00 0a call 0xA000109
IL_0399 13 0d stloc.s 0xD
IL_039b 11 0d ldloc.s 0xD
IL_039d 20 40 42 0f 00 ldc.i4 0xF4240
IL_03a2 33 07 bne.un.s 7 (IL_03ab)
IL_03a4 20 3f 42 0f 00 ldc.i4 0xF423F
IL_03a9 13 0d stloc.s 0xD
IL_03ab 11 0b ldloc.s 0xB
IL_03ad 28 eb 00 00 06 call 0x60000EB
IL_03b2 1c ldc.i4.6
IL_03b3 d3 conv.i
IL_03b4 11 0d ldloc.s 0xD
IL_03b6 28 47 08 00 06 call 0x6000847
IL_03bb 13 12 stloc.s 0x12
IL_03bd 12 12 ldloca.s 0x12
IL_03bf 28 0c 01 00 06 call 0x600010C
IL_03c4 28 b6 08 00 06 call 0x60008B6
IL_03c9 26 pop
IL_03ca 11 0a ldloc.s 0xA
IL_03cc 1e ldc.i4.8
IL_03cd 33 24 bne.un.s 36 (IL_03f3)
IL_03cf 11 0b ldloc.s 0xB
IL_03d1 28 eb 00 00 06 call 0x60000EB
IL_03d6 1d ldc.i4.7
IL_03d7 d3 conv.i
IL_03d8 12 09 ldloca.s 0x9
IL_03da 28 ff 00 00 0a call 0xA0000FF
IL_03df 28 45 00 00 06 call 0x6000045
IL_03e4 13 12 stloc.s 0x12
IL_03e6 12 12 ldloca.s 0x12
IL_03e8 28 0c 01 00 06 call 0x600010C
IL_03ed 28 b6 08 00 06 call 0x60008B6
IL_03f2 26 pop
IL_03f3 7e 1f 00 00 04 ldsfld 0x400001F
IL_03f8 28 eb 00 00 06 call 0x60000EB
IL_03fd 11 0b ldloc.s 0xB
IL_03ff 28 eb 00 00 06 call 0x60000EB
IL_0404 28 24 08 00 06 call 0x6000824
IL_0409 13 0e stloc.s 0xE
IL_040b 11 0e ldloc.s 0xE
IL_040d 2a ret
IL_040e 02 ldarg.0
IL_040f 75 29 00 00 01 isinst 0x1000029
IL_0414 2c 76 brfalse.s 118 (IL_048c)
IL_0416 73 ce 06 00 06 newobj 0x60006CE
IL_041b 13 14 stloc.s 0x14
IL_041d 02 ldarg.0
IL_041e 74 29 00 00 01 castclass 0x1000029
IL_0423 6f 13 00 00 0a callvirt 0xA000013
IL_0428 13 15 stloc.s 0x15
IL_042a 2b 29 br.s 41 (IL_0455)
IL_042c 11 15 ldloc.s 0x15
IL_042e 6f 11 00 00 0a callvirt 0xA000011
IL_0433 13 16 stloc.s 0x16
IL_0435 11 16 ldloc.s 0x16
IL_0437 28 56 00 00 06 call 0x6000056
IL_043c 13 17 stloc.s 0x17
IL_043e 11 14 ldloc.s 0x14
IL_0440 11 17 ldloc.s 0x17
IL_0442 6f d3 06 00 06 callvirt 0x60006D3
IL_0447 de 0c leave.s 12 (IL_0455)
IL_0449 11 17 ldloc.s 0x17
IL_044b 2c 07 brfalse.s 7 (IL_0454)
IL_044d 11 17 ldloc.s 0x17
IL_044f 6f 0d 00 00 0a callvirt 0xA00000D
IL_0454 dc endfinally
IL_0455 11 15 ldloc.s 0x15
IL_0457 6f 0e 00 00 0a callvirt 0xA00000E
IL_045c 2d ce brtrue.s -50 (IL_042c)
IL_045e de 15 leave.s 21 (IL_0475)
IL_0460 11 15 ldloc.s 0x15
IL_0462 75 27 00 00 01 isinst 0x1000027
IL_0467 13 07 stloc.s 0x7
IL_0469 11 07 ldloc.s 0x7
IL_046b 2c 07 brfalse.s 7 (IL_0474)
IL_046d 11 07 ldloc.s 0x7
IL_046f 6f 0d 00 00 0a callvirt 0xA00000D
IL_0474 dc endfinally
IL_0475 11 14 ldloc.s 0x14
IL_0477 28 74 07 00 06 call 0x6000774
IL_047c 13 08 stloc.s 0x8
IL_047e de 14 leave.s 20 (IL_0494)
IL_0480 11 14 ldloc.s 0x14
IL_0482 2c 07 brfalse.s 7 (IL_048b)
IL_0484 11 14 ldloc.s 0x14
IL_0486 6f 0d 00 00 0a callvirt 0xA00000D
IL_048b dc endfinally
IL_048c 02 ldarg.0
IL_048d 03 ldarg.1
IL_048e 28 c8 09 00 06 call 0x60009C8
IL_0493 2a ret
IL_0494 11 08 ldloc.s 0x8
IL_0496 2a ret
lvaSetClass: setting class for V00 to (00007FF8FCE25908) System.Object
Arg #0 passed in register(s) rcx
lvaSetClass: setting class for V01 to (00007FF8FCE2C078) System.Type
Arg #1 passed in register(s) rdx
lvaSetClass: setting class for V02 to (00007FF9001C7A70) Python.Runtime.PyObject
lvaSetClass: setting class for V03 to (00007FF9014E0530) Python.Runtime.IPythonDerivedType
lvaSetClass: setting class for V05 to (00007FF9014B26A0) Python.Runtime.PyList
lvaSetClass: setting class for V06 to (00007FF8FD0E8FD0) System.Collections.IEnumerator
lvaSetClass: setting class for V07 to (00007FF8FCE25908) System.Object
lvaSetClass: setting class for V08 to (00007FF9001C7A70) Python.Runtime.PyObject
lvaSetClass: setting class for V09 to (00007FF8FCFBD948) System.IDisposable
lvaSetClass: setting class for V13 to (00007FF9001C7A70) Python.Runtime.PyObject
lvaSetClass: setting class for V22 to (00007FF9014B26A0) Python.Runtime.PyList
lvaSetClass: setting class for V23 to (00007FF8FD0E8FD0) System.Collections.IEnumerator
lvaSetClass: setting class for V24 to (00007FF8FCE25908) System.Object
lvaSetClass: setting class for V25 to (00007FF9001C7A70) Python.Runtime.PyObject
lvaGrabTemp returning 26 (V26 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 arg0 ref class-hnd
; V01 arg1 ref class-hnd
; V02 loc0 ref class-hnd
; V03 loc1 ref class-hnd
; V04 loc2 int
; V05 loc3 ref class-hnd
; V06 loc4 ref class-hnd
; V07 loc5 ref class-hnd
; V08 loc6 ref class-hnd
; V09 loc7 ref class-hnd
; V10 loc8 struct <Python.Runtime.NewReference, 8>
; V11 loc9 struct <System.DateTime, 8>
; V12 loc10 int
; V13 loc11 ref class-hnd
; V14 loc12 double
; V15 loc13 int
; V16 loc14 struct <Python.Runtime.NewReference, 8>
; V17 loc15 struct <System.TimeSpan, 8>
; V18 loc16 struct <Python.Runtime.NewReference, 8>
; V19 loc17 struct <Python.Runtime.NewReference, 8>
; V20 loc18 struct <Python.Runtime.NewReference, 8>
; V21 loc19 struct <System.TimeSpan, 8>
; V22 loc20 ref class-hnd
; V23 loc21 ref class-hnd
; V24 loc22 ref class-hnd
; V25 loc23 ref class-hnd
; V26 OutArgs lclBlk <na> "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 26
VarNum LVNum Name Beg End
0: 00h 00h V00 arg0 000h 497h
1: 01h 01h V01 arg1 000h 497h
2: 02h 02h V02 loc0 000h 497h
3: 03h 03h V03 loc1 000h 497h
4: 04h 04h V04 loc2 000h 497h
5: 05h 05h V05 loc3 000h 497h
6: 06h 06h V06 loc4 000h 497h
7: 07h 07h V07 loc5 000h 497h
8: 08h 08h V08 loc6 000h 497h
9: 09h 09h V09 loc7 000h 497h
10: 0Ah 0Ah V10 loc8 000h 497h
11: 0Bh 0Bh V11 loc9 000h 497h
12: 0Ch 0Ch V12 loc10 000h 497h
13: 0Dh 0Dh V13 loc11 000h 497h
14: 0Eh 0Eh V14 loc12 000h 497h
15: 0Fh 0Fh V15 loc13 000h 497h
16: 10h 10h V16 loc14 000h 497h
17: 11h 11h V17 loc15 000h 497h
18: 12h 12h V18 loc16 000h 497h
19: 13h 13h V19 loc17 000h 497h
20: 14h 14h V20 loc18 000h 497h
21: 15h 15h V21 loc19 000h 497h
22: 16h 16h V22 loc20 000h 497h
23: 17h 17h V23 loc21 000h 497h
24: 18h 18h V24 loc22 000h 497h
25: 19h 19h V25 loc23 000h 497h
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference
Marked V02 as a single def local
Marked V03 as a single def local
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 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 V19 as a single def local
Marked V22 as a single def local
Marked V23 as a single def local
Marked V24 as a single def local
Marked V25 as a single def local
Jump targets:
IL_0017
IL_0026
IL_004f
IL_005c
IL_005e
IL_0070
IL_007a
IL_0085
IL_0086
IL_0091
IL_00a5
IL_00a6
IL_00b3
IL_00bc
IL_00bd
IL_00db
IL_0132
IL_0137
IL_0150
IL_0195
IL_019d
IL_01a5
IL_01b1
IL_01bd
IL_01d1
IL_01dd
IL_01e9
IL_01f5
IL_0201
IL_020d
IL_021a
IL_0226
IL_0232
IL_023e
IL_024b
IL_0257
IL_0268
IL_027c
IL_027d
IL_028f
IL_0294
IL_03ab
IL_03f3
IL_040e
IL_041d
IL_042a
IL_042c
IL_043e
IL_0449
IL_0454
IL_0455
IL_0460
IL_0474
IL_0475
IL_0480
IL_048b
IL_048c
IL_0494
New Basic Block BB01 [0000] created.
BB01 [000..00A)
New Basic Block BB02 [0001] created.
BB02 [00A..017)
New Basic Block BB03 [0002] created.
BB03 [017..01A)
New Basic Block BB04 [0003] created.
BB04 [01A..026)
New Basic Block BB05 [0004] created.
BB05 [026..039)
New Basic Block BB06 [0005] created.
BB06 [039..041)
New Basic Block BB07 [0006] created.
BB07 [041..049)
New Basic Block BB08 [0007] created.
BB08 [049..04F)
New Basic Block BB09 [0008] created.
BB09 [04F..05C)
New Basic Block BB10 [0009] created.
BB10 [05C..05E)
New Basic Block BB11 [0010] created.
BB11 [05E..070)
New Basic Block BB12 [0011] created.
BB12 [070..07A)
New Basic Block BB13 [0012] created.
BB13 [07A..07E)
New Basic Block BB14 [0013] created.
BB14 [07E..085)
New Basic Block BB15 [0014] created.
BB15 [085..086)
New Basic Block BB16 [0015] created.
BB16 [086..08F)
New Basic Block BB17 [0016] created.
BB17 [08F..091)
New Basic Block BB18 [0017] created.
BB18 [091..09E)
New Basic Block BB19 [0018] created.
BB19 [09E..0A5)
New Basic Block BB20 [0019] created.
BB20 [0A5..0A6)
New Basic Block BB21 [0020] created.
BB21 [0A6..0B3)
New Basic Block BB22 [0021] created.
BB22 [0B3..0B6)
New Basic Block BB23 [0022] created.
BB23 [0B6..0BC)
New Basic Block BB24 [0023] created.
BB24 [0BC..0BD)
New Basic Block BB25 [0024] created.
BB25 [0BD..0C7)
New Basic Block BB26 [0025] created.
BB26 [0C7..0D4)
New Basic Block BB27 [0026] created.
BB27 [0D4..0DB)
New Basic Block BB28 [0027] created.
BB28 [0DB..132)
New Basic Block BB29 [0028] created.
BB29 [132..137)
New Basic Block BB30 [0029] created.
BB30 [137..13F)
New Basic Block BB31 [0030] created.
BB31 [13F..150)
New Basic Block BB32 [0031] created.
BB32 [150..195)
New Basic Block BB33 [0032] created.
BB33 [195..19D)
New Basic Block BB34 [0033] created.
BB34 [19D..1A5)
New Basic Block BB35 [0034] created.
BB35 [1A5..1B1)
New Basic Block BB36 [0035] created.
BB36 [1B1..1BD)
New Basic Block BB37 [0036] created.
BB37 [1BD..1C5)
New Basic Block BB38 [0037] created.
BB38 [1C5..1D1)
New Basic Block BB39 [0038] created.
BB39 [1D1..1DD)
New Basic Block BB40 [0039] created.
BB40 [1DD..1E9)
New Basic Block BB41 [0040] created.
BB41 [1E9..1F5)
New Basic Block BB42 [0041] created.
BB42 [1F5..201)
New Basic Block BB43 [0042] created.
BB43 [201..20D)
New Basic Block BB44 [0043] created.
BB44 [20D..21A)
New Basic Block BB45 [0044] created.
BB45 [21A..226)
New Basic Block BB46 [0045] created.
BB46 [226..232)
New Basic Block BB47 [0046] created.
BB47 [232..23E)
New Basic Block BB48 [0047] created.
BB48 [23E..24B)
New Basic Block BB49 [0048] created.
BB49 [24B..257)
New Basic Block BB50 [0049] created.
BB50 [257..268)
New Basic Block BB51 [0050] created.
BB51 [268..279)
New Basic Block BB52 [0051] created.
BB52 [279..27C)
New Basic Block BB53 [0052] created.
BB53 [27C..27D)
New Basic Block BB54 [0053] created.
BB54 [27D..288)
New Basic Block BB55 [0054] created.
BB55 [288..28F)
New Basic Block BB56 [0055] created.
BB56 [28F..294)
New Basic Block BB57 [0056] created.
BB57 [294..3A4)
New Basic Block BB58 [0057] created.
BB58 [3A4..3AB)
New Basic Block BB59 [0058] created.
BB59 [3AB..3CF)
New Basic Block BB60 [0059] created.
BB60 [3CF..3F3)
New Basic Block BB61 [0060] created.
BB61 [3F3..40E)
New Basic Block BB62 [0061] created.
BB62 [40E..416)
New Basic Block BB63 [0062] created.
BB63 [416..41D)
New Basic Block BB64 [0063] created.
BB64 [41D..42A)
New Basic Block BB65 [0064] created.
BB65 [42A..42C)
New Basic Block BB66 [0065] created.
BB66 [42C..43E)
New Basic Block BB67 [0066] created.
BB67 [43E..449)
New Basic Block BB68 [0067] created.
BB68 [449..44D)
New Basic Block BB69 [0068] created.
BB69 [44D..454)
New Basic Block BB70 [0069] created.
BB70 [454..455)
New Basic Block BB71 [0070] created.
BB71 [455..45E)
New Basic Block BB72 [0071] created.
BB72 [45E..460)
New Basic Block BB73 [0072] created.
BB73 [460..46D)
New Basic Block BB74 [0073] created.
BB74 [46D..474)
New Basic Block BB75 [0074] created.
BB75 [474..475)
New Basic Block BB76 [0075] created.
BB76 [475..480)
New Basic Block BB77 [0076] created.
BB77 [480..484)
New Basic Block BB78 [0077] created.
BB78 [484..48B)
New Basic Block BB79 [0078] created.
BB79 [48B..48C)
New Basic Block BB80 [0079] created.
BB80 [48C..494)
New Basic Block BB81 [0080] created.
BB81 [494..497)
EH clause #0:
Flags: 0x2 (finally)
TryOffset: 0x70
TryLength: 0xa
HandlerOffset: 0x7a
HandlerLength: 0xc
ClassToken: 0x0
EH clause #1:
Flags: 0x2 (finally)
TryOffset: 0x5c
TryLength: 0x35
HandlerOffset: 0x91
HandlerLength: 0x15
ClassToken: 0x0
EH clause #2:
Flags: 0x2 (finally)
TryOffset: 0x4f
TryLength: 0x64
HandlerOffset: 0xb3
HandlerLength: 0xa
ClassToken: 0x0
EH clause #3:
Flags: 0x2 (finally)
TryOffset: 0x150
TryLength: 0x45
HandlerOffset: 0x195
HandlerLength: 0x8
ClassToken: 0x0
EH clause #4:
Flags: 0x2 (finally)
TryOffset: 0x43e
TryLength: 0xb
HandlerOffset: 0x449
HandlerLength: 0xc
ClassToken: 0x0
EH clause #5:
Flags: 0x2 (finally)
TryOffset: 0x42a
TryLength: 0x36
HandlerOffset: 0x460
HandlerLength: 0x15
ClassToken: 0x0
EH clause #6:
Flags: 0x2 (finally)
TryOffset: 0x41d
TryLength: 0x63
HandlerOffset: 0x480
HandlerLength: 0xc
ClassToken: 0x0
*************** After fgFindBasicBlocks() has created the EH table
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
*************** In fgNormalizeEH()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 100 [000..00A)-> BB03 ( cond )
BB02 [0001] 1 100 [00A..017) (return)
BB03 [0002] 1 100 [017..01A)-> BB05 ( cond )
BB04 [0003] 1 100 [01A..026) (return)
BB05 [0004] 1 100 [026..039)-> BB25 ( cond )
BB06 [0005] 1 100 [039..041)-> BB25 ( cond )
BB07 [0006] 1 100 [041..049)-> BB25 ( cond )
BB08 [0007] 1 100 [049..04F)
BB09 [0008] 1 2 100 [04F..05C) T2 try { keep try
BB10 [0009] 1 1 100 [05C..05E)-> BB16 (always) T1 try { keep try
BB11 [0010] 1 1 100 [05E..070) T1 bwd bwd-target
BB12 [0011] 1 0 100 [070..07A)-> BB16 (leave ) T0 try { } keep try bwd
BB13 [0012] 1 1 0 100 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 100 [07E..085) T1 H0 bwd
BB15 [0014] 2 1 0 100 [085..086) (finret) T1 H0 } bwd
BB16 [0015] 2 1 100 [086..08F)-> BB11 ( cond ) T1 bwd
BB17 [0016] 1 1 100 [08F..091)-> BB21 (leave ) T1 }
BB18 [0017] 1 2 1 100 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 100 [09E..0A5) T2 H1
BB20 [0019] 2 2 1 100 [0A5..0A6) (finret) T2 H1 }
BB21 [0020] 1 2 100 [0A6..0B3)-> BB81 (leave ) T2 }
BB22 [0021] 1 2 100 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 100 [0B6..0BC) H2
BB24 [0023] 2 2 100 [0BC..0BD) (finret) H2 }
BB25 [0024] 3 100 [0BD..0C7)-> BB28 ( cond )
BB26 [0025] 1 100 [0C7..0D4)-> BB28 ( cond )
BB27 [0026] 1 100 [0D4..0DB) (return)
BB28 [0027] 2 100 [0DB..132)-> BB30,BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch)
BB29 [0028] 1 100 [132..137)-> BB62 (always)
BB30 [0029] 1 100 [137..13F)-> BB34 ( cond )
BB31 [0030] 1 100 [13F..150)
BB32 [0031] 1 3 100 [150..195)-> BB81 (leave ) T3 try { } keep try
BB33 [0032] 1 3 100 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 100 [19D..1A5) (return)
BB35 [0034] 1 100 [1A5..1B1) (return)
BB36 [0035] 1 100 [1B1..1BD) (return)
BB37 [0036] 1 100 [1BD..1C5)-> BB39 ( cond )
BB38 [0037] 1 100 [1C5..1D1) (return)
BB39 [0038] 1 100 [1D1..1DD) (return)
BB40 [0039] 1 100 [1DD..1E9) (return)
BB41 [0040] 1 100 [1E9..1F5) (return)
BB42 [0041] 1 100 [1F5..201) (return)
BB43 [0042] 1 100 [201..20D) (return)
BB44 [0043] 1 100 [20D..21A) (return)
BB45 [0044] 1 100 [21A..226) (return)
BB46 [0045] 1 100 [226..232) (return)
BB47 [0046] 1 100 [232..23E) (return)
BB48 [0047] 1 100 [23E..24B) (return)
BB49 [0048] 1 100 [24B..257) (return)
BB50 [0049] 1 100 [257..268) (return)
BB51 [0050] 1 100 [268..279)-> BB53 ( cond )
BB52 [0051] 1 100 [279..27C)-> BB54 (always)
BB53 [0052] 1 100 [27C..27D)
BB54 [0053] 2 100 [27D..288)-> BB56 ( cond )
BB55 [0054] 1 100 [288..28F)-> BB57 (always)
BB56 [0055] 1 100 [28F..294)
BB57 [0056] 2 100 [294..3A4)-> BB59 ( cond )
BB58 [0057] 1 100 [3A4..3AB)
BB59 [0058] 2 100 [3AB..3CF)-> BB61 ( cond )
BB60 [0059] 1 100 [3CF..3F3)
BB61 [0060] 2 100 [3F3..40E) (return)
BB62 [0061] 3 100 [40E..416)-> BB80 ( cond )
BB63 [0062] 1 100 [416..41D)
BB64 [0063] 1 6 100 [41D..42A) T6 try { keep try
BB65 [0064] 1 5 100 [42A..42C)-> BB71 (always) T5 try { keep try
BB66 [0065] 1 5 100 [42C..43E) T5 bwd bwd-target
BB67 [0066] 1 4 100 [43E..449)-> BB71 (leave ) T4 try { } keep try bwd
BB68 [0067] 1 5 4 100 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 100 [44D..454) T5 H4 bwd
BB70 [0069] 2 5 4 100 [454..455) (finret) T5 H4 } bwd
BB71 [0070] 2 5 100 [455..45E)-> BB66 ( cond ) T5 bwd
BB72 [0071] 1 5 100 [45E..460)-> BB76 (leave ) T5 }
BB73 [0072] 1 6 5 100 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 100 [46D..474) T6 H5
BB75 [0074] 2 6 5 100 [474..475) (finret) T6 H5 }
BB76 [0075] 1 6 100 [475..480)-> BB81 (leave ) T6 }
BB77 [0076] 1 6 100 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 100 [484..48B) H6
BB79 [0078] 2 6 100 [48B..48C) (finret) H6 }
BB80 [0079] 1 100 [48C..494) (return)
BB81 [0080] 3 100 [494..497) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
No EH normalization performed.
IL Code Size,Instr 1175, 389, Basic Block count 81, Local Variable Num,Ref count 27,142 for method Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference
OPTIONS: opts.MinOpts() == false
Basic block list for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 100 [000..00A)-> BB03 ( cond )
BB02 [0001] 1 100 [00A..017) (return)
BB03 [0002] 1 100 [017..01A)-> BB05 ( cond )
BB04 [0003] 1 100 [01A..026) (return)
BB05 [0004] 1 100 [026..039)-> BB25 ( cond )
BB06 [0005] 1 100 [039..041)-> BB25 ( cond )
BB07 [0006] 1 100 [041..049)-> BB25 ( cond )
BB08 [0007] 1 100 [049..04F)
BB09 [0008] 1 2 100 [04F..05C) T2 try { keep try
BB10 [0009] 1 1 100 [05C..05E)-> BB16 (always) T1 try { keep try
BB11 [0010] 1 1 100 [05E..070) T1 bwd bwd-target
BB12 [0011] 1 0 100 [070..07A)-> BB16 (leave ) T0 try { } keep try bwd
BB13 [0012] 1 1 0 100 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 100 [07E..085) T1 H0 bwd
BB15 [0014] 2 1 0 100 [085..086) (finret) T1 H0 } bwd
BB16 [0015] 2 1 100 [086..08F)-> BB11 ( cond ) T1 bwd
BB17 [0016] 1 1 100 [08F..091)-> BB21 (leave ) T1 }
BB18 [0017] 1 2 1 100 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 100 [09E..0A5) T2 H1
BB20 [0019] 2 2 1 100 [0A5..0A6) (finret) T2 H1 }
BB21 [0020] 1 2 100 [0A6..0B3)-> BB81 (leave ) T2 }
BB22 [0021] 1 2 100 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 100 [0B6..0BC) H2
BB24 [0023] 2 2 100 [0BC..0BD) (finret) H2 }
BB25 [0024] 3 100 [0BD..0C7)-> BB28 ( cond )
BB26 [0025] 1 100 [0C7..0D4)-> BB28 ( cond )
BB27 [0026] 1 100 [0D4..0DB) (return)
BB28 [0027] 2 100 [0DB..132)-> BB30,BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch)
BB29 [0028] 1 100 [132..137)-> BB62 (always)
BB30 [0029] 1 100 [137..13F)-> BB34 ( cond )
BB31 [0030] 1 100 [13F..150)
BB32 [0031] 1 3 100 [150..195)-> BB81 (leave ) T3 try { } keep try
BB33 [0032] 1 3 100 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 100 [19D..1A5) (return)
BB35 [0034] 1 100 [1A5..1B1) (return)
BB36 [0035] 1 100 [1B1..1BD) (return)
BB37 [0036] 1 100 [1BD..1C5)-> BB39 ( cond )
BB38 [0037] 1 100 [1C5..1D1) (return)
BB39 [0038] 1 100 [1D1..1DD) (return)
BB40 [0039] 1 100 [1DD..1E9) (return)
BB41 [0040] 1 100 [1E9..1F5) (return)
BB42 [0041] 1 100 [1F5..201) (return)
BB43 [0042] 1 100 [201..20D) (return)
BB44 [0043] 1 100 [20D..21A) (return)
BB45 [0044] 1 100 [21A..226) (return)
BB46 [0045] 1 100 [226..232) (return)
BB47 [0046] 1 100 [232..23E) (return)
BB48 [0047] 1 100 [23E..24B) (return)
BB49 [0048] 1 100 [24B..257) (return)
BB50 [0049] 1 100 [257..268) (return)
BB51 [0050] 1 100 [268..279)-> BB53 ( cond )
BB52 [0051] 1 100 [279..27C)-> BB54 (always)
BB53 [0052] 1 100 [27C..27D)
BB54 [0053] 2 100 [27D..288)-> BB56 ( cond )
BB55 [0054] 1 100 [288..28F)-> BB57 (always)
BB56 [0055] 1 100 [28F..294)
BB57 [0056] 2 100 [294..3A4)-> BB59 ( cond )
BB58 [0057] 1 100 [3A4..3AB)
BB59 [0058] 2 100 [3AB..3CF)-> BB61 ( cond )
BB60 [0059] 1 100 [3CF..3F3)
BB61 [0060] 2 100 [3F3..40E) (return)
BB62 [0061] 3 100 [40E..416)-> BB80 ( cond )
BB63 [0062] 1 100 [416..41D)
BB64 [0063] 1 6 100 [41D..42A) T6 try { keep try
BB65 [0064] 1 5 100 [42A..42C)-> BB71 (always) T5 try { keep try
BB66 [0065] 1 5 100 [42C..43E) T5 bwd bwd-target
BB67 [0066] 1 4 100 [43E..449)-> BB71 (leave ) T4 try { } keep try bwd
BB68 [0067] 1 5 4 100 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 100 [44D..454) T5 H4 bwd
BB70 [0069] 2 5 4 100 [454..455) (finret) T5 H4 } bwd
BB71 [0070] 2 5 100 [455..45E)-> BB66 ( cond ) T5 bwd
BB72 [0071] 1 5 100 [45E..460)-> BB76 (leave ) T5 }
BB73 [0072] 1 6 5 100 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 100 [46D..474) T6 H5
BB75 [0074] 2 6 5 100 [474..475) (finret) T6 H5 }
BB76 [0075] 1 6 100 [475..480)-> BB81 (leave ) T6 }
BB77 [0076] 1 6 100 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 100 [484..48B) H6
BB79 [0078] 2 6 100 [48B..48C) (finret) H6 }
BB80 [0079] 1 100 [48C..494) (return)
BB81 [0080] 3 100 [494..497) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Starting PHASE Pre-import
*************** Finishing PHASE Pre-import
*************** Starting PHASE Profile incorporation
Have dynamic profile data: 73 schema records (schema at 000001FA2D915EF0, data at 000001FA2D9165C8)
Unknown PGO record type 0xc3 in schema entry 3 (offset 0x2f count 0x8 other 0x80000000)
Unknown PGO record type 0xc3 in schema entry 7 (offset 0x55 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 9 (offset 0x60 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 13 (offset 0x80 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 16 (offset 0x88 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 19 (offset 0xa0 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 24 (offset 0xb7 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 53 (offset 0x423 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 55 (offset 0x42e count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 59 (offset 0x44f count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 62 (offset 0x457 count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 65 (offset 0x46f count 0x8 other 0xc0000000)
Unknown PGO record type 0xc3 in schema entry 69 (offset 0x486 count 0x8 other 0xc0000000)
Profile summary: 1 runs, 0 block probes, 47 edge probes, 13 class profiles, 13 other records
Reconstructing block counts from sparse edge instrumentation
... adding known edge BB02 -> BB01: weight 12
... adding known edge BB04 -> BB01: weight 0
... adding known edge BB06 -> BB25: weight 0
... adding known edge BB07 -> BB25: weight 0
... adding known edge BB12 -> BB16: weight 0
... adding known edge BB14 -> BB15: weight 0
... adding known edge BB15 -> BB13: weight 0
... adding known edge BB19 -> BB20: weight 0
... adding known edge BB20 -> BB18: weight 0
... adding known edge BB21 -> BB81: weight 0
... adding known edge BB23 -> BB24: weight 0
... adding known edge BB24 -> BB22: weight 0
... adding known edge BB26 -> BB28: weight 0
... adding known edge BB27 -> BB01: weight 0
... adding known edge BB29 -> BB62: weight 0
... adding known edge BB32 -> BB81: weight 0
... adding known edge BB33 -> BB33: weight 0
... adding known edge BB34 -> BB01: weight 18
... adding known edge BB35 -> BB01: weight 0
... adding known edge BB36 -> BB01: weight 13
... adding known edge BB38 -> BB01: weight 0
... adding known edge BB39 -> BB01: weight 0
... adding known edge BB40 -> BB01: weight 0
... adding known edge BB41 -> BB01: weight 0
... adding known edge BB42 -> BB01: weight 0
... adding known edge BB43 -> BB01: weight 0
... adding known edge BB44 -> BB01: weight 0
... adding known edge BB45 -> BB01: weight 0
... adding known edge BB46 -> BB01: weight 0
... adding known edge BB47 -> BB01: weight 0
... adding known edge BB48 -> BB01: weight 0
... adding known edge BB49 -> BB01: weight 0
... adding known edge BB50 -> BB01: weight 0
... adding known edge BB53 -> BB54: weight 0
... adding known edge BB56 -> BB57: weight 0
... adding known edge BB58 -> BB59: weight 0
... adding known edge BB60 -> BB61: weight 0
... adding known edge BB61 -> BB01: weight 0
... adding known edge BB67 -> BB71: weight 0
... adding known edge BB69 -> BB70: weight 0
... adding known edge BB70 -> BB68: weight 0
... adding known edge BB74 -> BB75: weight 0
... adding known edge BB75 -> BB73: weight 0
... adding known edge BB78 -> BB79: weight 0
... adding known edge BB79 -> BB77: weight 0
... adding known edge BB80 -> BB01: weight 0
... adding known edge BB81 -> BB01: weight 0
New BlockSet epoch 1, # of blocks (including unused BB00): 82, bitset array size: 2 (long)
... unknown edge BB01 -> BB03
... unknown edge BB01 -> BB02
... unknown edge BB03 -> BB05
... unknown edge BB03 -> BB04
... unknown edge BB05 -> BB06
... unknown edge BB05 -> BB25
... unknown edge BB25 -> BB26
... unknown edge BB25 -> BB28
... unknown edge BB28 -> BB29
... unknown edge BB28 -> BB35
... unknown edge BB28 -> BB51
... unknown edge BB28 -> BB50
... unknown edge BB28 -> BB45
... unknown edge BB28 -> BB44
... unknown edge BB28 -> BB49
... unknown edge BB28 -> BB43
... unknown edge BB28 -> BB48
... unknown edge BB28 -> BB36
... unknown edge BB28 -> BB47
... unknown edge BB28 -> BB42
... unknown edge BB28 -> BB40
... unknown edge BB28 -> BB46
... unknown edge BB28 -> BB41
... unknown edge BB28 -> BB37
... unknown edge BB28 -> BB30
... unknown edge BB28 -> BB62
... unknown edge BB62 -> BB80
... unknown edge BB62 -> BB63
... unknown edge BB63 -> BB64
... unknown edge BB64 -> BB65
... unknown edge BB65 -> BB71
... unknown edge BB71 -> BB66
... unknown edge BB71 -> BB72
... unknown edge BB72 -> BB76
... unknown edge BB76 -> BB81
... unknown edge BB66 -> BB67
... unknown edge BB30 -> BB34
... unknown edge BB30 -> BB31
... unknown edge BB31 -> BB32
... unknown edge BB37 -> BB39
... unknown edge BB37 -> BB38
... unknown edge BB51 -> BB53
... unknown edge BB51 -> BB52
... unknown edge BB52 -> BB54
... unknown edge BB54 -> BB56
... unknown edge BB54 -> BB55
... unknown edge BB55 -> BB57
... unknown edge BB57 -> BB58
... unknown edge BB57 -> BB59
... unknown edge BB59 -> BB60
... unknown edge BB59 -> BB61
... unknown edge BB26 -> BB27
... unknown edge BB06 -> BB07
... unknown edge BB07 -> BB08
... unknown edge BB08 -> BB09
... unknown edge BB09 -> BB10
... unknown edge BB10 -> BB16
... unknown edge BB16 -> BB11
... unknown edge BB16 -> BB17
... unknown edge BB17 -> BB21
... unknown edge BB11 -> BB12
... unknown edge BB77 -> BB78
... unknown edge BB77 -> BB79
... unknown edge BB73 -> BB74
... unknown edge BB73 -> BB75
... unknown edge BB68 -> BB69
... unknown edge BB68 -> BB70
... unknown edge BB22 -> BB23
... unknown edge BB22 -> BB24
... unknown edge BB18 -> BB19
... unknown edge BB18 -> BB20
... unknown edge BB13 -> BB14
... unknown edge BB13 -> BB15
Solver: 81 blocks, 81 unknown; 120 edges, 73 unknown, 0 zero (and so ignored)
Pass [1]: 81 unknown blocks, 73 unknown edges
BB81: 1 incoming unknown, 0 outgoing unknown
BB81: all outgoing edge weights known, summming...
BB81 -> BB01 has weight 0
BB81: all outgoing edge weights known, sum is 0
BB76 -> BB81: target block weight and all other incoming edge weights known, so weight is 0
BB80: 1 incoming unknown, 0 outgoing unknown
BB80: all outgoing edge weights known, summming...
BB80 -> BB01 has weight 0
BB80: all outgoing edge weights known, sum is 0
BB62 -> BB80: target block weight and all other incoming edge weights known, so weight is 0
BB79: 1 incoming unknown, 0 outgoing unknown
BB79: all outgoing edge weights known, summming...
BB79 -> BB77 has weight 0
BB79: all outgoing edge weights known, sum is 0
BB77 -> BB79: target block weight and all other incoming edge weights known, so weight is 0
BB78: 1 incoming unknown, 0 outgoing unknown
BB78: all outgoing edge weights known, summming...
BB78 -> BB79 has weight 0
BB78: all outgoing edge weights known, sum is 0
BB77 -> BB78: target block weight and all other incoming edge weights known, so weight is 0
BB77: 0 incoming unknown, 0 outgoing unknown
BB77: all incoming edge weights known, summming...
BB79 -> BB77 has weight 0
BB77: all incoming edge weights known, sum is 0
BB76: 1 incoming unknown, 0 outgoing unknown
BB76: all outgoing edge weights known, summming...
BB76 -> BB81 has weight 0
BB76: all outgoing edge weights known, sum is 0
BB72 -> BB76: target block weight and all other incoming edge weights known, so weight is 0
BB75: 1 incoming unknown, 0 outgoing unknown
BB75: all outgoing edge weights known, summming...
BB75 -> BB73 has weight 0
BB75: all outgoing edge weights known, sum is 0
BB73 -> BB75: target block weight and all other incoming edge weights known, so weight is 0
BB74: 1 incoming unknown, 0 outgoing unknown
BB74: all outgoing edge weights known, summming...
BB74 -> BB75 has weight 0
BB74: all outgoing edge weights known, sum is 0
BB73 -> BB74: target block weight and all other incoming edge weights known, so weight is 0
BB73: 0 incoming unknown, 0 outgoing unknown
BB73: all incoming edge weights known, summming...
BB75 -> BB73 has weight 0
BB73: all incoming edge weights known, sum is 0
BB72: 1 incoming unknown, 0 outgoing unknown
BB72: all outgoing edge weights known, summming...
BB72 -> BB76 has weight 0
BB72: all outgoing edge weights known, sum is 0
BB71 -> BB72: target block weight and all other incoming edge weights known, so weight is 0
BB71: 1 incoming unknown, 1 outgoing unknown
BB70: 1 incoming unknown, 0 outgoing unknown
BB70: all outgoing edge weights known, summming...
BB70 -> BB68 has weight 0
BB70: all outgoing edge weights known, sum is 0
BB68 -> BB70: target block weight and all other incoming edge weights known, so weight is 0
BB69: 1 incoming unknown, 0 outgoing unknown
BB69: all outgoing edge weights known, summming...
BB69 -> BB70 has weight 0
BB69: all outgoing edge weights known, sum is 0
BB68 -> BB69: target block weight and all other incoming edge weights known, so weight is 0
BB68: 0 incoming unknown, 0 outgoing unknown
BB68: all incoming edge weights known, summming...
BB70 -> BB68 has weight 0
BB68: all incoming edge weights known, sum is 0
BB67: 1 incoming unknown, 0 outgoing unknown
BB67: all outgoing edge weights known, summming...
BB67 -> BB71 has weight 0
BB67: all outgoing edge weights known, sum is 0
BB66 -> BB67: target block weight and all other incoming edge weights known, so weight is 0
BB66: 1 incoming unknown, 0 outgoing unknown
BB66: all outgoing edge weights known, summming...
BB66 -> BB67 has weight 0
BB66: all outgoing edge weights known, sum is 0
BB71 -> BB66: target block weight and all other incoming edge weights known, so weight is 0
BB65: 1 incoming unknown, 1 outgoing unknown
BB64: 1 incoming unknown, 1 outgoing unknown
BB63: 1 incoming unknown, 1 outgoing unknown
BB62: 1 incoming unknown, 1 outgoing unknown
BB61: 1 incoming unknown, 0 outgoing unknown
BB61: all outgoing edge weights known, summming...
BB61 -> BB01 has weight 0
BB61: all outgoing edge weights known, sum is 0
BB59 -> BB61: target block weight and all other incoming edge weights known, so weight is 0
BB60: 1 incoming unknown, 0 outgoing unknown
BB60: all outgoing edge weights known, summming...
BB60 -> BB61 has weight 0
BB60: all outgoing edge weights known, sum is 0
BB59 -> BB60: target block weight and all other incoming edge weights known, so weight is 0
BB59: 1 incoming unknown, 0 outgoing unknown
BB59: all outgoing edge weights known, summming...
BB59 -> BB61 has weight 0
BB59 -> BB60 has weight 0
BB59: all outgoing edge weights known, sum is 0
BB57 -> BB59: target block weight and all other incoming edge weights known, so weight is 0
BB58: 1 incoming unknown, 0 outgoing unknown
BB58: all outgoing edge weights known, summming...
BB58 -> BB59 has weight 0
BB58: all outgoing edge weights known, sum is 0
BB57 -> BB58: target block weight and all other incoming edge weights known, so weight is 0
BB57: 1 incoming unknown, 0 outgoing unknown
BB57: all outgoing edge weights known, summming...
BB57 -> BB59 has weight 0
BB57 -> BB58 has weight 0
BB57: all outgoing edge weights known, sum is 0
BB55 -> BB57: target block weight and all other incoming edge weights known, so weight is 0
BB56: 1 incoming unknown, 0 outgoing unknown
BB56: all outgoing edge weights known, summming...
BB56 -> BB57 has weight 0
BB56: all outgoing edge weights known, sum is 0
BB54 -> BB56: target block weight and all other incoming edge weights known, so weight is 0
BB55: 1 incoming unknown, 0 outgoing unknown
BB55: all outgoing edge weights known, summming...
BB55 -> BB57 has weight 0
BB55: all outgoing edge weights known, sum is 0
BB54 -> BB55: target block weight and all other incoming edge weights known, so weight is 0
BB54: 1 incoming unknown, 0 outgoing unknown
BB54: all outgoing edge weights known, summming...
BB54 -> BB55 has weight 0
BB54 -> BB56 has weight 0
BB54: all outgoing edge weights known, sum is 0
BB52 -> BB54: target block weight and all other incoming edge weights known, so weight is 0
BB53: 1 incoming unknown, 0 outgoing unknown
BB53: all outgoing edge weights known, summming...
BB53 -> BB54 has weight 0
BB53: all outgoing edge weights known, sum is 0
BB51 -> BB53: target block weight and all other incoming edge weights known, so weight is 0
BB52: 1 incoming unknown, 0 outgoing unknown
BB52: all outgoing edge weights known, summming...
BB52 -> BB54 has weight 0
BB52: all outgoing edge weights known, sum is 0
BB51 -> BB52: target block weight and all other incoming edge weights known, so weight is 0
BB51: 1 incoming unknown, 0 outgoing unknown
BB51: all outgoing edge weights known, summming...
BB51 -> BB52 has weight 0
BB51 -> BB53 has weight 0
BB51: all outgoing edge weights known, sum is 0
BB28 -> BB51: target block weight and all other incoming edge weights known, so weight is 0
BB50: 1 incoming unknown, 0 outgoing unknown
BB50: all outgoing edge weights known, summming...
BB50 -> BB01 has weight 0
BB50: all outgoing edge weights known, sum is 0
BB28 -> BB50: target block weight and all other incoming edge weights known, so weight is 0
BB49: 1 incoming unknown, 0 outgoing unknown
BB49: all outgoing edge weights known, summming...
BB49 -> BB01 has weight 0
BB49: all outgoing edge weights known, sum is 0
BB28 -> BB49: target block weight and all other incoming edge weights known, so weight is 0
BB48: 1 incoming unknown, 0 outgoing unknown
BB48: all outgoing edge weights known, summming...
BB48 -> BB01 has weight 0
BB48: all outgoing edge weights known, sum is 0
BB28 -> BB48: target block weight and all other incoming edge weights known, so weight is 0
BB47: 1 incoming unknown, 0 outgoing unknown
BB47: all outgoing edge weights known, summming...
BB47 -> BB01 has weight 0
BB47: all outgoing edge weights known, sum is 0
BB28 -> BB47: target block weight and all other incoming edge weights known, so weight is 0
BB46: 1 incoming unknown, 0 outgoing unknown
BB46: all outgoing edge weights known, summming...
BB46 -> BB01 has weight 0
BB46: all outgoing edge weights known, sum is 0
BB28 -> BB46: target block weight and all other incoming edge weights known, so weight is 0
BB45: 1 incoming unknown, 0 outgoing unknown
BB45: all outgoing edge weights known, summming...
BB45 -> BB01 has weight 0
BB45: all outgoing edge weights known, sum is 0
BB28 -> BB45: target block weight and all other incoming edge weights known, so weight is 0
BB44: 1 incoming unknown, 0 outgoing unknown
BB44: all outgoing edge weights known, summming...
BB44 -> BB01 has weight 0
BB44: all outgoing edge weights known, sum is 0
BB28 -> BB44: target block weight and all other incoming edge weights known, so weight is 0
BB43: 1 incoming unknown, 0 outgoing unknown
BB43: all outgoing edge weights known, summming...
BB43 -> BB01 has weight 0
BB43: all outgoing edge weights known, sum is 0
BB28 -> BB43: target block weight and all other incoming edge weights known, so weight is 0
BB42: 1 incoming unknown, 0 outgoing unknown
BB42: all outgoing edge weights known, summming...
BB42 -> BB01 has weight 0
BB42: all outgoing edge weights known, sum is 0
BB28 -> BB42: target block weight and all other incoming edge weights known, so weight is 0
BB41: 1 incoming unknown, 0 outgoing unknown
BB41: all outgoing edge weights known, summming...
BB41 -> BB01 has weight 0
BB41: all outgoing edge weights known, sum is 0
BB28 -> BB41: target block weight and all other incoming edge weights known, so weight is 0
BB40: 1 incoming unknown, 0 outgoing unknown
BB40: all outgoing edge weights known, summming...
BB40 -> BB01 has weight 0
BB40: all outgoing edge weights known, sum is 0
BB28 -> BB40: target block weight and all other incoming edge weights known, so weight is 0
BB39: 1 incoming unknown, 0 outgoing unknown
BB39: all outgoing edge weights known, summming...
BB39 -> BB01 has weight 0
BB39: all outgoing edge weights known, sum is 0
BB37 -> BB39: target block weight and all other incoming edge weights known, so weight is 0
BB38: 1 incoming unknown, 0 outgoing unknown
BB38: all outgoing edge weights known, summming...
BB38 -> BB01 has weight 0
BB38: all outgoing edge weights known, sum is 0
BB37 -> BB38: target block weight and all other incoming edge weights known, so weight is 0
BB37: 1 incoming unknown, 0 outgoing unknown
BB37: all outgoing edge weights known, summming...
BB37 -> BB38 has weight 0
BB37 -> BB39 has weight 0
BB37: all outgoing edge weights known, sum is 0
BB28 -> BB37: target block weight and all other incoming edge weights known, so weight is 0
BB36: 1 incoming unknown, 0 outgoing unknown
BB36: all outgoing edge weights known, summming...
BB36 -> BB01 has weight 13
BB36: all outgoing edge weights known, sum is 13
BB28 -> BB36: target block weight and all other incoming edge weights known, so weight is 13
BB35: 1 incoming unknown, 0 outgoing unknown
BB35: all outgoing edge weights known, summming...
BB35 -> BB01 has weight 0
BB35: all outgoing edge weights known, sum is 0
BB28 -> BB35: target block weight and all other incoming edge weights known, so weight is 0
BB34: 1 incoming unknown, 0 outgoing unknown
BB34: all outgoing edge weights known, summming...
BB34 -> BB01 has weight 18
BB34: all outgoing edge weights known, sum is 18
BB30 -> BB34: target block weight and all other incoming edge weights known, so weight is 18
BB33: 0 incoming unknown, 0 outgoing unknown
BB33: all incoming edge weights known, summming...
BB33 -> BB33 has weight 0
BB33: all incoming edge weights known, sum is 0
BB32: 1 incoming unknown, 0 outgoing unknown
BB32: all outgoing edge weights known, summming...
BB32 -> BB81 has weight 0
BB32: all outgoing edge weights known, sum is 0
BB31 -> BB32: target block weight and all other incoming edge weights known, so weight is 0
BB31: 1 incoming unknown, 0 outgoing unknown
BB31: all outgoing edge weights known, summming...
BB31 -> BB32 has weight 0
BB31: all outgoing edge weights known, sum is 0
BB30 -> BB31: target block weight and all other incoming edge weights known, so weight is 0
BB30: 1 incoming unknown, 0 outgoing unknown
BB30: all outgoing edge weights known, summming...
BB30 -> BB31 has weight 0
BB30 -> BB34 has weight 18
BB30: all outgoing edge weights known, sum is 18
BB28 -> BB30: target block weight and all other incoming edge weights known, so weight is 18
BB29: 1 incoming unknown, 0 outgoing unknown
BB29: all outgoing edge weights known, summming...
BB29 -> BB62 has weight 0
BB29: all outgoing edge weights known, sum is 0
BB28 -> BB29: target block weight and all other incoming edge weights known, so weight is 0
BB28: 1 incoming unknown, 1 outgoing unknown
BB27: 1 incoming unknown, 0 outgoing unknown
BB27: all outgoing edge weights known, summming...
BB27 -> BB01 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, summming...
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, 1 outgoing unknown
BB24: 1 incoming unknown, 0 outgoing unknown
BB24: all outgoing edge weights known, summming...
BB24 -> BB22 has weight 0
BB24: all outgoing edge weights known, sum is 0
BB22 -> 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, summming...
BB23 -> BB24 has weight 0
BB23: all outgoing edge weights known, sum is 0
BB22 -> BB23: target block weight and all other incoming edge weights known, so weight is 0
BB22: 0 incoming unknown, 0 outgoing unknown
BB22: all incoming edge weights known, summming...
BB24 -> BB22 has weight 0
BB22: all incoming edge weights known, sum is 0
BB21: 1 incoming unknown, 0 outgoing unknown
BB21: all outgoing edge weights known, summming...
BB21 -> BB81 has weight 0
BB21: all outgoing edge weights known, sum is 0
BB17 -> BB21: target block weight and all other incoming edge weights known, so weight is 0
BB20: 1 incoming unknown, 0 outgoing unknown
BB20: all outgoing edge weights known, summming...
BB20 -> BB18 has weight 0
BB20: all outgoing edge weights known, sum is 0
BB18 -> BB20: target block weight and all other incoming edge weights known, so weight is 0
BB19: 1 incoming unknown, 0 outgoing unknown
BB19: all outgoing edge weights known, summming...
BB19 -> BB20 has weight 0
BB19: all outgoing edge weights known, sum is 0
BB18 -> BB19: target block weight and all other incoming edge weights known, so weight is 0
BB18: 0 incoming unknown, 0 outgoing unknown
BB18: all incoming edge weights known, summming...
BB20 -> BB18 has weight 0
BB18: all incoming edge weights known, sum is 0
BB17: 1 incoming unknown, 0 outgoing unknown
BB17: all outgoing edge weights known, summming...
BB17 -> BB21 has weight 0
BB17: all outgoing edge weights known, sum is 0
BB16 -> BB17: target block weight and all other incoming edge weights known, so weight is 0
BB16: 1 incoming unknown, 1 outgoing unknown
BB15: 1 incoming unknown, 0 outgoing unknown
BB15: all outgoing edge weights known, summming...
BB15 -> BB13 has weight 0
BB15: all outgoing edge weights known, sum is 0
BB13 -> BB15: target block weight and all other incoming edge weights known, so weight is 0
BB14: 1 incoming unknown, 0 outgoing unknown
BB14: all outgoing edge weights known, summming...
BB14 -> BB15 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: 0 incoming unknown, 0 outgoing unknown
BB13: all incoming edge weights known, summming...
BB15 -> BB13 has weight 0
BB13: all incoming edge weights known, sum is 0
BB12: 1 incoming unknown, 0 outgoing unknown
BB12: all outgoing edge weights known, summming...
BB12 -> BB16 has weight 0
BB12: all outgoing edge weights known, sum is 0
BB11 -> 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, summming...
BB11 -> BB12 has weight 0
BB11: all outgoing edge weights known, sum is 0
BB16 -> BB11: target block weight and all other incoming edge weights known, so weight is 0
BB10: 1 incoming unknown, 1 outgoing unknown
BB09: 1 incoming unknown, 1 outgoing unknown
BB08: 1 incoming unknown, 1 outgoing unknown
BB07: 1 incoming unknown, 1 outgoing unknown
BB06: 1 incoming unknown, 1 outgoing unknown
BB05: 1 incoming unknown, 2 outgoing unknown
BB04: 1 incoming unknown, 0 outgoing unknown
BB04: all outgoing edge weights known, summming...
BB04 -> BB01 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, 1 outgoing unknown
BB02: 1 incoming unknown, 0 outgoing unknown
BB02: all outgoing edge weights known, summming...
BB02 -> BB01 has weight 12
BB02: all outgoing edge weights known, sum is 12
BB01 -> BB02: target block weight and all other incoming edge weights known, so weight is 12
BB01: 0 incoming unknown, 1 outgoing unknown
BB01: all incoming edge weights known, summming...
BB27 -> BB01 has weight 0
BB35 -> BB01 has weight 0
BB61 -> BB01 has weight 0
BB50 -> BB01 has weight 0
BB45 -> BB01 has weight 0
BB44 -> BB01 has weight 0
BB49 -> BB01 has weight 0
BB43 -> BB01 has weight 0
BB48 -> BB01 has weight 0
BB36 -> BB01 has weight 13
BB47 -> BB01 has weight 0
BB42 -> BB01 has weight 0
BB40 -> BB01 has weight 0
BB46 -> BB01 has weight 0
BB41 -> BB01 has weight 0
BB39 -> BB01 has weight 0
BB38 -> BB01 has weight 0
BB34 -> BB01 has weight 18
BB80 -> BB01 has weight 0
BB81 -> BB01 has weight 0
BB04 -> BB01 has weight 0
BB02 -> BB01 has weight 12
BB01: all incoming edge weights known, sum is 43
BB01 -> BB03: source block weight and all other outgoing edge weights known, so weight is 31
Pass [2]: 15 unknown blocks, 14 unknown edges
BB71: 1 incoming unknown, 0 outgoing unknown
BB71: all outgoing edge weights known, summming...
BB71 -> BB72 has weight 0
BB71 -> BB66 has weight 0
BB71: all outgoing edge weights known, sum is 0
BB65 -> BB71: target block weight and all other incoming edge weights known, so weight is 0
BB65: 1 incoming unknown, 0 outgoing unknown
BB65: all outgoing edge weights known, summming...
BB65 -> BB71 has weight 0
BB65: all outgoing edge weights known, sum is 0
BB64 -> BB65: target block weight and all other incoming edge weights known, so weight is 0
BB64: 1 incoming unknown, 0 outgoing unknown
BB64: all outgoing edge weights known, summming...
BB64 -> BB65 has weight 0
BB64: all outgoing edge weights known, sum is 0
BB63 -> BB64: target block weight and all other incoming edge weights known, so weight is 0
BB63: 1 incoming unknown, 0 outgoing unknown
BB63: all outgoing edge weights known, summming...
BB63 -> BB64 has weight 0
BB63: all outgoing edge weights known, sum is 0
BB62 -> BB63: target block weight and all other incoming edge weights known, so weight is 0
BB62: 1 incoming unknown, 0 outgoing unknown
BB62: all outgoing edge weights known, summming...
BB62 -> BB63 has weight 0
BB62 -> BB80 has weight 0
BB62: all outgoing edge weights known, sum is 0
BB28 -> BB62: target block weight and all other incoming edge weights known, so weight is 0
BB28: 1 incoming unknown, 0 outgoing unknown
BB28: all outgoing edge weights known, summming...
BB28 -> BB62 has weight 0
BB28 -> BB30 has weight 18
BB28 -> BB37 has weight 0
BB28 -> BB41 has weight 0
BB28 -> BB46 has weight 0
BB28 -> BB40 has weight 0
BB28 -> BB42 has weight 0
BB28 -> BB47 has weight 0
BB28 -> BB36 has weight 13
BB28 -> BB48 has weight 0
BB28 -> BB43 has weight 0
BB28 -> BB49 has weight 0
BB28 -> BB44 has weight 0
BB28 -> BB45 has weight 0
BB28 -> BB50 has weight 0
BB28 -> BB51 has weight 0
BB28 -> BB35 has weight 0
BB28 -> BB29 has weight 0
BB28: all outgoing edge weights known, sum is 31
BB25 -> BB28: target block weight and all other incoming edge weights known, so weight is 31
BB25: 1 incoming unknown, 0 outgoing unknown
BB25: all outgoing edge weights known, summming...
BB25 -> BB28 has weight 31
BB25 -> BB26 has weight 0
BB25: all outgoing edge weights known, sum is 31
BB05 -> BB25: target block weight and all other incoming edge weights known, so weight is 31
BB16: 1 incoming unknown, 0 outgoing unknown
BB16: all outgoing edge weights known, summming...
BB16 -> BB17 has weight 0
BB16 -> BB11 has weight 0
BB16: all outgoing edge weights known, sum is 0
BB10 -> BB16: 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, summming...
BB10 -> BB16 has weight 0
BB10: all outgoing edge weights known, sum is 0
BB09 -> 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, summming...
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, summming...
BB08 -> BB09 has weight 0
BB08: all outgoing edge weights known, sum is 0
BB07 -> BB08: 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, summming...
BB07 -> BB25 has weight 0
BB07 -> BB08 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, summming...
BB06 -> BB25 has weight 0
BB06 -> BB07 has weight 0
BB06: all outgoing edge weights known, sum is 0
BB05 -> 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, summming...
BB05 -> BB25 has weight 31
BB05 -> BB06 has weight 0
BB05: all outgoing edge weights known, sum is 31
BB03 -> BB05: target block weight and all other incoming edge weights known, so weight is 31
BB03: 0 incoming unknown, 0 outgoing unknown
BB03: all incoming edge weights known, summming...
BB01 -> BB03 has weight 31
BB03: all incoming edge weights known, sum is 31
Solver: converged in 2 passes
Suppressing zero count for BB13 as it is a handler entry
Suppressing zero count for BB18 as it is a handler entry
Suppressing zero count for BB22 as it is a handler entry
Switch in BB28 was hit 31 >= 30 times, checking for dominant edge
Non-default case 0 uniquely leads to target BB30 of dominant edge with likelihood 0.5806451; marking for peeling
Suppressing zero count for BB33 as it is a handler entry
Suppressing zero count for BB68 as it is a handler entry
Suppressing zero count for BB73 as it is a handler entry
Suppressing zero count for BB77 as it is a handler entry
*************** Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) IBC
BB02 [0001] 1 12 12 [00A..017) (return) IBC
BB03 [0002] 1 31 31 [017..01A)-> BB05 ( cond ) IBC
BB04 [0003] 1 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 31 31 [026..039)-> BB25 ( cond ) IBC
BB06 [0005] 1 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 31 31 [0BD..0C7)-> BB28 ( cond ) IBC
BB26 [0025] 1 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) IBC
BB29 [0028] 1 0 0 [132..137)-> BB62 (always) rare IBC
BB30 [0029] 1 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 0 0 [1A5..1B1) (return) rare IBC
BB36 [0035] 1 13 13 [1B1..1BD) (return) IBC
BB37 [0036] 1 0 0 [1BD..1C5)-> BB39 ( cond ) rare IBC
BB38 [0037] 1 0 0 [1C5..1D1) (return) rare IBC
BB39 [0038] 1 0 0 [1D1..1DD) (return) rare IBC
BB40 [0039] 1 0 0 [1DD..1E9) (return) rare IBC
BB41 [0040] 1 0 0 [1E9..1F5) (return) rare IBC
BB42 [0041] 1 0 0 [1F5..201) (return) rare IBC
BB43 [0042] 1 0 0 [201..20D) (return) rare IBC
BB44 [0043] 1 0 0 [20D..21A) (return) rare IBC
BB45 [0044] 1 0 0 [21A..226) (return) rare IBC
BB46 [0045] 1 0 0 [226..232) (return) rare IBC
BB47 [0046] 1 0 0 [232..23E) (return) rare IBC
BB48 [0047] 1 0 0 [23E..24B) (return) rare IBC
BB49 [0048] 1 0 0 [24B..257) (return) rare IBC
BB50 [0049] 1 0 0 [257..268) (return) rare IBC
BB51 [0050] 1 0 0 [268..279)-> BB53 ( cond ) rare IBC
BB52 [0051] 1 0 0 [279..27C)-> BB54 (always) rare IBC
BB53 [0052] 1 0 0 [27C..27D) rare IBC
BB54 [0053] 2 0 0 [27D..288)-> BB56 ( cond ) rare IBC
BB55 [0054] 1 0 0 [288..28F)-> BB57 (always) rare IBC
BB56 [0055] 1 0 0 [28F..294) rare IBC
BB57 [0056] 2 0 0 [294..3A4)-> BB59 ( cond ) rare IBC
BB58 [0057] 1 0 0 [3A4..3AB) rare IBC
BB59 [0058] 2 0 0 [3AB..3CF)-> BB61 ( cond ) rare IBC
BB60 [0059] 1 0 0 [3CF..3F3) rare IBC
BB61 [0060] 2 0 0 [3F3..40E) (return) rare IBC
BB62 [0061] 3 0 0 [40E..416)-> BB80 ( cond ) rare IBC
BB63 [0062] 1 0 0 [416..41D) rare IBC
BB64 [0063] 1 6 0 0 [41D..42A) T6 try { keep try rare IBC
BB65 [0064] 1 5 0 0 [42A..42C)-> BB71 (always) T5 try { keep try rare IBC
BB66 [0065] 1 5 0 0 [42C..43E) T5 rare bwd bwd-target IBC
BB67 [0066] 1 4 0 0 [43E..449)-> BB71 (leave ) T4 try { } keep try rare bwd IBC
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 0 0 [44D..454) T5 H4 rare bwd IBC
BB70 [0069] 2 5 4 0 0 [454..455) (finret) T5 H4 } rare bwd IBC
BB71 [0070] 2 5 0 0 [455..45E)-> BB66 ( cond ) T5 rare bwd IBC
BB72 [0071] 1 5 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 0 0 [48C..494) (return) rare IBC
BB81 [0080] 3 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..00A) -> BB03 (cond), preds={} succs={BB02,BB03}
------------ BB02 [00A..017) (return), preds={} succs={}
------------ BB03 [017..01A) -> BB05 (cond), preds={} succs={BB04,BB05}
------------ BB04 [01A..026) (return), preds={} succs={}
------------ BB05 [026..039) -> BB25 (cond), preds={} succs={BB06,BB25}
------------ BB06 [039..041) -> BB25 (cond), preds={} succs={BB07,BB25}
------------ BB07 [041..049) -> BB25 (cond), preds={} succs={BB08,BB25}
------------ BB08 [049..04F), preds={} succs={BB09}
------------ BB09 [04F..05C), preds={} succs={BB10}
------------ BB10 [05C..05E) -> BB16 (always), preds={} succs={BB16}
------------ BB11 [05E..070), preds={} succs={BB12}
------------ BB12 [070..07A) -> BB16 (leave), preds={} succs={BB16}
------------ BB13 [07A..07E) -> BB15 (cond), preds={} succs={BB14,BB15}
------------ BB14 [07E..085), preds={} succs={BB15}
------------ BB15 [085..086) (finret), preds={} succs={}
------------ BB16 [086..08F) -> BB11 (cond), preds={} succs={BB17,BB11}
------------ BB17 [08F..091) -> BB21 (leave), preds={} succs={BB21}
------------ BB18 [091..09E) -> BB20 (cond), preds={} succs={BB19,BB20}
------------ BB19 [09E..0A5), preds={} succs={BB20}
------------ BB20 [0A5..0A6) (finret), preds={} succs={}
------------ BB21 [0A6..0B3) -> BB81 (leave), preds={} succs={BB81}
------------ BB22 [0B3..0B6) -> BB24 (cond), preds={} succs={BB23,BB24}
------------ BB23 [0B6..0BC), preds={} succs={BB24}
------------ BB24 [0BC..0BD) (finret), preds={} succs={}
------------ BB25 [0BD..0C7) -> BB28 (cond), preds={} succs={BB26,BB28}
------------ BB26 [0C7..0D4) -> BB28 (cond), preds={} succs={BB27,BB28}
------------ BB27 [0D4..0DB) (return), preds={} succs={}
------------ BB28 [0DB..132) -> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch), preds={} succs={BB30,BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB35,BB29}
------------ BB29 [132..137) -> BB62 (always), preds={} succs={BB62}
------------ BB30 [137..13F) -> BB34 (cond), preds={} succs={BB31,BB34}
------------ BB31 [13F..150), preds={} succs={BB32}
------------ BB32 [150..195) -> BB81 (leave), preds={} succs={BB81}
------------ BB33 [195..19D) (finret), preds={} succs={}
------------ BB34 [19D..1A5) (return), preds={} succs={}
------------ BB35 [1A5..1B1) (return), preds={} succs={}
------------ BB36 [1B1..1BD) (return), preds={} succs={}
------------ BB37 [1BD..1C5) -> BB39 (cond), preds={} succs={BB38,BB39}
------------ BB38 [1C5..1D1) (return), preds={} succs={}
------------ BB39 [1D1..1DD) (return), preds={} succs={}
------------ BB40 [1DD..1E9) (return), preds={} succs={}
------------ BB41 [1E9..1F5) (return), preds={} succs={}
------------ BB42 [1F5..201) (return), preds={} succs={}
------------ BB43 [201..20D) (return), preds={} succs={}
------------ BB44 [20D..21A) (return), preds={} succs={}
------------ BB45 [21A..226) (return), preds={} succs={}
------------ BB46 [226..232) (return), preds={} succs={}
------------ BB47 [232..23E) (return), preds={} succs={}
------------ BB48 [23E..24B) (return), preds={} succs={}
------------ BB49 [24B..257) (return), preds={} succs={}
------------ BB50 [257..268) (return), preds={} succs={}
------------ BB51 [268..279) -> BB53 (cond), preds={} succs={BB52,BB53}
------------ BB52 [279..27C) -> BB54 (always), preds={} succs={BB54}
------------ BB53 [27C..27D), preds={} succs={BB54}
------------ BB54 [27D..288) -> BB56 (cond), preds={} succs={BB55,BB56}
------------ BB55 [288..28F) -> BB57 (always), preds={} succs={BB57}
------------ BB56 [28F..294), preds={} succs={BB57}
------------ BB57 [294..3A4) -> BB59 (cond), preds={} succs={BB58,BB59}
------------ BB58 [3A4..3AB), preds={} succs={BB59}
------------ BB59 [3AB..3CF) -> BB61 (cond), preds={} succs={BB60,BB61}
------------ BB60 [3CF..3F3), preds={} succs={BB61}
------------ BB61 [3F3..40E) (return), preds={} succs={}
------------ BB62 [40E..416) -> BB80 (cond), preds={} succs={BB63,BB80}
------------ BB63 [416..41D), preds={} succs={BB64}
------------ BB64 [41D..42A), preds={} succs={BB65}
------------ BB65 [42A..42C) -> BB71 (always), preds={} succs={BB71}
------------ BB66 [42C..43E), preds={} succs={BB67}
------------ BB67 [43E..449) -> BB71 (leave), preds={} succs={BB71}
------------ BB68 [449..44D) -> BB70 (cond), preds={} succs={BB69,BB70}
------------ BB69 [44D..454), preds={} succs={BB70}
------------ BB70 [454..455) (finret), preds={} succs={}
------------ BB71 [455..45E) -> BB66 (cond), preds={} succs={BB72,BB66}
------------ BB72 [45E..460) -> BB76 (leave), preds={} succs={BB76}
------------ BB73 [460..46D) -> BB75 (cond), preds={} succs={BB74,BB75}
------------ BB74 [46D..474), preds={} succs={BB75}
------------ BB75 [474..475) (finret), preds={} succs={}
------------ BB76 [475..480) -> BB81 (leave), preds={} succs={BB81}
------------ BB77 [480..484) -> BB79 (cond), preds={} succs={BB78,BB79}
------------ BB78 [484..48B), preds={} succs={BB79}
------------ BB79 [48B..48C) (finret), preds={} succs={}
------------ BB80 [48C..494) (return), preds={} succs={}
------------ BB81 [494..497) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Starting PHASE Importation
*************** In impImport() for Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) isinst 02000052
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF9001C7A70 (Python.Runtime.PyObject)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 6 (0x006) stloc.0
STMT00000 (IL 0x000... ???)
[000004] -AC-G------- * ASG ref
[000003] D------N---- +--* LCL_VAR ref V02 loc0
[000002] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000001] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9001c7a70 class
[000000] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 0] 7 (0x007) ldloc.0
[ 1] 8 (0x008) brfalse.s
STMT00001 (IL 0x007... ???)
[000008] ------------ * JTRUE void
[000007] ------------ \--* EQ int
[000005] ------------ +--* LCL_VAR ref V02 loc0
[000006] ------------ \--* CNS_INT ref null
impImportBlockPending for BB02
impImportBlockPending for BB03
Importing BB03 (PC=023) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 23 (0x017) ldarg.0
[ 1] 24 (0x018) brtrue.s
STMT00002 (IL 0x017... ???)
[000012] ------------ * JTRUE void
[000011] ------------ \--* NE int
[000009] ------------ +--* LCL_VAR ref V00 arg0
[000010] ------------ \--* CNS_INT ref null
impImportBlockPending for BB04
impImportBlockPending for BB05
Importing BB05 (PC=038) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 38 (0x026) ldarg.0
[ 1] 39 (0x027) callvirt 0A0000F9
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is ref, structSize is 0
impIntrinsic: call to Object.GetType
Expanding as special intrinsic
[ 1] 44 (0x02c) starg.s 1
STMT00003 (IL 0x026... ???)
[000016] -ACX-------- * ASG ref
[000015] D------N---- +--* LCL_VAR ref V01 arg1
[000014] --CX-------- \--* INTRINSIC ref objGetType
[000013] ------------ \--* LCL_VAR ref V00 arg0
[ 0] 46 (0x02e) ldarg.1
[ 1] 47 (0x02f) callvirt 0A0000FA
In Compiler::impImportCall: opcode is callvirt, kind=4, callRetType is bool, structSize is 0
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is System.Type (attrib 20000400)
base method is System.Type::get_IsGenericType
devirt to System.Type::get_IsGenericType -- inexact or not final
[000018] --C-G------- * CALLV vt-ind int System.Type.get_IsGenericType
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
Class not final or exact, and method not final
Considering guarded devirtualization at IL offset 47 (0x2f)
Likely class for 00007FF8FCE2C078 (System.Type) is 00007FF8FCE2F700 (System.RuntimeType) [likelihood:100 classes seen:1]
virtual call would invoke method get_IsGenericType
Marking call [000018] as guarded devirtualization candidate; will guess for class System.RuntimeType
STMT00004 (IL 0x02E... ???)
[000018] &-C-G------- * CALLV vt-ind int System.Type.get_IsGenericType (exactContextHnd=0x00007FF8FCE2C079)
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
[ 1] 52 (0x034) brfalse
STMT00005 (IL ???... ???)
[000022] --C--------- * JTRUE void
[000021] --C--------- \--* EQ int
[000019] --C--------- +--* RET_EXPR int (inl return expr [000018])
[000020] ------------ \--* CNS_INT int 0
impImportBlockPending for BB06
impImportBlockPending for BB25
Importing BB25 (PC=189) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 189 (0x0bd) ldarg.0
[ 1] 190 (0x0be) isinst 0200006B
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF9014E0530 (Python.Runtime.IPythonDerivedType)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 195 (0x0c3) stloc.1
lvaUpdateClass: NOT Updating class for V03 from (00007FF9014E0530) Python.Runtime.IPythonDerivedType to (00007FF8FCE25908) System.Object
STMT00006 (IL 0x0BD... ???)
[000027] -AC-G------- * ASG ref
[000026] D------N---- +--* LCL_VAR ref V03 loc1
[000025] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000024] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9014e0530 class
[000023] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 0] 196 (0x0c4) ldloc.1
[ 1] 197 (0x0c5) brfalse.s
STMT00007 (IL 0x0C4... ???)
[000031] ------------ * JTRUE void
[000030] ------------ \--* EQ int
[000028] ------------ +--* LCL_VAR ref V03 loc1
[000029] ------------ \--* CNS_INT ref null
impImportBlockPending for BB26
impImportBlockPending for BB28
Importing BB28 (PC=219) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 219 (0x0db) ldarg.1
[ 1] 220 (0x0dc) call 0A0000FC
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00008 (IL 0x0DB... ???)
[000033] I-C-G------- * CALL int System.Type.GetTypeCode (exactContextHnd=0x00007FF8FCE2C079)
[000032] ------------ arg0 \--* LCL_VAR ref V01 arg1
[ 1] 225 (0x0e1) stloc.2
STMT00009 (IL ???... ???)
[000036] -AC--------- * ASG int
[000035] D------N---- +--* LCL_VAR int V04 loc2
[000034] --C--------- \--* RET_EXPR int (inl return expr [000033])
[ 0] 226 (0x0e2) ldloc.2
[ 1] 227 (0x0e3) ldc.i4.1 1
[ 2] 228 (0x0e4) sub
[ 1] 229 (0x0e5) switch
STMT00010 (IL 0x0E2... ???)
[000040] ------------ * SWITCH void
[000039] ------------ \--* SUB int
[000037] ------------ +--* LCL_VAR int V04 loc2
[000038] ------------ \--* CNS_INT int 1
impImportBlockPending for BB30
impImportBlockPending for BB62
impImportBlockPending for BB37
impImportBlockPending for BB41
impImportBlockPending for BB46
impImportBlockPending for BB40
impImportBlockPending for BB42
impImportBlockPending for BB47
impImportBlockPending for BB36
impImportBlockPending for BB48
impImportBlockPending for BB43
impImportBlockPending for BB49
impImportBlockPending for BB44
impImportBlockPending for BB45
impImportBlockPending for BB50
impImportBlockPending for BB51
impImportBlockPending for BB62
impImportBlockPending for BB35
impImportBlockPending for BB29
Importing BB29 (PC=306) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 306 (0x132) br
impImportBlockPending for BB62
Importing BB35 (PC=421) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 421 (0x1a5) ldarg.0
[ 1] 422 (0x1a6) castclass 010000BE
Considering optimization of castclass from 00007FF8FCE25908 (System.Object) to 00007FF8FCF8F7C8 (System.String)
Can't optimize since fromClass is inexact
Expanding castclass as call because inline expansion not legal
[ 1] 427 (0x1ab) call 06000881
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000044]
STMT00011 (IL 0x1A5... ???)
[000044] I-CXG------- * CALL struct Python.Runtime.Runtime.PyString_FromString (exactContextHnd=0x00007FF9001CEA41)
[000043] --CXG------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTCLASS
[000042] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcf8f7c8 class
[000041] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 432 (0x1b0) ret
impFixupStructReturnType: retyping
[000045] --C--------- * RET_EXPR struct(inl return expr [000044])
STMT00012 (IL ???... ???)
[000046] --C--------- * RETURN struct
[000045] --C--------- \--* RET_EXPR struct(inl return expr [000044])
Importing BB51 (PC=616) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 616 (0x268) ldarg.0
[ 1] 617 (0x269) unbox.any 01000041
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 622 (0x26e) stloc.s 9
STMT00013 (IL 0x268... ???)
[000053] -ACXG------- * ASG struct (copy)
[000051] D------N---- +--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[000050] --CXG------- \--* OBJ struct<System.DateTime, 8>
[000049] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000048] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd4cc3e8 class
[000047] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 0] 624 (0x270) ldloca.s 9
[ 1] 626 (0x272) call 0A0000FF
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00014 (IL 0x270... ???)
[000056] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000055] ------------ this in rcx \--* ADDR byref
[000054] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 1] 631 (0x277) brfalse.s
STMT00015 (IL ???... ???)
[000060] --C--------- * JTRUE void
[000059] --C--------- \--* EQ int
[000057] --C--------- +--* RET_EXPR int (inl return expr [000056])
[000058] ------------ \--* CNS_INT int 0
impImportBlockPending for BB52
impImportBlockPending for BB53
Importing BB53 (PC=636) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 636 (0x27c) ldc.i4.7 7
*************** In impGetSpillTmpBase(BB53)
lvaGrabTemps(1) returning 27..27 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 12 12 [00A..017) (return) IBC
BB03 [0002] 1 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 13 13 [1B1..1BD) (return) IBC
BB37 [0036] 1 0 0 [1BD..1C5)-> BB39 ( cond ) rare IBC
BB38 [0037] 1 0 0 [1C5..1D1) (return) rare IBC
BB39 [0038] 1 0 0 [1D1..1DD) (return) rare IBC
BB40 [0039] 1 0 0 [1DD..1E9) (return) rare IBC
BB41 [0040] 1 0 0 [1E9..1F5) (return) rare IBC
BB42 [0041] 1 0 0 [1F5..201) (return) rare IBC
BB43 [0042] 1 0 0 [201..20D) (return) rare IBC
BB44 [0043] 1 0 0 [20D..21A) (return) rare IBC
BB45 [0044] 1 0 0 [21A..226) (return) rare IBC
BB46 [0045] 1 0 0 [226..232) (return) rare IBC
BB47 [0046] 1 0 0 [232..23E) (return) rare IBC
BB48 [0047] 1 0 0 [23E..24B) (return) rare IBC
BB49 [0048] 1 0 0 [24B..257) (return) rare IBC
BB50 [0049] 1 0 0 [257..268) (return) rare IBC
BB51 [0050] 1 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 0 0 [279..27C)-> BB54 (always) rare IBC
BB53 [0052] 1 0 0 [27C..27D) rare IBC
BB54 [0053] 2 0 0 [27D..288)-> BB56 ( cond ) rare IBC
BB55 [0054] 1 0 0 [288..28F)-> BB57 (always) rare IBC
BB56 [0055] 1 0 0 [28F..294) rare IBC
BB57 [0056] 2 0 0 [294..3A4)-> BB59 ( cond ) rare IBC
BB58 [0057] 1 0 0 [3A4..3AB) rare IBC
BB59 [0058] 2 0 0 [3AB..3CF)-> BB61 ( cond ) rare IBC
BB60 [0059] 1 0 0 [3CF..3F3) rare IBC
BB61 [0060] 2 0 0 [3F3..40E) (return) rare IBC
BB62 [0061] 3 0 0 [40E..416)-> BB80 ( cond ) rare IBC
BB63 [0062] 1 0 0 [416..41D) rare IBC
BB64 [0063] 1 6 0 0 [41D..42A) T6 try { keep try rare IBC
BB65 [0064] 1 5 0 0 [42A..42C)-> BB71 (always) T5 try { keep try rare IBC
BB66 [0065] 1 5 0 0 [42C..43E) T5 rare bwd bwd-target IBC
BB67 [0066] 1 4 0 0 [43E..449)-> BB71 (leave ) T4 try { } keep try rare bwd IBC
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 0 0 [44D..454) T5 H4 rare bwd IBC
BB70 [0069] 2 5 4 0 0 [454..455) (finret) T5 H4 } rare bwd IBC
BB71 [0070] 2 5 0 0 [455..45E)-> BB66 ( cond ) T5 rare bwd IBC
BB72 [0071] 1 5 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 0 0 [48C..494) (return) rare IBC
BB81 [0080] 3 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) rare IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB71 (leave ) T4 try { } keep try rare bwd IBC
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
STMT00016 (IL 0x27C... ???)
[000063] -A---------- * ASG int
[000062] D------N---- +--* LCL_VAR int V27 tmp1
[000061] ------------ \--* CNS_INT int 7
impImportBlockPending for BB54
Importing BB54 (PC=637) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 1] 637 (0x27d) stloc.s 10
STMT00017 (IL ???... ???)
[000067] -A---------- * ASG int
[000066] D------N---- +--* LCL_VAR int V12 loc10
[000065] ------------ \--* LCL_VAR int V27 tmp1
[ 0] 639 (0x27f) ldloca.s 9
[ 1] 641 (0x281) call 0A0000FF
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00018 (IL 0x27F... ???)
[000070] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000069] ------------ this in rcx \--* ADDR byref
[000068] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 1] 646 (0x286) brfalse.s
STMT00019 (IL ???... ???)
[000074] --C--------- * JTRUE void
[000073] --C--------- \--* EQ int
[000071] --C--------- +--* RET_EXPR int (inl return expr [000070])
[000072] ------------ \--* CNS_INT int 0
impImportBlockPending for BB55
impImportBlockPending for BB56
Importing BB56 (PC=655) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 655 (0x28f) ldsfld 04000022
*************** In impGetSpillTmpBase(BB56)
lvaGrabTemps(1) returning 28..28 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
STMT00020 (IL 0x28F... ???)
[000077] -A--G------- * ASG ref
[000076] D------N---- +--* LCL_VAR ref V28 tmp2
[000075] ----G------- \--* FIELD ref pyTupleNoKind
impImportBlockPending for BB57
Importing BB57 (PC=660) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 1] 660 (0x294) stloc.s 11
STMT00021 (IL ???... ???)
[000081] -A---------- * ASG ref
[000080] D------N---- +--* LCL_VAR ref V13 loc11
[000079] ------------ \--* LCL_VAR ref V28 tmp2
[ 0] 662 (0x296) ldloc.s 11
[ 1] 664 (0x298) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00022 (IL 0x296... ???)
[000083] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000082] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 669 (0x29d) ldc.i4.0 0
[ 2] 670 (0x29e) conv.i
Folding long operator with constant nodes into a constant:
[000086] ------------ * CAST long <- int
[000085] ------------ \--* CNS_INT int 0
Bashed to long constant:
[000086] ------------ * CNS_INT long 0
[ 2] 671 (0x29f) ldloca.s 9
[ 3] 673 (0x2a1) call 0A000100
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 29 (V29 tmp3) called for impAppendStmt.
STMT00024 (IL ???... ???)
[000092] -AC--------- * ASG struct (copy)
[000090] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000084] --C--------- \--* RET_EXPR struct(inl return expr [000083])
STMT00023 (IL ???... ???)
[000089] I-C-G------- * CALL int System.DateTime.get_Year (exactContextHnd=0x00007FF8FD4CC3E9)
[000088] ------------ this in rcx \--* ADDR byref
[000087] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 678 (0x2a6) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00025 (IL ???... ???)
[000095] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000094] --C--------- arg0 \--* RET_EXPR int (inl return expr [000089])
[ 3] 683 (0x2ab) stloc.s 18
STMT00026 (IL ???... ???)
[000099] -AC--------- * ASG struct (copy)
[000097] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000096] --C--------- \--* RET_EXPR struct(inl return expr [000095])
[ 2] 685 (0x2ad) ldloca.s 18
[ 3] 687 (0x2af) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00027 (IL ???... ???)
[000102] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000101] ------------ this in rcx \--* ADDR byref
[000100] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 692 (0x2b4) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000103] --C--------- * RET_EXPR struct(inl return expr [000102])
lvaGrabTemp returning 30 (V30 tmp4) called for struct address for call/obj.
STMT00028 (IL ???... ???)
[000107] -AC--------- * ASG struct (copy)
[000105] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
[000103] --C--------- \--* RET_EXPR struct(inl return expr [000102])
resulting tree:
[000110] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000109] ------------ \--* ADDR byref
[000108] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
Calling impNormStructVal on:
[000093] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
resulting tree:
[000112] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000111] ------------ \--* ADDR byref
[000093] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
STMT00029 (IL ???... ???)
[000104] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000112] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000111] ------------ | \--* ADDR byref
[000093] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000086] ------------ arg1 +--* CNS_INT long 0
[000110] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000109] ------------ \--* ADDR byref
[000108] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
[ 1] 697 (0x2b9) pop
STMT00030 (IL ???... ???)
[000115] --C--------- * COMMA void
[000113] --C--------- +--* RET_EXPR int (inl return expr [000104])
[000114] ------------ \--* NOP void
[ 0] 698 (0x2ba) ldloc.s 11
[ 1] 700 (0x2bc) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00031 (IL 0x2BA... ???)
[000117] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000116] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 705 (0x2c1) ldc.i4.1 1
[ 2] 706 (0x2c2) conv.i
Folding long operator with constant nodes into a constant:
[000120] ------------ * CAST long <- int
[000119] ------------ \--* CNS_INT int 1
Bashed to long constant:
[000120] ------------ * CNS_INT long 1
[ 2] 707 (0x2c3) ldloca.s 9
[ 3] 709 (0x2c5) call 0A000101
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 31 (V31 tmp5) called for impAppendStmt.
STMT00033 (IL ???... ???)
[000126] -AC--------- * ASG struct (copy)
[000124] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000118] --C--------- \--* RET_EXPR struct(inl return expr [000117])
STMT00032 (IL ???... ???)
[000123] I-C-G------- * CALL int System.DateTime.get_Month (exactContextHnd=0x00007FF8FD4CC3E9)
[000122] ------------ this in rcx \--* ADDR byref
[000121] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 714 (0x2ca) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00034 (IL ???... ???)
[000129] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000128] --C--------- arg0 \--* RET_EXPR int (inl return expr [000123])
[ 3] 719 (0x2cf) stloc.s 18
STMT00035 (IL ???... ???)
[000133] -AC--------- * ASG struct (copy)
[000131] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000130] --C--------- \--* RET_EXPR struct(inl return expr [000129])
[ 2] 721 (0x2d1) ldloca.s 18
[ 3] 723 (0x2d3) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00036 (IL ???... ???)
[000136] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000135] ------------ this in rcx \--* ADDR byref
[000134] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 728 (0x2d8) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000137] --C--------- * RET_EXPR struct(inl return expr [000136])
lvaGrabTemp returning 32 (V32 tmp6) called for struct address for call/obj.
STMT00037 (IL ???... ???)
[000141] -AC--------- * ASG struct (copy)
[000139] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
[000137] --C--------- \--* RET_EXPR struct(inl return expr [000136])
resulting tree:
[000144] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000143] ------------ \--* ADDR byref
[000142] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
Calling impNormStructVal on:
[000127] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
resulting tree:
[000146] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000145] ------------ \--* ADDR byref
[000127] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
STMT00038 (IL ???... ???)
[000138] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000146] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000145] ------------ | \--* ADDR byref
[000127] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000120] ------------ arg1 +--* CNS_INT long 1
[000144] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000143] ------------ \--* ADDR byref
[000142] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
[ 1] 733 (0x2dd) pop
STMT00039 (IL ???... ???)
[000149] --C--------- * COMMA void
[000147] --C--------- +--* RET_EXPR int (inl return expr [000138])
[000148] ------------ \--* NOP void
[ 0] 734 (0x2de) ldloc.s 11
[ 1] 736 (0x2e0) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00040 (IL 0x2DE... ???)
[000151] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000150] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 741 (0x2e5) ldc.i4.2 2
[ 2] 742 (0x2e6) conv.i
Folding long operator with constant nodes into a constant:
[000154] ------------ * CAST long <- int
[000153] ------------ \--* CNS_INT int 2
Bashed to long constant:
[000154] ------------ * CNS_INT long 2
[ 2] 743 (0x2e7) ldloca.s 9
[ 3] 745 (0x2e9) call 0A000102
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 33 (V33 tmp7) called for impAppendStmt.
STMT00042 (IL ???... ???)
[000160] -AC--------- * ASG struct (copy)
[000158] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000152] --C--------- \--* RET_EXPR struct(inl return expr [000151])
STMT00041 (IL ???... ???)
[000157] I-C-G------- * CALL int System.DateTime.get_Day (exactContextHnd=0x00007FF8FD4CC3E9)
[000156] ------------ this in rcx \--* ADDR byref
[000155] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 750 (0x2ee) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00043 (IL ???... ???)
[000163] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000162] --C--------- arg0 \--* RET_EXPR int (inl return expr [000157])
[ 3] 755 (0x2f3) stloc.s 18
STMT00044 (IL ???... ???)
[000167] -AC--------- * ASG struct (copy)
[000165] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000164] --C--------- \--* RET_EXPR struct(inl return expr [000163])
[ 2] 757 (0x2f5) ldloca.s 18
[ 3] 759 (0x2f7) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00045 (IL ???... ???)
[000170] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000169] ------------ this in rcx \--* ADDR byref
[000168] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 764 (0x2fc) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000171] --C--------- * RET_EXPR struct(inl return expr [000170])
lvaGrabTemp returning 34 (V34 tmp8) called for struct address for call/obj.
STMT00046 (IL ???... ???)
[000175] -AC--------- * ASG struct (copy)
[000173] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
[000171] --C--------- \--* RET_EXPR struct(inl return expr [000170])
resulting tree:
[000178] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000177] ------------ \--* ADDR byref
[000176] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
Calling impNormStructVal on:
[000161] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
resulting tree:
[000180] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000179] ------------ \--* ADDR byref
[000161] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
STMT00047 (IL ???... ???)
[000172] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000180] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000179] ------------ | \--* ADDR byref
[000161] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000154] ------------ arg1 +--* CNS_INT long 2
[000178] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000177] ------------ \--* ADDR byref
[000176] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
[ 1] 769 (0x301) pop
STMT00048 (IL ???... ???)
[000183] --C--------- * COMMA void
[000181] --C--------- +--* RET_EXPR int (inl return expr [000172])
[000182] ------------ \--* NOP void
[ 0] 770 (0x302) ldloc.s 11
[ 1] 772 (0x304) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00049 (IL 0x302... ???)
[000185] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000184] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 777 (0x309) ldc.i4.3 3
[ 2] 778 (0x30a) conv.i
Folding long operator with constant nodes into a constant:
[000188] ------------ * CAST long <- int
[000187] ------------ \--* CNS_INT int 3
Bashed to long constant:
[000188] ------------ * CNS_INT long 3
[ 2] 779 (0x30b) ldloca.s 9
[ 3] 781 (0x30d) call 0A000103
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 35 (V35 tmp9) called for impAppendStmt.
STMT00051 (IL ???... ???)
[000194] -AC--------- * ASG struct (copy)
[000192] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000186] --C--------- \--* RET_EXPR struct(inl return expr [000185])
STMT00050 (IL ???... ???)
[000191] I-C-G------- * CALL int System.DateTime.get_Hour (exactContextHnd=0x00007FF8FD4CC3E9)
[000190] ------------ this in rcx \--* ADDR byref
[000189] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 786 (0x312) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00052 (IL ???... ???)
[000197] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000196] --C--------- arg0 \--* RET_EXPR int (inl return expr [000191])
[ 3] 791 (0x317) stloc.s 18
STMT00053 (IL ???... ???)
[000201] -AC--------- * ASG struct (copy)
[000199] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000198] --C--------- \--* RET_EXPR struct(inl return expr [000197])
[ 2] 793 (0x319) ldloca.s 18
[ 3] 795 (0x31b) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00054 (IL ???... ???)
[000204] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000203] ------------ this in rcx \--* ADDR byref
[000202] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 800 (0x320) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000205] --C--------- * RET_EXPR struct(inl return expr [000204])
lvaGrabTemp returning 36 (V36 tmp10) called for struct address for call/obj.
STMT00055 (IL ???... ???)
[000209] -AC--------- * ASG struct (copy)
[000207] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
[000205] --C--------- \--* RET_EXPR struct(inl return expr [000204])
resulting tree:
[000212] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000211] ------------ \--* ADDR byref
[000210] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
Calling impNormStructVal on:
[000195] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
resulting tree:
[000214] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000213] ------------ \--* ADDR byref
[000195] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
STMT00056 (IL ???... ???)
[000206] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000214] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000213] ------------ | \--* ADDR byref
[000195] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000188] ------------ arg1 +--* CNS_INT long 3
[000212] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000211] ------------ \--* ADDR byref
[000210] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
[ 1] 805 (0x325) pop
STMT00057 (IL ???... ???)
[000217] --C--------- * COMMA void
[000215] --C--------- +--* RET_EXPR int (inl return expr [000206])
[000216] ------------ \--* NOP void
[ 0] 806 (0x326) ldloc.s 11
[ 1] 808 (0x328) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00058 (IL 0x326... ???)
[000219] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000218] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 813 (0x32d) ldc.i4.4 4
[ 2] 814 (0x32e) conv.i
Folding long operator with constant nodes into a constant:
[000222] ------------ * CAST long <- int
[000221] ------------ \--* CNS_INT int 4
Bashed to long constant:
[000222] ------------ * CNS_INT long 4
[ 2] 815 (0x32f) ldloca.s 9
[ 3] 817 (0x331) call 0A000104
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 37 (V37 tmp11) called for impAppendStmt.
STMT00060 (IL ???... ???)
[000228] -AC--------- * ASG struct (copy)
[000226] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000220] --C--------- \--* RET_EXPR struct(inl return expr [000219])
STMT00059 (IL ???... ???)
[000225] I-C-G------- * CALL int System.DateTime.get_Minute (exactContextHnd=0x00007FF8FD4CC3E9)
[000224] ------------ this in rcx \--* ADDR byref
[000223] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 822 (0x336) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00061 (IL ???... ???)
[000231] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000230] --C--------- arg0 \--* RET_EXPR int (inl return expr [000225])
[ 3] 827 (0x33b) stloc.s 18
STMT00062 (IL ???... ???)
[000235] -AC--------- * ASG struct (copy)
[000233] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000232] --C--------- \--* RET_EXPR struct(inl return expr [000231])
[ 2] 829 (0x33d) ldloca.s 18
[ 3] 831 (0x33f) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00063 (IL ???... ???)
[000238] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000237] ------------ this in rcx \--* ADDR byref
[000236] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 836 (0x344) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000239] --C--------- * RET_EXPR struct(inl return expr [000238])
lvaGrabTemp returning 38 (V38 tmp12) called for struct address for call/obj.
STMT00064 (IL ???... ???)
[000243] -AC--------- * ASG struct (copy)
[000241] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
[000239] --C--------- \--* RET_EXPR struct(inl return expr [000238])
resulting tree:
[000246] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000245] ------------ \--* ADDR byref
[000244] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
Calling impNormStructVal on:
[000229] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
resulting tree:
[000248] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000247] ------------ \--* ADDR byref
[000229] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
STMT00065 (IL ???... ???)
[000240] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000248] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000247] ------------ | \--* ADDR byref
[000229] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000222] ------------ arg1 +--* CNS_INT long 4
[000246] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000245] ------------ \--* ADDR byref
[000244] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
[ 1] 841 (0x349) pop
STMT00066 (IL ???... ???)
[000251] --C--------- * COMMA void
[000249] --C--------- +--* RET_EXPR int (inl return expr [000240])
[000250] ------------ \--* NOP void
[ 0] 842 (0x34a) ldloc.s 11
[ 1] 844 (0x34c) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00067 (IL 0x34A... ???)
[000253] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000252] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 849 (0x351) ldc.i4.5 5
[ 2] 850 (0x352) conv.i
Folding long operator with constant nodes into a constant:
[000256] ------------ * CAST long <- int
[000255] ------------ \--* CNS_INT int 5
Bashed to long constant:
[000256] ------------ * CNS_INT long 5
[ 2] 851 (0x353) ldloca.s 9
[ 3] 853 (0x355) call 0A000105
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 39 (V39 tmp13) called for impAppendStmt.
STMT00069 (IL ???... ???)
[000262] -AC--------- * ASG struct (copy)
[000260] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000254] --C--------- \--* RET_EXPR struct(inl return expr [000253])
STMT00068 (IL ???... ???)
[000259] I-C-G------- * CALL int System.DateTime.get_Second (exactContextHnd=0x00007FF8FD4CC3E9)
[000258] ------------ this in rcx \--* ADDR byref
[000257] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 858 (0x35a) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00070 (IL ???... ???)
[000265] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000264] --C--------- arg0 \--* RET_EXPR int (inl return expr [000259])
[ 3] 863 (0x35f) stloc.s 18
STMT00071 (IL ???... ???)
[000269] -AC--------- * ASG struct (copy)
[000267] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000266] --C--------- \--* RET_EXPR struct(inl return expr [000265])
[ 2] 865 (0x361) ldloca.s 18
[ 3] 867 (0x363) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00072 (IL ???... ???)
[000272] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000271] ------------ this in rcx \--* ADDR byref
[000270] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 872 (0x368) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000273] --C--------- * RET_EXPR struct(inl return expr [000272])
lvaGrabTemp returning 40 (V40 tmp14) called for struct address for call/obj.
STMT00073 (IL ???... ???)
[000277] -AC--------- * ASG struct (copy)
[000275] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
[000273] --C--------- \--* RET_EXPR struct(inl return expr [000272])
resulting tree:
[000280] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000279] ------------ \--* ADDR byref
[000278] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
Calling impNormStructVal on:
[000263] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
resulting tree:
[000282] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000281] ------------ \--* ADDR byref
[000263] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
STMT00074 (IL ???... ???)
[000274] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000282] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000281] ------------ | \--* ADDR byref
[000263] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000256] ------------ arg1 +--* CNS_INT long 5
[000280] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000279] ------------ \--* ADDR byref
[000278] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
[ 1] 877 (0x36d) pop
STMT00075 (IL ???... ???)
[000285] --C--------- * COMMA void
[000283] --C--------- +--* RET_EXPR int (inl return expr [000274])
[000284] ------------ \--* NOP void
[ 0] 878 (0x36e) ldloca.s 9
[ 1] 880 (0x370) call 0A000106
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00076 (IL 0x36E... ???)
[000288] I-C-G------- * CALL struct System.DateTime.get_TimeOfDay (exactContextHnd=0x00007FF8FD4CC3E9)
[000287] ------------ this in rcx \--* ADDR byref
[000286] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 1] 885 (0x375) stloc.s 19
STMT00077 (IL ???... ???)
[000292] -AC--------- * ASG struct (copy)
[000290] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
[000289] --C--------- \--* RET_EXPR struct(inl return expr [000288])
[ 0] 887 (0x377) ldloca.s 19
[ 1] 889 (0x379) call 0A000107
In Compiler::impImportCall: opcode is call, kind=0, callRetType is double, structSize is 0
STMT00078 (IL 0x377... ???)
[000295] I-C-G------- * CALL double System.TimeSpan.get_TotalSeconds (exactContextHnd=0x00007FF8FD001FA1)
[000294] ------------ this in rcx \--* ADDR byref
[000293] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
[ 1] 894 (0x37e) stloc.s 12
STMT00079 (IL ???... ???)
[000298] -AC--------- * ASG double
[000297] D------N---- +--* LCL_VAR double V14 loc12
[000296] --C--------- \--* RET_EXPR double(inl return expr [000295])
[ 0] 896 (0x380) ldloc.s 12
[ 1] 898 (0x382) ldloc.s 12
[ 2] 900 (0x384) call 0A000108
In Compiler::impImportCall: opcode is call, kind=0, callRetType is double, structSize is 0
STMT00080 (IL 0x380... ???)
[000301] I-C-G------- * CALL double System.Math.Truncate (exactContextHnd=0x00007FF8FD49AA39)
[000300] ------------ arg0 \--* LCL_VAR double V14 loc12
[ 2] 905 (0x389) sub
[ 1] 906 (0x38a) ldc.r8 1000000.0000000000
[ 2] 915 (0x393) mul
[ 1] 916 (0x394) call 0A000109
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
STMT00081 (IL ???... ???)
[000306] I-C-G------- * CALL int System.Convert.ToInt32 (exactContextHnd=0x00007FF8FD404741)
[000305] --C--------- arg0 \--* MUL double
[000303] --C--------- +--* SUB double
[000299] ------------ | +--* LCL_VAR double V14 loc12
[000302] --C--------- | \--* RET_EXPR double(inl return expr [000301])
[000304] ------------ \--* CNS_DBL double 1000000.0000000000
[ 1] 921 (0x399) stloc.s 13
STMT00082 (IL ???... ???)
[000309] -AC--------- * ASG int
[000308] D------N---- +--* LCL_VAR int V15 loc13
[000307] --C--------- \--* RET_EXPR int (inl return expr [000306])
[ 0] 923 (0x39b) ldloc.s 13
[ 1] 925 (0x39d) ldc.i4 1000000
[ 2] 930 (0x3a2) bne.un.s
STMT00083 (IL 0x39B... ???)
[000313] ------------ * JTRUE void
[000312] N--------U-- \--* NE int
[000310] ------------ +--* LCL_VAR int V15 loc13
[000311] ------------ \--* CNS_INT int 0xF4240
impImportBlockPending for BB58
impImportBlockPending for BB59
Importing BB59 (PC=939) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 939 (0x3ab) ldloc.s 11
[ 1] 941 (0x3ad) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00084 (IL 0x3AB... ???)
[000315] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000314] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 946 (0x3b2) ldc.i4.6 6
[ 2] 947 (0x3b3) conv.i
Folding long operator with constant nodes into a constant:
[000318] ------------ * CAST long <- int
[000317] ------------ \--* CNS_INT int 6
Bashed to long constant:
[000318] ------------ * CNS_INT long 6
[ 2] 948 (0x3b4) ldloc.s 13
[ 3] 950 (0x3b6) call 06000847
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
lvaGrabTemp returning 41 (V41 tmp15) called for impAppendStmt.
STMT00086 (IL ???... ???)
[000323] -AC--------- * ASG struct (copy)
[000321] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000316] --C--------- \--* RET_EXPR struct(inl return expr [000315])
STMT00085 (IL ???... ???)
[000320] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000319] ------------ arg0 \--* LCL_VAR int V15 loc13
[ 3] 955 (0x3bb) stloc.s 18
STMT00087 (IL ???... ???)
[000328] -AC--------- * ASG struct (copy)
[000326] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000325] --C--------- \--* RET_EXPR struct(inl return expr [000320])
[ 2] 957 (0x3bd) ldloca.s 18
[ 3] 959 (0x3bf) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00088 (IL ???... ???)
[000331] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000330] ------------ this in rcx \--* ADDR byref
[000329] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 964 (0x3c4) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000332] --C--------- * RET_EXPR struct(inl return expr [000331])
lvaGrabTemp returning 42 (V42 tmp16) called for struct address for call/obj.
STMT00089 (IL ???... ???)
[000336] -AC--------- * ASG struct (copy)
[000334] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
[000332] --C--------- \--* RET_EXPR struct(inl return expr [000331])
resulting tree:
[000339] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000338] ------------ \--* ADDR byref
[000337] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
Calling impNormStructVal on:
[000324] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
resulting tree:
[000341] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000340] ------------ \--* ADDR byref
[000324] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
STMT00090 (IL ???... ???)
[000333] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000341] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000340] ------------ | \--* ADDR byref
[000324] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000318] ------------ arg1 +--* CNS_INT long 6
[000339] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000338] ------------ \--* ADDR byref
[000337] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
[ 1] 969 (0x3c9) pop
STMT00091 (IL ???... ???)
[000344] --C--------- * COMMA void
[000342] --C--------- +--* RET_EXPR int (inl return expr [000333])
[000343] ------------ \--* NOP void
[ 0] 970 (0x3ca) ldloc.s 10
[ 1] 972 (0x3cc) ldc.i4.8 8
[ 2] 973 (0x3cd) bne.un.s
STMT00092 (IL 0x3CA... ???)
[000348] ------------ * JTRUE void
[000347] N--------U-- \--* NE int
[000345] ------------ +--* LCL_VAR int V12 loc10
[000346] ------------ \--* CNS_INT int 8
impImportBlockPending for BB60
impImportBlockPending for BB61
Importing BB61 (PC=1011) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1011 (0x3f3) ldsfld 0400001F
[ 1] 1016 (0x3f8) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00093 (IL 0x3F3... ???)
[000350] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000349] ----G------- arg0 \--* FIELD ref dateTimeCtor
[ 1] 1021 (0x3fd) ldloc.s 11
[ 2] 1023 (0x3ff) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
lvaGrabTemp returning 43 (V43 tmp17) called for impAppendStmt.
STMT00095 (IL ???... ???)
[000356] -AC--------- * ASG struct (copy)
[000354] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000351] --C--------- \--* RET_EXPR struct(inl return expr [000350])
STMT00094 (IL ???... ???)
[000353] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000352] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 2] 1028 (0x404) call 06000824
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
Calling impNormStructVal on:
[000358] --C--------- * RET_EXPR struct(inl return expr [000353])
lvaGrabTemp returning 44 (V44 tmp18) called for struct address for call/obj.
STMT00096 (IL ???... ???)
[000362] -AC--------- * ASG struct (copy)
[000360] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
[000358] --C--------- \--* RET_EXPR struct(inl return expr [000353])
resulting tree:
[000365] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000364] ------------ \--* ADDR byref
[000363] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
Calling impNormStructVal on:
[000357] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
resulting tree:
[000367] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000366] ------------ \--* ADDR byref
[000357] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
STMT00097 (IL ???... ???)
[000359] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000367] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000366] ------------ | \--* ADDR byref
[000357] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000365] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000364] ------------ \--* ADDR byref
[000363] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
[ 1] 1033 (0x409) stloc.s 14
STMT00098 (IL ???... ???)
[000371] -AC--------- * ASG struct (copy)
[000369] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
[000368] --C--------- \--* RET_EXPR struct(inl return expr [000359])
[ 0] 1035 (0x40b) ldloc.s 14
[ 1] 1037 (0x40d) ret
impFixupStructReturnType: retyping
[000372] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
STMT00099 (IL 0x40B... ???)
[000373] ------------ * RETURN struct
[000372] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
Importing BB60 (PC=975) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 975 (0x3cf) ldloc.s 11
[ 1] 977 (0x3d1) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00100 (IL 0x3CF... ???)
[000375] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000374] ------------ arg0 \--* LCL_VAR ref V13 loc11
[ 1] 982 (0x3d6) ldc.i4.7 7
[ 2] 983 (0x3d7) conv.i
Folding long operator with constant nodes into a constant:
[000378] ------------ * CAST long <- int
[000377] ------------ \--* CNS_INT int 7
Bashed to long constant:
[000378] ------------ * CNS_INT long 7
[ 2] 984 (0x3d8) ldloca.s 9
[ 3] 986 (0x3da) call 0A0000FF
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
lvaGrabTemp returning 45 (V45 tmp19) called for impAppendStmt.
STMT00102 (IL ???... ???)
[000384] -AC--------- * ASG struct (copy)
[000382] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000376] --C--------- \--* RET_EXPR struct(inl return expr [000375])
STMT00101 (IL ???... ???)
[000381] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000380] ------------ this in rcx \--* ADDR byref
[000379] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[ 3] 991 (0x3df) call 06000045
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.Converter:TzInfo(int):Python.Runtime.NewReference'
INLINER: Marking Python.Runtime.Converter:TzInfo(int):Python.Runtime.NewReference as NOINLINE because of has exception handling
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling'
[ 3] 996 (0x3e4) stloc.s 18
STMT00103 (IL ???... ???)
[000390] -AC-G------- * ASG struct (copy)
[000388] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000387] --C-G------- \--* CALL struct Python.Runtime.Converter.TzInfo
[000386] --C--------- arg0 \--* RET_EXPR int (inl return expr [000381])
[ 2] 998 (0x3e6) ldloca.s 18
[ 3] 1000 (0x3e8) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00104 (IL ???... ???)
[000393] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000392] ------------ this in rcx \--* ADDR byref
[000391] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 1005 (0x3ed) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000394] --C--------- * RET_EXPR struct(inl return expr [000393])
lvaGrabTemp returning 46 (V46 tmp20) called for struct address for call/obj.
STMT00105 (IL ???... ???)
[000398] -AC--------- * ASG struct (copy)
[000396] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
[000394] --C--------- \--* RET_EXPR struct(inl return expr [000393])
resulting tree:
[000401] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000400] ------------ \--* ADDR byref
[000399] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
Calling impNormStructVal on:
[000385] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
resulting tree:
[000403] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000402] ------------ \--* ADDR byref
[000385] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
STMT00106 (IL ???... ???)
[000395] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000403] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000402] ------------ | \--* ADDR byref
[000385] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000378] ------------ arg1 +--* CNS_INT long 7
[000401] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000400] ------------ \--* ADDR byref
[000399] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
[ 1] 1010 (0x3f2) pop
STMT00107 (IL ???... ???)
[000406] --C--------- * COMMA void
[000404] --C--------- +--* RET_EXPR int (inl return expr [000395])
[000405] ------------ \--* NOP void
impImportBlockPending for BB61
Importing BB58 (PC=932) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 932 (0x3a4) ldc.i4 999999
[ 1] 937 (0x3a9) stloc.s 13
STMT00108 (IL 0x3A4... ???)
[000409] -A---------- * ASG int
[000408] D------N---- +--* LCL_VAR int V15 loc13
[000407] ------------ \--* CNS_INT int 0xF423F
impImportBlockPending for BB59
Importing BB55 (PC=648) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 648 (0x288) ldsfld 04000023
[ 1] 653 (0x28d) br.s
Spilling stack entries into temps
STMT00109 (IL 0x288... ???)
[000412] -A--G------- * ASG ref
[000411] D------N---- +--* LCL_VAR ref V28 tmp2
[000410] ----G------- \--* FIELD ref pyTupleKind
impImportBlockPending for BB57
Importing BB52 (PC=633) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 633 (0x279) ldc.i4.8 8
[ 1] 634 (0x27a) br.s
Spilling stack entries into temps
STMT00110 (IL 0x279... ???)
[000416] -A---------- * ASG int
[000415] D------N---- +--* LCL_VAR int V27 tmp1
[000414] ------------ \--* CNS_INT int 8
impImportBlockPending for BB54
Importing BB50 (PC=599) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 599 (0x257) ldarg.0
[ 1] 600 (0x258) unbox.any 01000046
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 605 (0x25d) call 0A0000FE
In Compiler::impImportCall: opcode is call, kind=0, callRetType is double, structSize is 0
Calling impNormStructVal on:
[000421] --CXG------- * OBJ struct<System.Decimal, 16>
[000420] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000419] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf5f5b8 class
[000418] ------------ arg1 \--* LCL_VAR ref V00 arg0
resulting tree:
[000421] --CXG------- * OBJ struct<System.Decimal, 16>
[000420] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000419] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf5f5b8 class
[000418] ------------ arg1 \--* LCL_VAR ref V00 arg0
STMT00111 (IL 0x257... ???)
[000422] I-CXG------- * CALL double System.Decimal.ToDouble (exactContextHnd=0x00007FF8FCF5F5B9)
[000421] --CXG------- arg0 \--* OBJ struct<System.Decimal, 16>
[000420] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000419] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf5f5b8 class
[000418] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 610 (0x262) call 06000854
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000424]
STMT00112 (IL ???... ???)
[000424] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000423] --C--------- arg0 \--* RET_EXPR double(inl return expr [000422])
[ 1] 615 (0x267) ret
impFixupStructReturnType: retyping
[000425] --C--------- * RET_EXPR struct(inl return expr [000424])
STMT00113 (IL ???... ???)
[000426] --C--------- * RETURN struct
[000425] --C--------- \--* RET_EXPR struct(inl return expr [000424])
Importing BB45 (PC=538) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 538 (0x21a) ldarg.0
[ 1] 539 (0x21b) unbox.any 010000CC
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 544 (0x220) call 06000854
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000431]
STMT00114 (IL 0x21A... ???)
[000431] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000430] *-CXG------- arg0 \--* IND double
[000429] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000428] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf57320 class
[000427] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 549 (0x225) ret
impFixupStructReturnType: retyping
[000432] --C--------- * RET_EXPR struct(inl return expr [000431])
STMT00115 (IL ???... ???)
[000433] --C--------- * RETURN struct
[000432] --C--------- \--* RET_EXPR struct(inl return expr [000431])
Importing BB44 (PC=525) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 525 (0x20d) ldarg.0
[ 1] 526 (0x20e) unbox.any 010000CB
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 531 (0x213) conv.r8
[ 1] 532 (0x214) call 06000854
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000439]
STMT00116 (IL 0x20D... ???)
[000439] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000438] --CXG------- arg0 \--* CAST double <- float
[000437] *-CXG------- \--* IND float
[000436] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000435] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf2dea0 class
[000434] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 537 (0x219) ret
impFixupStructReturnType: retyping
[000440] --C--------- * RET_EXPR struct(inl return expr [000439])
STMT00117 (IL ???... ???)
[000441] --C--------- * RETURN struct
[000440] --C--------- \--* RET_EXPR struct(inl return expr [000439])
Importing BB49 (PC=587) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 587 (0x24b) ldarg.0
[ 1] 588 (0x24c) unbox.any 010000D1
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 593 (0x251) call 0600084B
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000446]
STMT00118 (IL 0x24B... ???)
[000446] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000445] *-CXG------- arg0 \--* IND long
[000444] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000443] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf29478 class
[000442] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 598 (0x256) ret
impFixupStructReturnType: retyping
[000447] --C--------- * RET_EXPR struct(inl return expr [000446])
STMT00119 (IL ???... ???)
[000448] --C--------- * RETURN struct
[000447] --C--------- \--* RET_EXPR struct(inl return expr [000446])
Importing BB43 (PC=513) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 513 (0x201) ldarg.0
[ 1] 514 (0x202) unbox.any 010000CA
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 519 (0x207) call 0600084A
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000453]
STMT00120 (IL 0x201... ???)
[000453] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromLongLong (exactContextHnd=0x00007FF9001CEA41)
[000452] *-CXG------- arg0 \--* IND long
[000451] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000450] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf26f98 class
[000449] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 524 (0x20c) ret
impFixupStructReturnType: retyping
[000454] --C--------- * RET_EXPR struct(inl return expr [000453])
STMT00121 (IL ???... ???)
[000455] --C--------- * RETURN struct
[000454] --C--------- \--* RET_EXPR struct(inl return expr [000453])
Importing BB48 (PC=574) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 574 (0x23e) ldarg.0
[ 1] 575 (0x23f) unbox.any 010000D0
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 580 (0x244) conv.u8
[ 1] 581 (0x245) call 0600084B
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000461]
STMT00122 (IL 0x23E... ???)
[000461] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000460] --CXG----U-- arg0 \--* CAST long <- ulong <- uint
[000459] *-CXG------- \--* IND int
[000458] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000457] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf24a68 class
[000456] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 586 (0x24a) ret
impFixupStructReturnType: retyping
[000462] --C--------- * RET_EXPR struct(inl return expr [000461])
STMT00123 (IL ???... ???)
[000463] --C--------- * RETURN struct
[000462] --C--------- \--* RET_EXPR struct(inl return expr [000461])
Importing BB36 (PC=433) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 433 (0x1b1) ldarg.0
[ 1] 434 (0x1b2) unbox.any 010000C9
Unable to optimize UNBOX.ANY -- can't resolve type comparison
Importing UNBOX.ANY as inline sequence
STMT00124 (IL 0x1B1... ???)
[000474] --CXG------- * QMARK void
[000468] Q--X-------- if +--* EQ int
[000467] #--X-------- | +--* IND long
[000464] ------------ | | \--* LCL_VAR ref V00 arg0
[000465] H----------- | \--* CNS_INT(h) long 0x7ff8fcf22580 class
[000473] --CXG------- if \--* COLON void
[000471] --CXG------- else +--* CALL help void HELPER.CORINFO_HELP_UNBOX
[000470] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fcf22580 class
[000466] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000472] ------------ then \--* NOP void
[ 1] 439 (0x1b7) call 06000847
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000478]
STMT00125 (IL ???... ???)
[000478] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000477] *--XG------- arg0 \--* IND int
[000476] ------------ \--* ADD byref
[000469] ------------ +--* LCL_VAR ref V00 arg0
[000475] ------------ \--* CNS_INT long 8
[ 1] 444 (0x1bc) ret
impFixupStructReturnType: retyping
[000479] --C--------- * RET_EXPR struct(inl return expr [000478])
STMT00126 (IL ???... ???)
[000480] --C--------- * RETURN struct
[000479] --C--------- \--* RET_EXPR struct(inl return expr [000478])
Importing BB47 (PC=562) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 562 (0x232) ldarg.0
[ 1] 563 (0x233) unbox.any 010000CF
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 568 (0x238) call 06000847
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000485]
STMT00127 (IL 0x232... ???)
[000485] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000486] --CXG------- arg0 \--* PUTARG_TYPE int
[000484] *-CXG------- \--* IND ushort
[000483] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000482] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf20000 class
[000481] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 573 (0x23d) ret
impFixupStructReturnType: retyping
[000487] --C--------- * RET_EXPR struct(inl return expr [000485])
STMT00128 (IL ???... ???)
[000488] --C--------- * RETURN struct
[000487] --C--------- \--* RET_EXPR struct(inl return expr [000485])
Importing BB42 (PC=501) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 501 (0x1f5) ldarg.0
[ 1] 502 (0x1f6) unbox.any 010000C8
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 507 (0x1fb) call 06000847
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000493]
STMT00129 (IL 0x1F5... ???)
[000493] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000494] --CXG------- arg0 \--* PUTARG_TYPE int
[000492] *-CXG------- \--* IND short
[000491] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000490] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefd840 class
[000489] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 512 (0x200) ret
impFixupStructReturnType: retyping
[000495] --C--------- * RET_EXPR struct(inl return expr [000493])
STMT00130 (IL ???... ???)
[000496] --C--------- * RETURN struct
[000495] --C--------- \--* RET_EXPR struct(inl return expr [000493])
Importing BB40 (PC=477) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 477 (0x1dd) ldarg.0
[ 1] 478 (0x1de) unbox.any 010000B5
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 483 (0x1e3) call 06000847
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000501]
STMT00131 (IL 0x1DD... ???)
[000501] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000502] --CXG------- arg0 \--* PUTARG_TYPE int
[000500] *-CXG------- \--* IND ubyte
[000499] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000498] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefb290 class
[000497] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 488 (0x1e8) ret
impFixupStructReturnType: retyping
[000503] --C--------- * RET_EXPR struct(inl return expr [000501])
STMT00132 (IL ???... ???)
[000504] --C--------- * RETURN struct
[000503] --C--------- \--* RET_EXPR struct(inl return expr [000501])
Importing BB46 (PC=550) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 550 (0x226) ldarg.0
[ 1] 551 (0x227) unbox.any 010000CE
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 556 (0x22c) call 06000847
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000509]
STMT00133 (IL 0x226... ???)
[000509] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000510] --CXG------- arg0 \--* PUTARG_TYPE int
[000508] *-CXG------- \--* IND byte
[000507] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000506] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcef6bc8 class
[000505] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 561 (0x231) ret
impFixupStructReturnType: retyping
[000511] --C--------- * RET_EXPR struct(inl return expr [000509])
STMT00134 (IL ???... ???)
[000512] --C--------- * RETURN struct
[000511] --C--------- \--* RET_EXPR struct(inl return expr [000509])
Importing BB41 (PC=489) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 489 (0x1e9) ldarg.0
[ 1] 490 (0x1ea) unbox.any 010000BF
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 495 (0x1ef) call 0600088B
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000517]
STMT00135 (IL 0x1E9... ???)
[000517] I-CXG------- * CALL struct Python.Runtime.Runtime.PyUnicode_FromOrdinal (exactContextHnd=0x00007FF9001CEA41)
[000518] --CXG------- arg0 \--* PUTARG_TYPE int
[000516] *-CXG------- \--* IND ushort
[000515] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000514] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcedb2f8 class
[000513] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 1] 500 (0x1f4) ret
impFixupStructReturnType: retyping
[000519] --C--------- * RET_EXPR struct(inl return expr [000517])
STMT00136 (IL ???... ???)
[000520] --C--------- * RETURN struct
[000519] --C--------- \--* RET_EXPR struct(inl return expr [000517])
Importing BB37 (PC=445) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 445 (0x1bd) ldarg.0
[ 1] 446 (0x1be) unbox.any 010000B6
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 451 (0x1c3) brfalse.s
STMT00137 (IL 0x1BD... ???)
[000527] --CXG------- * JTRUE void
[000526] --CXG------- \--* EQ int
[000524] *-CXG------- +--* IND bool
[000523] --CXG------- | \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000522] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fced5500 class
[000521] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000525] ------------ \--* CNS_INT int 0
impImportBlockPending for BB38
impImportBlockPending for BB39
Importing BB39 (PC=465) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 465 (0x1d1) call 060007D7
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00138 (IL 0x1D1... ???)
[000528] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyFalse (exactContextHnd=0x00007FF9001CEA41)
[ 1] 470 (0x1d6) ldc.i4.0 0
[ 2] 471 (0x1d7) newobj
lvaGrabTemp returning 47 (V47 tmp21) called for NewObj constructor temp.
STMT00139 (IL ???... ???)
[000533] IA---------- * ASG struct (init)
[000531] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000532] ------------ \--* CNS_INT int 0
06000104
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000529] --C--------- * RET_EXPR struct(inl return expr [000528])
lvaGrabTemp returning 48 (V48 tmp22) called for struct address for call/obj.
STMT00140 (IL ???... ???)
[000539] -AC--------- * ASG struct (copy)
[000537] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000529] --C--------- \--* RET_EXPR struct(inl return expr [000528])
resulting tree:
[000542] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000541] ------------ \--* ADDR byref
[000540] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
STMT00141 (IL ???... ???)
[000536] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000535] ------------ this in rcx +--* ADDR byref
[000534] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000542] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000541] ------------ | \--* ADDR byref
[000540] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000543] ------------ arg2 \--* PUTARG_TYPE bool
[000530] ------------ \--* CNS_INT int 0
[ 1] 476 (0x1dc) ret
impFixupStructReturnType: retyping
[000544] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
STMT00142 (IL 0x1DC... ???)
[000545] ------------ * RETURN struct
[000544] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
Importing BB38 (PC=453) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 453 (0x1c5) call 060007D6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00143 (IL 0x1C5... ???)
[000546] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyTrue (exactContextHnd=0x00007FF9001CEA41)
[ 1] 458 (0x1ca) ldc.i4.0 0
[ 2] 459 (0x1cb) newobj
lvaGrabTemp returning 49 (V49 tmp23) called for NewObj constructor temp.
STMT00144 (IL ???... ???)
[000551] IA---------- * ASG struct (init)
[000549] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000550] ------------ \--* CNS_INT int 0
06000104
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000547] --C--------- * RET_EXPR struct(inl return expr [000546])
lvaGrabTemp returning 50 (V50 tmp24) called for struct address for call/obj.
STMT00145 (IL ???... ???)
[000557] -AC--------- * ASG struct (copy)
[000555] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000547] --C--------- \--* RET_EXPR struct(inl return expr [000546])
resulting tree:
[000560] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000559] ------------ \--* ADDR byref
[000558] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
STMT00146 (IL ???... ???)
[000554] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000553] ------------ this in rcx +--* ADDR byref
[000552] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000560] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000559] ------------ | \--* ADDR byref
[000558] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000561] ------------ arg2 \--* PUTARG_TYPE bool
[000548] ------------ \--* CNS_INT int 0
[ 1] 464 (0x1d0) ret
impFixupStructReturnType: retyping
[000562] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
STMT00147 (IL 0x1D0... ???)
[000563] ------------ * RETURN struct
[000562] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
Importing BB62 (PC=1038) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1038 (0x40e) ldarg.0
[ 1] 1039 (0x40f) isinst 01000029
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF8FCE2FCE8 (System.Collections.IEnumerable)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 1044 (0x414) brfalse.s
STMT00148 (IL 0x40E... ???)
[000569] --C-G------- * JTRUE void
[000568] --C-G------- \--* EQ int
[000566] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000565] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000564] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000567] ------------ \--* CNS_INT ref null
impImportBlockPending for BB63
impImportBlockPending for BB80
Importing BB80 (PC=1164) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1164 (0x48c) ldarg.0
[ 1] 1165 (0x48d) ldarg.1
[ 2] 1166 (0x48e) call 060009C8
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000572]
STMT00149 (IL 0x48C... ???)
[000572] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000570] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000571] ------------ arg1 \--* LCL_VAR ref V01 arg1
[ 1] 1171 (0x493) ret
impFixupStructReturnType: retyping
[000573] --C--------- * RET_EXPR struct(inl return expr [000572])
STMT00150 (IL ???... ???)
[000574] --C--------- * RETURN struct
[000573] --C--------- \--* RET_EXPR struct(inl return expr [000572])
Importing BB63 (PC=1046) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1046 (0x416) newobj
lvaGrabTemp returning 51 (V51 tmp25) called for NewObj constructor temp.
Spilling stack for finalizable newobj
STMT00151 (IL 0x416... ???)
[000578] -A---------- * ASG ref
[000577] D------N---- +--* LCL_VAR ref V51 tmp25
[000576] ------------ \--* ALLOCOBJ ref
[000575] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
Marked V51 as a single def local
lvaSetClass: setting class for V51 to (00007FF9014B26A0) Python.Runtime.PyList [exact]
060006CE
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
STMT00152 (IL ???... ???)
[000580] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000579] ------------ this in rcx \--* LCL_VAR ref V51 tmp25
[ 1] 1051 (0x41b) stloc.s 20
lvaUpdateClass: Updating class for V22 from (00007FF9014B26A0) Python.Runtime.PyList to (00007FF9014B26A0) Python.Runtime.PyList [exact]
STMT00153 (IL 0x41B... ???)
[000583] -A---------- * ASG ref
[000582] D------N---- +--* LCL_VAR ref V22 loc20
[000581] ------------ \--* LCL_VAR ref V51 tmp25
impImportBlockPending for BB64
impImportBlockPending for BB77
Importing BB64 (PC=1053) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1053 (0x41d) ldarg.0
[ 1] 1054 (0x41e) castclass 01000029
Considering optimization of castclass from 00007FF8FCE25908 (System.Object) to 00007FF8FCE2FCE8 (System.Collections.IEnumerable)
Can't optimize since fromClass is inexact
Expanding castclass as call because inline expansion not legal
[ 1] 1059 (0x423) callvirt 0A000013
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Object (attrib 20000000)
base method is System.Collections.IEnumerable::GetEnumerator
--- base class is interface
--- no derived method: object class could not be cast to interface class
Class not final or exact
Considering guarded devirtualization at IL offset 1059 (0x423)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 1064 (0x428) stloc.s 21
STMT00154 (IL 0x41D... ???)
[000589] -ACXG------- * ASG ref
[000588] D------N---- +--* LCL_VAR ref V23 loc21
[000587] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000586] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000585] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000584] ------------ arg1 \--* LCL_VAR ref V00 arg0
impImportBlockPending for BB65
impImportBlockPending for BB73
Importing BB65 (PC=1066) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1066 (0x42a) br.s
impImportBlockPending for BB71
Importing BB71 (PC=1109) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1109 (0x455) ldloc.s 21
[ 1] 1111 (0x457) callvirt 0A00000E
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is bool, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::MoveNext
Considering guarded devirtualization at IL offset 1111 (0x457)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerator:MoveNext():bool:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 1116 (0x45c) brtrue.s
STMT00155 (IL 0x455... ???)
[000594] --C-G------- * JTRUE void
[000593] --C-G------- \--* NE int
[000591] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000590] ------------ this in rcx | \--* LCL_VAR ref V23 loc21
[000592] ------------ \--* CNS_INT int 0
impImportBlockPending for BB72
impImportBlockPending for BB66
Importing BB66 (PC=1068) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1068 (0x42c) ldloc.s 21
[ 1] 1070 (0x42e) callvirt 0A000011
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::get_Current
Considering guarded devirtualization at IL offset 1070 (0x42e)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerator:get_Current():System.Object:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 1075 (0x433) stloc.s 22
STMT00156 (IL 0x42C... ???)
[000598] -AC-G------- * ASG ref
[000597] D------N---- +--* LCL_VAR ref V24 loc22
[000596] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000595] ------------ this in rcx \--* LCL_VAR ref V23 loc21
[ 0] 1077 (0x435) ldloc.s 22
[ 1] 1079 (0x437) call 06000056
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
STMT00157 (IL 0x435... ???)
[000600] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000599] ------------ arg0 \--* LCL_VAR ref V24 loc22
[ 1] 1084 (0x43c) stloc.s 23
STMT00158 (IL ???... ???)
[000603] -AC--------- * ASG ref
[000602] D------N---- +--* LCL_VAR ref V25 loc23
[000601] --C--------- \--* RET_EXPR ref (inl return expr [000600])
impImportBlockPending for BB67
impImportBlockPending for BB68
Importing BB67 (PC=1086) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1086 (0x43e) ldloc.s 20
[ 1] 1088 (0x440) ldloc.s 23
[ 2] 1090 (0x442) callvirt 060006D3
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0
STMT00159 (IL 0x43E... ???)
[000606] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000604] ------------ this in rcx +--* LCL_VAR ref V22 loc20
[000605] ------------ arg1 \--* LCL_VAR ref V25 loc23
[ 0] 1095 (0x447) leave.s 0455
Before import CEE_LEAVE in BB67 (targetting BB71):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB71 (leave ) T4 try { } keep try rare bwd IBC
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=6, putInTryRegion=true, startBlk=BB65, endBlk=BB73, nearBlk=BB67, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=6, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB67
New Basic Block BB82 [0081] created.
impImportLeave - jumping out of a finally-protected try (EH#4), convert block BB67 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB82
New Basic Block BB83 [0082] created.
impImportLeave - jumping out of a finally-protected try (EH#4), created step (BBJ_ALWAYS) block BB83
impImportLeave - final destination of step blocks set to BB71
impImportBlockPending for BB71
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB82
Importing BB68 (PC=1097) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1097 (0x449) ldloc.s 23
[ 1] 1099 (0x44b) brfalse.s
STMT00160 (IL 0x449... ???)
[000610] ------------ * JTRUE void
[000609] ------------ \--* EQ int
[000607] ------------ +--* LCL_VAR ref V25 loc23
[000608] ------------ \--* CNS_INT ref null
impImportBlockPending for BB69
impImportBlockPending for BB70
Importing BB70 (PC=1108) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1108 (0x454) endfinally
STMT00161 (IL 0x454... ???)
[000611] ------------ * RETFILT void
Importing BB69 (PC=1101) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1101 (0x44d) ldloc.s 23
[ 1] 1103 (0x44f) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Python.Runtime.PyObject (attrib 20000000)
base method is System.IDisposable::Dispose
--- base class is interface
devirt to Python.Runtime.PyObject::Dispose -- final method
[000613] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000612] ------------ this in rcx \--* LCL_VAR ref V25 loc23
Class not final or exact
Considering guarded devirtualization at IL offset 1103 (0x44f)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.IDisposable:Dispose():this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
STMT00162 (IL 0x44D... ???)
[000613] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000612] ------------ this in rcx \--* LCL_VAR ref V25 loc23
impImportBlockPending for BB70
Importing BB72 (PC=1118) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1118 (0x45e) leave.s 0475
Before import CEE_LEAVE in BB72 (targetting BB76):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB76 (leave ) T5 } rare IBC
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=7, putInTryRegion=true, startBlk=BB64, endBlk=BB77, nearBlk=BB72, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=7, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB72
New Basic Block BB84 [0083] created.
impImportLeave - jumping out of a finally-protected try (EH#5), convert block BB72 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB84
New Basic Block BB85 [0084] created.
impImportLeave - jumping out of a finally-protected try (EH#5), created step (BBJ_ALWAYS) block BB85
impImportLeave - final destination of step blocks set to BB76
impImportBlockPending for BB76
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB84
Importing BB76 (PC=1141) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1141 (0x475) ldloc.s 20
[ 1] 1143 (0x477) call 06000774
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00163 (IL 0x475... ???)
[000615] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000614] ------------ arg0 \--* LCL_VAR ref V22 loc20
[ 1] 1148 (0x47c) stloc.s 8
STMT00164 (IL ???... ???)
[000619] -AC--------- * ASG struct (copy)
[000617] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000616] --C--------- \--* RET_EXPR struct(inl return expr [000615])
[ 0] 1150 (0x47e) leave.s 0494
Before import CEE_LEAVE in BB76 (targetting BB81):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB81 (leave ) T6 } rare IBC
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB76, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB76
New Basic Block BB86 [0085] created.
impImportLeave - jumping out of a finally-protected try (EH#6), convert block BB76 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB86
New Basic Block BB87 [0086] created.
impImportLeave - jumping out of a finally-protected try (EH#6), created step (BBJ_ALWAYS) block BB87
impImportLeave - final destination of step blocks set to BB81
impImportBlockPending for BB81
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) IBC
BB31 [0030] 1 BB30 0 0 [13F..150) rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB86
Importing BB81 (PC=1172) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1172 (0x494) ldloc.s 8
[ 1] 1174 (0x496) ret
impFixupStructReturnType: retyping
[000620] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
STMT00165 (IL 0x494... ???)
[000621] ------------ * RETURN struct
[000620] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
Importing BB73 (PC=1120) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1120 (0x460) ldloc.s 21
[ 1] 1122 (0x462) isinst 01000027
Considering optimization of isinst from 00007FF8FD0E8FD0 (System.Collections.IEnumerator) to 00007FF8FCFBD948 (System.IDisposable)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 1127 (0x467) stloc.s 7
STMT00166 (IL 0x460... ???)
[000626] -AC-G------- * ASG ref
[000625] D------N---- +--* LCL_VAR ref V09 loc7
[000624] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000623] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000622] ------------ arg1 \--* LCL_VAR ref V23 loc21
[ 0] 1129 (0x469) ldloc.s 7
[ 1] 1131 (0x46b) brfalse.s
STMT00167 (IL 0x469... ???)
[000630] ------------ * JTRUE void
[000629] ------------ \--* EQ int
[000627] ------------ +--* LCL_VAR ref V09 loc7
[000628] ------------ \--* CNS_INT ref null
impImportBlockPending for BB74
impImportBlockPending for BB75
Importing BB75 (PC=1140) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1140 (0x474) endfinally
STMT00168 (IL 0x474... ???)
[000631] ------------ * RETFILT void
Importing BB74 (PC=1133) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1133 (0x46d) ldloc.s 7
[ 1] 1135 (0x46f) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.IDisposable (attrib 00200400)
base method is System.IDisposable::Dispose
Considering guarded devirtualization at IL offset 1135 (0x46f)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.IDisposable:Dispose():this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
STMT00169 (IL 0x46D... ???)
[000633] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000632] ------------ this in rcx \--* LCL_VAR ref V09 loc7
impImportBlockPending for BB75
Importing BB77 (PC=1152) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1152 (0x480) ldloc.s 20
[ 1] 1154 (0x482) brfalse.s
STMT00170 (IL 0x480... ???)
[000637] ------------ * JTRUE void
[000636] ------------ \--* EQ int
[000634] ------------ +--* LCL_VAR ref V22 loc20
[000635] ------------ \--* CNS_INT ref null
impImportBlockPending for BB78
impImportBlockPending for BB79
Importing BB79 (PC=1163) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1163 (0x48b) endfinally
STMT00171 (IL 0x48B... ???)
[000638] ------------ * RETFILT void
Importing BB78 (PC=1156) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 1156 (0x484) ldloc.s 20
[ 1] 1158 (0x486) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Python.Runtime.PyList [exact] (attrib 20000000)
base method is System.IDisposable::Dispose
--- base class is interface
devirt to Python.Runtime.PyObject::Dispose -- exact
[000640] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000639] ------------ this in rcx \--* LCL_VAR ref V22 loc20
exact; can devirtualize
... after devirt...
[000640] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[000639] ------------ this in rcx \--* LCL_VAR ref V22 loc20
STMT00172 (IL 0x484... ???)
[000640] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000639] ------------ this in rcx \--* LCL_VAR ref V22 loc20
impImportBlockPending for BB79
Importing BB30 (PC=311) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 311 (0x137) ldarg.0
[ 1] 312 (0x138) isinst 01000042
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF8FD001FA0 (System.TimeSpan)
Can't optimize since fromClass is inexact
Expanding isinst inline
lvaGrabTemp returning 52 (V52 tmp26) called for spilling QMark2.
STMT00173 (IL 0x137... ???)
[000657] -A-X-------- * ASG ref
[000656] D------N---- +--* LCL_VAR ref V52 tmp26
[000655] ---X-------- \--* QMARK ref
[000648] Q----------- if +--* EQ int
[000647] ------------ | +--* LCL_VAR ref V00 arg0
[000646] ------------ | \--* CNS_INT ref null
[000654] ---X-------- if \--* COLON ref
[000652] ---X-------- else +--* QMARK ref
[000645] Q--X-------- if | +--* NE int
[000644] #--X-------- | | +--* IND long
[000643] ------------ | | | \--* LCL_VAR ref V00 arg0
[000642] H----------- | | \--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000651] ------------ if | \--* COLON ref
[000649] ------------ else | +--* LCL_VAR ref V00 arg0
[000650] ------------ then | \--* CNS_INT ref null
[000653] ------------ then \--* LCL_VAR ref V00 arg0
Marked V52 as a single def temp
lvaSetClass: setting class for V52 to (00007FF8FD001FA0) System.TimeSpan
[ 1] 317 (0x13d) brfalse.s
STMT00174 (IL ???... ???)
[000661] ------------ * JTRUE void
[000660] ------------ \--* EQ int
[000658] ------------ +--* LCL_VAR ref V52 tmp26
[000659] ------------ \--* CNS_INT ref null
impImportBlockPending for BB31
impImportBlockPending for BB34
Importing BB34 (PC=413) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 413 (0x19d) ldarg.0
[ 1] 414 (0x19e) ldarg.1
[ 2] 415 (0x19f) call 060009C8
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000664]
STMT00175 (IL 0x19D... ???)
[000664] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000662] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000663] ------------ arg1 \--* LCL_VAR ref V01 arg1
[ 1] 420 (0x1a4) ret
impFixupStructReturnType: retyping
[000665] --C--------- * RET_EXPR struct(inl return expr [000664])
STMT00176 (IL ???... ???)
[000666] --C--------- * RETURN struct
[000665] --C--------- \--* RET_EXPR struct(inl return expr [000664])
Importing BB31 (PC=319) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 319 (0x13f) ldarg.0
[ 1] 320 (0x140) unbox.any 01000042
Importing UNBOX.ANY as helper call because want smaller code or faster jitting
[ 1] 325 (0x145) stloc.s 15
STMT00177 (IL 0x13F... ???)
[000673] -ACXG------- * ASG struct (copy)
[000671] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
[000670] --CXG------- \--* OBJ struct<System.TimeSpan, 8>
[000669] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000668] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000667] ------------ arg1 \--* LCL_VAR ref V00 arg0
[ 0] 327 (0x147) ldc.i4.1 1
[ 1] 328 (0x148) conv.i
Folding long operator with constant nodes into a constant:
[000675] ------------ * CAST long <- int
[000674] ------------ \--* CNS_INT int 1
Bashed to long constant:
[000675] ------------ * CNS_INT long 1
[ 1] 329 (0x149) call 060008B3
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00178 (IL 0x147... ???)
[000676] I-C-G------- * CALL struct Python.Runtime.Runtime.PyTuple_New (exactContextHnd=0x00007FF9001CEA41)
[000675] ------------ arg0 \--* CNS_INT long 1
[ 1] 334 (0x14e) stloc.s 16
STMT00179 (IL ???... ???)
[000680] -AC--------- * ASG struct (copy)
[000678] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[000677] --C--------- \--* RET_EXPR struct(inl return expr [000676])
impImportBlockPending for BB32
impImportBlockPending for BB33
Importing BB32 (PC=336) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 336 (0x150) ldloca.s 16
[ 1] 338 (0x152) call 06000116
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00180 (IL 0x150... ???)
[000683] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000682] ------------ arg0 \--* ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[ 1] 343 (0x157) ldc.i4.0 0
[ 2] 344 (0x158) conv.i
Folding long operator with constant nodes into a constant:
[000686] ------------ * CAST long <- int
[000685] ------------ \--* CNS_INT int 0
Bashed to long constant:
[000686] ------------ * CNS_INT long 0
[ 2] 345 (0x159) ldloca.s 15
[ 3] 347 (0x15b) call 0A0000FD
In Compiler::impImportCall: opcode is call, kind=0, callRetType is double, structSize is 0
lvaGrabTemp returning 53 (V53 tmp27) called for impAppendStmt.
STMT00182 (IL ???... ???)
[000692] -AC--------- * ASG struct (copy)
[000690] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000684] --C--------- \--* RET_EXPR struct(inl return expr [000683])
STMT00181 (IL ???... ???)
[000689] I-C-G------- * CALL double System.TimeSpan.get_TotalDays (exactContextHnd=0x00007FF8FD001FA1)
[000688] ------------ this in rcx \--* ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
[ 3] 352 (0x160) call 06000854
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00183 (IL ???... ???)
[000695] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000694] --C--------- arg0 \--* RET_EXPR double(inl return expr [000689])
[ 3] 357 (0x165) stloc.s 18
STMT00184 (IL ???... ???)
[000699] -AC--------- * ASG struct (copy)
[000697] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000696] --C--------- \--* RET_EXPR struct(inl return expr [000695])
[ 2] 359 (0x167) ldloca.s 18
[ 3] 361 (0x169) call 0600010C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00185 (IL ???... ???)
[000702] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000701] ------------ this in rcx \--* ADDR byref
[000700] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[ 3] 366 (0x16e) call 060008B6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
Calling impNormStructVal on:
[000703] --C--------- * RET_EXPR struct(inl return expr [000702])
lvaGrabTemp returning 54 (V54 tmp28) called for struct address for call/obj.
STMT00186 (IL ???... ???)
[000707] -AC--------- * ASG struct (copy)
[000705] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
[000703] --C--------- \--* RET_EXPR struct(inl return expr [000702])
resulting tree:
[000710] n----------- * OBJ struct<Python.Runtime.StolenReference, 8>
[000709] ------------ \--* ADDR byref
[000708] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
Calling impNormStructVal on:
[000693] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
resulting tree:
[000712] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000711] ------------ \--* ADDR byref
[000693] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
STMT00187 (IL ???... ???)
[000704] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000712] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000711] ------------ | \--* ADDR byref
[000693] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000686] ------------ arg1 +--* CNS_INT long 0
[000710] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000709] ------------ \--* ADDR byref
[000708] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
[ 1] 371 (0x173) pop
STMT00188 (IL ???... ???)
[000715] --C--------- * COMMA void
[000713] --C--------- +--* RET_EXPR int (inl return expr [000704])
[000714] ------------ \--* NOP void
[ 0] 372 (0x174) ldsfld 04000020
[ 1] 377 (0x179) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00189 (IL 0x174... ???)
[000717] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000716] ----G------- arg0 \--* FIELD ref timeSpanCtor
[ 1] 382 (0x17e) ldloca.s 16
[ 2] 384 (0x180) call 06000116
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
lvaGrabTemp returning 55 (V55 tmp29) called for impAppendStmt.
STMT00191 (IL ???... ???)
[000724] -AC--------- * ASG struct (copy)
[000722] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000718] --C--------- \--* RET_EXPR struct(inl return expr [000717])
STMT00190 (IL ???... ???)
[000721] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000720] ------------ arg0 \--* ADDR byref
[000719] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[ 2] 389 (0x185) call 06000824
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
Calling impNormStructVal on:
[000726] --C--------- * RET_EXPR struct(inl return expr [000721])
lvaGrabTemp returning 56 (V56 tmp30) called for struct address for call/obj.
STMT00192 (IL ???... ???)
[000730] -AC--------- * ASG struct (copy)
[000728] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
[000726] --C--------- \--* RET_EXPR struct(inl return expr [000721])
resulting tree:
[000733] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000732] ------------ \--* ADDR byref
[000731] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
Calling impNormStructVal on:
[000725] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
resulting tree:
[000735] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000734] ------------ \--* ADDR byref
[000725] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
STMT00193 (IL ???... ???)
[000727] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000735] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000734] ------------ | \--* ADDR byref
[000725] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000733] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000732] ------------ \--* ADDR byref
[000731] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
[ 1] 394 (0x18a) stloc.s 17
STMT00194 (IL ???... ???)
[000739] -AC--------- * ASG struct (copy)
[000737] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
[000736] --C--------- \--* RET_EXPR struct(inl return expr [000727])
[ 0] 396 (0x18c) ldloc.s 17
[ 1] 398 (0x18e) stloc.s 8
STMT00195 (IL 0x18C... ???)
[000743] -A---------- * ASG struct (copy)
[000741] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000740] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
[ 0] 400 (0x190) leave 0494
Before import CEE_LEAVE in BB32 (targetting BB81):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB81 (leave ) T3 try { } keep try rare IBC
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB32, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB32
New Basic Block BB88 [0087] created.
impImportLeave - jumping out of a finally-protected try (EH#3), convert block BB32 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB88
New Basic Block BB89 [0088] created.
impImportLeave - jumping out of a finally-protected try (EH#3), created step (BBJ_ALWAYS) block BB89
impImportLeave - final destination of step blocks set to BB81
impImportBlockPending for BB81
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) rare IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB88
Importing BB33 (PC=405) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 405 (0x195) ldloca.s 16
[ 1] 407 (0x197) call 0600010E
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
STMT00196 (IL 0x195... ???)
[000746] I-C-G------- * CALL void Python.Runtime.NewReference.Dispose (exactContextHnd=0x00007FF9001F4CA9)
[000745] ------------ this in rcx \--* ADDR byref
[000744] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[ 0] 412 (0x19c) endfinally
STMT00197 (IL 0x19C... ???)
[000747] ------------ * RETFILT void
Importing BB26 (PC=199) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 199 (0x0c7) ldsfld 0400002E
[ 1] 204 (0x0cc) ldloc.1
[ 2] 205 (0x0cd) callvirt 0A0000FB
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Func`2[__Canon,Boolean][System.__Canon,System.Boolean]:Invoke(System.__Canon):bool:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result'
[ 1] 210 (0x0d2) brtrue.s
STMT00198 (IL 0x0C7... ???)
[000753] --C-G------- * JTRUE void
[000752] --C-G------- \--* NE int
[000750] --C-G------- +--* CALL int System.Func`2[__Canon,Boolean][System.__Canon,System.Boolean].Invoke
[000748] ----G------- this in rcx | +--* FIELD ref IsTransparentProxy
[000749] ------------ arg1 | \--* LCL_VAR ref V03 loc1
[000751] ------------ \--* CNS_INT int 0
impImportBlockPending for BB27
impImportBlockPending for BB28
Importing BB27 (PC=212) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 212 (0x0d4) ldloc.1
[ 1] 213 (0x0d5) call 060009A7
(Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
GTF_CALL_M_IMPLICIT_TAILCALL set for call [000755]
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.ClassDerivedObject:ToPython(Python.Runtime.IPythonDerivedType):Python.Runtime.NewReference'
INLINER: Marking Python.Runtime.ClassDerivedObject:ToPython(Python.Runtime.IPythonDerivedType):Python.Runtime.NewReference as NOINLINE because of has exception handling
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling'
[ 1] 218 (0x0da) ret
impFixupStructReturnType: retyping
[000755] --C-G------- * CALL struct Python.Runtime.ClassDerivedObject.ToPython
[000754] ------------ arg0 \--* LCL_VAR ref V03 loc1
STMT00199 (IL 0x0D4... ???)
[000756] --C-G------- * RETURN struct
[000755] --C-G------- \--* CALL struct Python.Runtime.ClassDerivedObject.ToPython
[000754] ------------ arg0 \--* LCL_VAR ref V03 loc1
Importing BB06 (PC=057) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 57 (0x039) ldarg.0
[ 1] 58 (0x03a) isinst 01000049
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF8FCED02E8 (System.Collections.IList)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 63 (0x03f) brfalse.s
STMT00200 (IL 0x039... ???)
[000762] --C-G------- * JTRUE void
[000761] --C-G------- \--* EQ int
[000759] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000758] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fced02e8 class
[000757] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000760] ------------ \--* CNS_INT ref null
impImportBlockPending for BB07
impImportBlockPending for BB25
Importing BB07 (PC=065) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 65 (0x041) ldarg.0
[ 1] 66 (0x042) isinst 010000CD
Considering optimization of isinst from 00007FF8FCE25908 (System.Object) to 00007FF8FD3B9808 (System.ComponentModel.INotifyPropertyChanged)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 71 (0x047) brtrue.s
STMT00201 (IL 0x041... ???)
[000768] --C-G------- * JTRUE void
[000767] --C-G------- \--* NE int
[000765] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000764] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fd3b9808 class
[000763] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000766] ------------ \--* CNS_INT ref null
impImportBlockPending for BB08
impImportBlockPending for BB25
Importing BB08 (PC=073) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 73 (0x049) newobj
lvaGrabTemp returning 57 (V57 tmp31) called for NewObj constructor temp.
Spilling stack for finalizable newobj
STMT00202 (IL 0x049... ???)
[000772] -A---------- * ASG ref
[000771] D------N---- +--* LCL_VAR ref V57 tmp31
[000770] ------------ \--* ALLOCOBJ ref
[000769] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
Marked V57 as a single def local
lvaSetClass: setting class for V57 to (00007FF9014B26A0) Python.Runtime.PyList [exact]
060006CE
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
STMT00203 (IL ???... ???)
[000774] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000773] ------------ this in rcx \--* LCL_VAR ref V57 tmp31
[ 1] 78 (0x04e) stloc.3
lvaUpdateClass: Updating class for V05 from (00007FF9014B26A0) Python.Runtime.PyList to (00007FF9014B26A0) Python.Runtime.PyList [exact]
STMT00204 (IL 0x04E... ???)
[000777] -A---------- * ASG ref
[000776] D------N---- +--* LCL_VAR ref V05 loc3
[000775] ------------ \--* LCL_VAR ref V57 tmp31
impImportBlockPending for BB09
impImportBlockPending for BB22
Importing BB09 (PC=079) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 79 (0x04f) ldarg.0
[ 1] 80 (0x050) castclass 01000029
Considering optimization of castclass from 00007FF8FCE25908 (System.Object) to 00007FF8FCE2FCE8 (System.Collections.IEnumerable)
Can't optimize since fromClass is inexact
Expanding castclass as call because inline expansion not legal
[ 1] 85 (0x055) callvirt 0A000013
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Object (attrib 20000000)
base method is System.Collections.IEnumerable::GetEnumerator
--- base class is interface
--- no derived method: object class could not be cast to interface class
Class not final or exact
Considering guarded devirtualization at IL offset 85 (0x55)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerable:GetEnumerator():System.Collections.IEnumerator:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 90 (0x05a) stloc.s 4
STMT00205 (IL 0x04F... ???)
[000783] -ACXG------- * ASG ref
[000782] D------N---- +--* LCL_VAR ref V06 loc4
[000781] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000780] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000779] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000778] ------------ arg1 \--* LCL_VAR ref V00 arg0
impImportBlockPending for BB10
impImportBlockPending for BB18
Importing BB10 (PC=092) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 92 (0x05c) br.s
impImportBlockPending for BB16
Importing BB16 (PC=134) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 134 (0x086) ldloc.s 4
[ 1] 136 (0x088) callvirt 0A00000E
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is bool, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::MoveNext
Considering guarded devirtualization at IL offset 136 (0x88)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerator:MoveNext():bool:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 141 (0x08d) brtrue.s
STMT00206 (IL 0x086... ???)
[000788] --C-G------- * JTRUE void
[000787] --C-G------- \--* NE int
[000785] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000784] ------------ this in rcx | \--* LCL_VAR ref V06 loc4
[000786] ------------ \--* CNS_INT int 0
impImportBlockPending for BB17
impImportBlockPending for BB11
Importing BB11 (PC=094) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 94 (0x05e) ldloc.s 4
[ 1] 96 (0x060) callvirt 0A000011
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is ref, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::get_Current
Considering guarded devirtualization at IL offset 96 (0x60)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Collections.IEnumerator:get_Current():System.Object:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 101 (0x065) stloc.s 5
STMT00207 (IL 0x05E... ???)
[000792] -AC-G------- * ASG ref
[000791] D------N---- +--* LCL_VAR ref V07 loc5
[000790] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000789] ------------ this in rcx \--* LCL_VAR ref V06 loc4
[ 0] 103 (0x067) ldloc.s 5
[ 1] 105 (0x069) call 06000056
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
STMT00208 (IL 0x067... ???)
[000794] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000793] ------------ arg0 \--* LCL_VAR ref V07 loc5
[ 1] 110 (0x06e) stloc.s 6
STMT00209 (IL ???... ???)
[000797] -AC--------- * ASG ref
[000796] D------N---- +--* LCL_VAR ref V08 loc6
[000795] --C--------- \--* RET_EXPR ref (inl return expr [000794])
impImportBlockPending for BB12
impImportBlockPending for BB13
Importing BB12 (PC=112) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 112 (0x070) ldloc.3
[ 1] 113 (0x071) ldloc.s 6
[ 2] 115 (0x073) callvirt 060006D3
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0
STMT00210 (IL 0x070... ???)
[000800] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000798] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[000799] ------------ arg1 \--* LCL_VAR ref V08 loc6
[ 0] 120 (0x078) leave.s 0086
Before import CEE_LEAVE in BB12 (targetting BB16):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB16 (leave ) T0 try { } keep try rare bwd IBC
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=2, putInTryRegion=true, startBlk=BB10, endBlk=BB18, nearBlk=BB12, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=2, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB12
New Basic Block BB90 [0089] created.
impImportLeave - jumping out of a finally-protected try (EH#0), convert block BB12 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB90
New Basic Block BB91 [0090] created.
impImportLeave - jumping out of a finally-protected try (EH#0), created step (BBJ_ALWAYS) block BB91
impImportLeave - final destination of step blocks set to BB16
impImportBlockPending for BB16
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB90
Importing BB13 (PC=122) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 122 (0x07a) ldloc.s 6
[ 1] 124 (0x07c) brfalse.s
STMT00211 (IL 0x07A... ???)
[000804] ------------ * JTRUE void
[000803] ------------ \--* EQ int
[000801] ------------ +--* LCL_VAR ref V08 loc6
[000802] ------------ \--* CNS_INT ref null
impImportBlockPending for BB14
impImportBlockPending for BB15
Importing BB15 (PC=133) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 133 (0x085) endfinally
STMT00212 (IL 0x085... ???)
[000805] ------------ * RETFILT void
Importing BB14 (PC=126) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 126 (0x07e) ldloc.s 6
[ 1] 128 (0x080) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Python.Runtime.PyObject (attrib 20000000)
base method is System.IDisposable::Dispose
--- base class is interface
devirt to Python.Runtime.PyObject::Dispose -- final method
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
Class not final or exact
Considering guarded devirtualization at IL offset 128 (0x80)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.IDisposable:Dispose():this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
STMT00213 (IL 0x07E... ???)
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
impImportBlockPending for BB15
Importing BB17 (PC=143) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 143 (0x08f) leave.s 00A6
Before import CEE_LEAVE in BB17 (targetting BB21):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB21 (leave ) T1 } rare IBC
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=3, putInTryRegion=true, startBlk=BB09, endBlk=BB22, nearBlk=BB17, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=3, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB17
New Basic Block BB92 [0091] created.
impImportLeave - jumping out of a finally-protected try (EH#1), convert block BB17 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB92
New Basic Block BB93 [0092] created.
impImportLeave - jumping out of a finally-protected try (EH#1), created step (BBJ_ALWAYS) block BB93
impImportLeave - final destination of step blocks set to BB21
impImportBlockPending for BB21
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB92 (always) T1 } rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB92
Importing BB21 (PC=166) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 166 (0x0a6) ldloc.3
[ 1] 167 (0x0a7) call 06000774
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00214 (IL 0x0A6... ???)
[000809] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000808] ------------ arg0 \--* LCL_VAR ref V05 loc3
[ 1] 172 (0x0ac) stloc.s 8
STMT00215 (IL ???... ???)
[000813] -AC--------- * ASG struct (copy)
[000811] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000810] --C--------- \--* RET_EXPR struct(inl return expr [000809])
[ 0] 174 (0x0ae) leave 0494
Before import CEE_LEAVE in BB21 (targetting BB81):
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB92 (always) T1 } i rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB81 (leave ) T2 } rare IBC
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
fgFindInsertPoint(regionIndex=0, putInTryRegion=true, startBlk=BB01, endBlk=BB00, nearBlk=BB21, jumpBlk=BB00, runRarely=false)
fgNewBBinRegion(jumpKind=8, tryIndex=0, hndIndex=0, putInFilter=false, runRarely=false, insertAtEnd=false): inserting after BB21
New Basic Block BB94 [0093] created.
impImportLeave - jumping out of a finally-protected try (EH#2), convert block BB21 to BBJ_ALWAYS, add BBJ_CALLFINALLY block BB94
New Basic Block BB95 [0094] created.
impImportLeave - jumping out of a finally-protected try (EH#2), created step (BBJ_ALWAYS) block BB95
impImportLeave - final destination of step blocks set to BB81
impImportBlockPending for BB81
After import CEE_LEAVE:
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB92 (always) T1 } i rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB94 (always) T2 } rare IBC
BB94 [0093] 1 0 0 [???..???)-> BB22 (callf ) i internal rare IBC
BB95 [0094] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
impImportBlockPending for BB94
Importing BB18 (PC=145) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 145 (0x091) ldloc.s 4
[ 1] 147 (0x093) isinst 01000027
Considering optimization of isinst from 00007FF8FD0E8FD0 (System.Collections.IEnumerator) to 00007FF8FCFBD948 (System.IDisposable)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 152 (0x098) stloc.s 7
STMT00216 (IL 0x091... ???)
[000818] -AC-G------- * ASG ref
[000817] D------N---- +--* LCL_VAR ref V09 loc7
[000816] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000815] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000814] ------------ arg1 \--* LCL_VAR ref V06 loc4
[ 0] 154 (0x09a) ldloc.s 7
[ 1] 156 (0x09c) brfalse.s
STMT00217 (IL 0x09A... ???)
[000822] ------------ * JTRUE void
[000821] ------------ \--* EQ int
[000819] ------------ +--* LCL_VAR ref V09 loc7
[000820] ------------ \--* CNS_INT ref null
impImportBlockPending for BB19
impImportBlockPending for BB20
Importing BB20 (PC=165) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 165 (0x0a5) endfinally
STMT00218 (IL 0x0A5... ???)
[000823] ------------ * RETFILT void
Importing BB19 (PC=158) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 158 (0x09e) ldloc.s 7
[ 1] 160 (0x0a0) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.IDisposable (attrib 00200400)
base method is System.IDisposable::Dispose
Considering guarded devirtualization at IL offset 160 (0xa0)
No likely class, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.IDisposable:Dispose():this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
STMT00219 (IL 0x09E... ???)
[000825] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000824] ------------ this in rcx \--* LCL_VAR ref V09 loc7
impImportBlockPending for BB20
Importing BB22 (PC=179) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 179 (0x0b3) ldloc.3
[ 1] 180 (0x0b4) brfalse.s
STMT00220 (IL 0x0B3... ???)
[000829] ------------ * JTRUE void
[000828] ------------ \--* EQ int
[000826] ------------ +--* LCL_VAR ref V05 loc3
[000827] ------------ \--* CNS_INT ref null
impImportBlockPending for BB23
impImportBlockPending for BB24
Importing BB24 (PC=188) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 188 (0x0bc) endfinally
STMT00221 (IL 0x0BC... ???)
[000830] ------------ * RETFILT void
Importing BB23 (PC=182) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 182 (0x0b6) ldloc.3
[ 1] 183 (0x0b7) callvirt 0A00000D
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Python.Runtime.PyList [exact] (attrib 20000000)
base method is System.IDisposable::Dispose
--- base class is interface
devirt to Python.Runtime.PyObject::Dispose -- exact
[000832] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
exact; can devirtualize
... after devirt...
[000832] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
STMT00222 (IL 0x0B6... ???)
[000832] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
impImportBlockPending for BB24
Importing BB04 (PC=026) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 26 (0x01a) call 060007D8
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00223 (IL 0x01A... ???)
[000833] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyNone (exactContextHnd=0x00007FF9001CEA41)
[ 1] 31 (0x01f) ldc.i4.0 0
[ 2] 32 (0x020) newobj
lvaGrabTemp returning 58 (V58 tmp32) called for NewObj constructor temp.
STMT00224 (IL ???... ???)
[000838] IA---------- * ASG struct (init)
[000836] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000837] ------------ \--* CNS_INT int 0
06000104
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000834] --C--------- * RET_EXPR struct(inl return expr [000833])
lvaGrabTemp returning 59 (V59 tmp33) called for struct address for call/obj.
STMT00225 (IL ???... ???)
[000844] -AC--------- * ASG struct (copy)
[000842] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000834] --C--------- \--* RET_EXPR struct(inl return expr [000833])
resulting tree:
[000847] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ \--* ADDR byref
[000845] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
STMT00226 (IL ???... ???)
[000841] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000840] ------------ this in rcx +--* ADDR byref
[000839] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000847] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ | \--* ADDR byref
[000845] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000848] ------------ arg2 \--* PUTARG_TYPE bool
[000835] ------------ \--* CNS_INT int 0
[ 1] 37 (0x025) ret
impFixupStructReturnType: retyping
[000849] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
STMT00227 (IL 0x025... ???)
[000850] ------------ * RETURN struct
[000849] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
Importing BB02 (PC=010) of 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference'
[ 0] 10 (0x00a) ldloc.0
[ 1] 11 (0x00b) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
STMT00228 (IL 0x00A... ???)
[000852] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000851] ------------ arg0 \--* LCL_VAR ref V02 loc0
[ 1] 16 (0x010) ldc.i4.0 0
[ 2] 17 (0x011) newobj
lvaGrabTemp returning 60 (V60 tmp34) called for NewObj constructor temp.
STMT00229 (IL ???... ???)
[000857] IA---------- * ASG struct (init)
[000855] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000856] ------------ \--* CNS_INT int 0
06000104
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000853] --C--------- * RET_EXPR struct(inl return expr [000852])
lvaGrabTemp returning 61 (V61 tmp35) called for struct address for call/obj.
STMT00230 (IL ???... ???)
[000863] -AC--------- * ASG struct (copy)
[000861] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000853] --C--------- \--* RET_EXPR struct(inl return expr [000852])
resulting tree:
[000866] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ \--* ADDR byref
[000864] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
STMT00231 (IL ???... ???)
[000860] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000859] ------------ this in rcx +--* ADDR byref
[000858] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000866] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ | \--* ADDR byref
[000864] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000867] ------------ arg2 \--* PUTARG_TYPE bool
[000854] ------------ \--* CNS_INT int 0
[ 1] 22 (0x016) ret
impFixupStructReturnType: retyping
[000868] ------------ * LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
STMT00232 (IL 0x016... ???)
[000869] ------------ * RETURN struct
[000868] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 BB01 12 12 [00A..017) (return) i IBC
BB03 [0002] 1 BB01 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 BB03 0 0 [01A..026) (return) i rare IBC
BB05 [0004] 1 BB03 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 BB05 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 BB06 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 BB07 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 BB08 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 BB09 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 BB16 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 BB11 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 BB13 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 BB14,BB13 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 BB12,BB10 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 BB16 0 0 [08F..091)-> BB92 (always) T1 } i rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep i
BB19 [0018] 1 2 1 BB18 0 0 [09E..0A5) T2 H1 i rare IBC
BB20 [0019] 2 2 1 BB19,BB18 0 0 [0A5..0A6) (finret) T2 H1 } i rare IBC
BB21 [0020] 1 2 BB17 0 0 [0A6..0B3)-> BB94 (always) T2 } i rare IBC
BB94 [0093] 1 0 0 [???..???)-> BB22 (callf ) i internal rare IBC
BB95 [0094] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep i
BB23 [0022] 1 2 BB22 0 0 [0B6..0BC) H2 i rare IBC
BB24 [0023] 2 2 BB23,BB22 0 0 [0BC..0BD) (finret) H2 } i rare IBC
BB25 [0024] 3 BB07,BB06,BB05 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 BB25 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 BB26 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 BB26,BB25 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 BB28 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 BB28 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 BB30 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 BB31 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 BB30 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 BB28 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 BB28 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 BB28 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 BB37 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 BB37 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 BB28 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 BB28 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 BB28 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 BB28 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 BB28 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 BB28 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 BB28 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 BB28 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 BB28 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 BB28 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 BB28 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 BB28 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 BB51 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 BB51 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 BB53,BB52 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 BB54 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 BB54 0 0 [28F..294) i rare IBC
BB57 [0056] 2 BB56,BB55 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 BB57 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 BB58,BB57 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 BB59 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 BB60,BB59 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 BB29,BB28,BB28 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 BB62 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 BB63 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 BB64 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 BB71 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 BB66 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 BB68 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 BB69,BB68 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 BB67,BB65 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 BB71 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 BB73 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 BB74,BB73 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 BB72 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 BB77 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 BB78,BB77 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 BB62 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 BB76,BB32,BB21 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: root method IL was partially imported -- imported 1162 of 1175 bytes of method IL
*************** Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 12 12 [00A..017) (return) i IBC
BB03 [0002] 1 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 0 0 [01A..026) (return) i rare IBC
BB05 [0004] 1 31 31 [026..039)-> BB25 ( cond ) i IBC
BB06 [0005] 1 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 0 0 [08F..091)-> BB92 (always) T1 } i rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep i
BB19 [0018] 1 2 1 0 0 [09E..0A5) T2 H1 i rare IBC
BB20 [0019] 2 2 1 0 0 [0A5..0A6) (finret) T2 H1 } i rare IBC
BB21 [0020] 1 2 0 0 [0A6..0B3)-> BB94 (always) T2 } i rare IBC
BB94 [0093] 1 0 0 [???..???)-> BB22 (callf ) i internal rare IBC
BB95 [0094] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep i
BB23 [0022] 1 2 0 0 [0B6..0BC) H2 i rare IBC
BB24 [0023] 2 2 0 0 [0BC..0BD) (finret) H2 } i rare IBC
BB25 [0024] 3 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 0 0 [28F..294) i rare IBC
BB57 [0056] 2 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..00A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01
STMT00000 (IL 0x000...0x006)
[000004] -AC-G------- * ASG ref
[000003] D------N---- +--* LCL_VAR ref V02 loc0
[000002] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000001] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9001c7a70 class
[000000] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB01
STMT00001 (IL 0x007...0x008)
[000008] ------------ * JTRUE void
[000007] ------------ \--* EQ int
[000005] ------------ +--* LCL_VAR ref V02 loc0
[000006] ------------ \--* CNS_INT ref null
------------ BB02 [00A..017) (return), preds={} succs={}
***** BB02
STMT00228 (IL 0x00A...0x016)
[000852] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000851] ------------ arg0 \--* LCL_VAR ref V02 loc0
***** BB02
STMT00229 (IL ???... ???)
[000857] IA---------- * ASG struct (init)
[000855] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000856] ------------ \--* CNS_INT int 0
***** BB02
STMT00230 (IL ???... ???)
[000863] -AC--------- * ASG struct (copy)
[000861] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000853] --C--------- \--* RET_EXPR struct(inl return expr [000852])
***** BB02
STMT00231 (IL ???... ???)
[000860] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000859] ------------ this in rcx +--* ADDR byref
[000858] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000866] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ | \--* ADDR byref
[000864] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000867] ------------ arg2 \--* PUTARG_TYPE bool
[000854] ------------ \--* CNS_INT int 0
***** BB02
STMT00232 (IL 0x016... ???)
[000869] ------------ * RETURN struct
[000868] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
------------ BB03 [017..01A) -> BB05 (cond), preds={} succs={BB04,BB05}
***** BB03
STMT00002 (IL 0x017...0x018)
[000012] ------------ * JTRUE void
[000011] ------------ \--* NE int
[000009] ------------ +--* LCL_VAR ref V00 arg0
[000010] ------------ \--* CNS_INT ref null
------------ BB04 [01A..026) (return), preds={} succs={}
***** BB04
STMT00223 (IL 0x01A...0x025)
[000833] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyNone (exactContextHnd=0x00007FF9001CEA41)
***** BB04
STMT00224 (IL ???... ???)
[000838] IA---------- * ASG struct (init)
[000836] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000837] ------------ \--* CNS_INT int 0
***** BB04
STMT00225 (IL ???... ???)
[000844] -AC--------- * ASG struct (copy)
[000842] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000834] --C--------- \--* RET_EXPR struct(inl return expr [000833])
***** BB04
STMT00226 (IL ???... ???)
[000841] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000840] ------------ this in rcx +--* ADDR byref
[000839] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000847] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ | \--* ADDR byref
[000845] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000848] ------------ arg2 \--* PUTARG_TYPE bool
[000835] ------------ \--* CNS_INT int 0
***** BB04
STMT00227 (IL 0x025... ???)
[000850] ------------ * RETURN struct
[000849] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
------------ BB05 [026..039) -> BB25 (cond), preds={} succs={BB06,BB25}
***** BB05
STMT00003 (IL 0x026...0x02C)
[000016] -ACX-------- * ASG ref
[000015] D------N---- +--* LCL_VAR ref V01 arg1
[000014] --CX-------- \--* INTRINSIC ref objGetType
[000013] ------------ \--* LCL_VAR ref V00 arg0
***** BB05
STMT00004 (IL 0x02E...0x034)
[000018] &-C-G------- * CALLV vt-ind int System.Type.get_IsGenericType (exactContextHnd=0x00007FF8FCE2C079)
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
***** BB05
STMT00005 (IL ???... ???)
[000022] --C--------- * JTRUE void
[000021] --C--------- \--* EQ int
[000019] --C--------- +--* RET_EXPR int (inl return expr [000018])
[000020] ------------ \--* CNS_INT int 0
------------ BB06 [039..041) -> BB25 (cond), preds={} succs={BB07,BB25}
***** BB06
STMT00200 (IL 0x039...0x03F)
[000762] --C-G------- * JTRUE void
[000761] --C-G------- \--* EQ int
[000759] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000758] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fced02e8 class
[000757] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000760] ------------ \--* CNS_INT ref null
------------ BB07 [041..049) -> BB25 (cond), preds={} succs={BB08,BB25}
***** BB07
STMT00201 (IL 0x041...0x047)
[000768] --C-G------- * JTRUE void
[000767] --C-G------- \--* NE int
[000765] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000764] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fd3b9808 class
[000763] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000766] ------------ \--* CNS_INT ref null
------------ BB08 [049..04F), preds={} succs={BB09}
***** BB08
STMT00202 (IL 0x049...0x04E)
[000772] -A---------- * ASG ref
[000771] D------N---- +--* LCL_VAR ref V57 tmp31
[000770] ------------ \--* ALLOCOBJ ref
[000769] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
***** BB08
STMT00203 (IL ???... ???)
[000774] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000773] ------------ this in rcx \--* LCL_VAR ref V57 tmp31
***** BB08
STMT00204 (IL 0x04E... ???)
[000777] -A---------- * ASG ref
[000776] D------N---- +--* LCL_VAR ref V05 loc3
[000775] ------------ \--* LCL_VAR ref V57 tmp31
------------ BB09 [04F..05C), preds={} succs={BB10}
***** BB09
STMT00205 (IL 0x04F...0x05A)
[000783] -ACXG------- * ASG ref
[000782] D------N---- +--* LCL_VAR ref V06 loc4
[000781] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000780] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000779] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000778] ------------ arg1 \--* LCL_VAR ref V00 arg0
------------ BB10 [05C..05E) -> BB16 (always), preds={} succs={BB16}
------------ BB11 [05E..070), preds={} succs={BB12}
***** BB11
STMT00207 (IL 0x05E...0x065)
[000792] -AC-G------- * ASG ref
[000791] D------N---- +--* LCL_VAR ref V07 loc5
[000790] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000789] ------------ this in rcx \--* LCL_VAR ref V06 loc4
***** BB11
STMT00208 (IL 0x067...0x06E)
[000794] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000793] ------------ arg0 \--* LCL_VAR ref V07 loc5
***** BB11
STMT00209 (IL ???... ???)
[000797] -AC--------- * ASG ref
[000796] D------N---- +--* LCL_VAR ref V08 loc6
[000795] --C--------- \--* RET_EXPR ref (inl return expr [000794])
------------ BB12 [070..07A) -> BB90 (always), preds={} succs={BB90}
***** BB12
STMT00210 (IL 0x070...0x078)
[000800] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000798] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[000799] ------------ arg1 \--* LCL_VAR ref V08 loc6
------------ BB90 [???..???) -> BB13 (callf), preds={} succs={BB13}
------------ BB91 [???..???) -> BB16 (ALWAYS), preds={} succs={BB16}
------------ BB13 [07A..07E) -> BB15 (cond), preds={} succs={BB14,BB15}
***** BB13
STMT00211 (IL 0x07A...0x07C)
[000804] ------------ * JTRUE void
[000803] ------------ \--* EQ int
[000801] ------------ +--* LCL_VAR ref V08 loc6
[000802] ------------ \--* CNS_INT ref null
------------ BB14 [07E..085), preds={} succs={BB15}
***** BB14
STMT00213 (IL 0x07E...0x080)
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
------------ BB15 [085..086) (finret), preds={} succs={BB91}
***** BB15
STMT00212 (IL 0x085...0x085)
[000805] ------------ * RETFILT void
------------ BB16 [086..08F) -> BB11 (cond), preds={} succs={BB17,BB11}
***** BB16
STMT00206 (IL 0x086...0x08D)
[000788] --C-G------- * JTRUE void
[000787] --C-G------- \--* NE int
[000785] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000784] ------------ this in rcx | \--* LCL_VAR ref V06 loc4
[000786] ------------ \--* CNS_INT int 0
------------ BB17 [08F..091) -> BB92 (always), preds={} succs={BB92}
------------ BB92 [???..???) -> BB18 (callf), preds={} succs={BB18}
------------ BB93 [???..???) -> BB21 (ALWAYS), preds={} succs={BB21}
------------ BB18 [091..09E) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18
STMT00216 (IL 0x091...0x098)
[000818] -AC-G------- * ASG ref
[000817] D------N---- +--* LCL_VAR ref V09 loc7
[000816] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000815] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000814] ------------ arg1 \--* LCL_VAR ref V06 loc4
***** BB18
STMT00217 (IL 0x09A...0x09C)
[000822] ------------ * JTRUE void
[000821] ------------ \--* EQ int
[000819] ------------ +--* LCL_VAR ref V09 loc7
[000820] ------------ \--* CNS_INT ref null
------------ BB19 [09E..0A5), preds={} succs={BB20}
***** BB19
STMT00219 (IL 0x09E...0x0A0)
[000825] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000824] ------------ this in rcx \--* LCL_VAR ref V09 loc7
------------ BB20 [0A5..0A6) (finret), preds={} succs={BB93}
***** BB20
STMT00218 (IL 0x0A5...0x0A5)
[000823] ------------ * RETFILT void
------------ BB21 [0A6..0B3) -> BB94 (always), preds={} succs={BB94}
***** BB21
STMT00214 (IL 0x0A6...0x0AC)
[000809] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000808] ------------ arg0 \--* LCL_VAR ref V05 loc3
***** BB21
STMT00215 (IL ???... ???)
[000813] -AC--------- * ASG struct (copy)
[000811] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000810] --C--------- \--* RET_EXPR struct(inl return expr [000809])
------------ BB94 [???..???) -> BB22 (callf), preds={} succs={BB22}
------------ BB95 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB22 [0B3..0B6) -> BB24 (cond), preds={} succs={BB23,BB24}
***** BB22
STMT00220 (IL 0x0B3...0x0B4)
[000829] ------------ * JTRUE void
[000828] ------------ \--* EQ int
[000826] ------------ +--* LCL_VAR ref V05 loc3
[000827] ------------ \--* CNS_INT ref null
------------ BB23 [0B6..0BC), preds={} succs={BB24}
***** BB23
STMT00222 (IL 0x0B6...0x0B7)
[000832] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
------------ BB24 [0BC..0BD) (finret), preds={} succs={BB95}
***** BB24
STMT00221 (IL 0x0BC...0x0BC)
[000830] ------------ * RETFILT void
------------ BB25 [0BD..0C7) -> BB28 (cond), preds={} succs={BB26,BB28}
***** BB25
STMT00006 (IL 0x0BD...0x0C3)
[000027] -AC-G------- * ASG ref
[000026] D------N---- +--* LCL_VAR ref V03 loc1
[000025] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000024] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9014e0530 class
[000023] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB25
STMT00007 (IL 0x0C4...0x0C5)
[000031] ------------ * JTRUE void
[000030] ------------ \--* EQ int
[000028] ------------ +--* LCL_VAR ref V03 loc1
[000029] ------------ \--* CNS_INT ref null
------------ BB26 [0C7..0D4) -> BB28 (cond), preds={} succs={BB27,BB28}
***** BB26
STMT00198 (IL 0x0C7...0x0D2)
[000753] --C-G------- * JTRUE void
[000752] --C-G------- \--* NE int
[000750] --C-G------- +--* CALL int System.Func`2[__Canon,Boolean][System.__Canon,System.Boolean].Invoke
[000748] ----G------- this in rcx | +--* FIELD ref IsTransparentProxy
[000749] ------------ arg1 | \--* LCL_VAR ref V03 loc1
[000751] ------------ \--* CNS_INT int 0
------------ BB27 [0D4..0DB) (return), preds={} succs={}
***** BB27
STMT00199 (IL 0x0D4...0x0DA)
[000756] --C-G------- * RETURN struct
[000755] --C-G------- \--* CALL struct Python.Runtime.ClassDerivedObject.ToPython
[000754] ------------ arg0 \--* LCL_VAR ref V03 loc1
------------ BB28 [0DB..132) -> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch), preds={} succs={BB30,BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB35,BB29}
***** BB28
STMT00008 (IL 0x0DB...0x0E1)
[000033] I-C-G------- * CALL int System.Type.GetTypeCode (exactContextHnd=0x00007FF8FCE2C079)
[000032] ------------ arg0 \--* LCL_VAR ref V01 arg1
***** BB28
STMT00009 (IL ???... ???)
[000036] -AC--------- * ASG int
[000035] D------N---- +--* LCL_VAR int V04 loc2
[000034] --C--------- \--* RET_EXPR int (inl return expr [000033])
***** BB28
STMT00010 (IL 0x0E2...0x0E5)
[000040] ------------ * SWITCH void
[000039] ------------ \--* SUB int
[000037] ------------ +--* LCL_VAR int V04 loc2
[000038] ------------ \--* CNS_INT int 1
------------ BB29 [132..137) -> BB62 (always), preds={} succs={BB62}
------------ BB30 [137..13F) -> BB34 (cond), preds={} succs={BB31,BB34}
***** BB30
STMT00173 (IL 0x137...0x13D)
[000657] -A-X-------- * ASG ref
[000656] D------N---- +--* LCL_VAR ref V52 tmp26
[000655] ---X-------- \--* QMARK ref
[000648] Q----------- if +--* EQ int
[000647] ------------ | +--* LCL_VAR ref V00 arg0
[000646] ------------ | \--* CNS_INT ref null
[000654] ---X-------- if \--* COLON ref
[000652] ---X-------- else +--* QMARK ref
[000645] Q--X-------- if | +--* NE int
[000644] #--X-------- | | +--* IND long
[000643] ------------ | | | \--* LCL_VAR ref V00 arg0
[000642] H----------- | | \--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000651] ------------ if | \--* COLON ref
[000649] ------------ else | +--* LCL_VAR ref V00 arg0
[000650] ------------ then | \--* CNS_INT ref null
[000653] ------------ then \--* LCL_VAR ref V00 arg0
***** BB30
STMT00174 (IL ???... ???)
[000661] ------------ * JTRUE void
[000660] ------------ \--* EQ int
[000658] ------------ +--* LCL_VAR ref V52 tmp26
[000659] ------------ \--* CNS_INT ref null
------------ BB31 [13F..150), preds={} succs={BB32}
***** BB31
STMT00177 (IL 0x13F...0x145)
[000673] -ACXG------- * ASG struct (copy)
[000671] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
[000670] --CXG------- \--* OBJ struct<System.TimeSpan, 8>
[000669] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000668] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000667] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB31
STMT00178 (IL 0x147...0x14E)
[000676] I-C-G------- * CALL struct Python.Runtime.Runtime.PyTuple_New (exactContextHnd=0x00007FF9001CEA41)
[000675] ------------ arg0 \--* CNS_INT long 1
***** BB31
STMT00179 (IL ???... ???)
[000680] -AC--------- * ASG struct (copy)
[000678] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[000677] --C--------- \--* RET_EXPR struct(inl return expr [000676])
------------ BB32 [150..195) -> BB88 (always), preds={} succs={BB88}
***** BB32
STMT00180 (IL 0x150...0x165)
[000683] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000682] ------------ arg0 \--* ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB32
STMT00182 (IL ???... ???)
[000692] -AC--------- * ASG struct (copy)
[000690] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000684] --C--------- \--* RET_EXPR struct(inl return expr [000683])
***** BB32
STMT00181 (IL ???... ???)
[000689] I-C-G------- * CALL double System.TimeSpan.get_TotalDays (exactContextHnd=0x00007FF8FD001FA1)
[000688] ------------ this in rcx \--* ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
***** BB32
STMT00183 (IL ???... ???)
[000695] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000694] --C--------- arg0 \--* RET_EXPR double(inl return expr [000689])
***** BB32
STMT00184 (IL ???... ???)
[000699] -AC--------- * ASG struct (copy)
[000697] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000696] --C--------- \--* RET_EXPR struct(inl return expr [000695])
***** BB32
STMT00185 (IL ???...0x173)
[000702] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000701] ------------ this in rcx \--* ADDR byref
[000700] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB32
STMT00186 (IL ???... ???)
[000707] -AC--------- * ASG struct (copy)
[000705] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
[000703] --C--------- \--* RET_EXPR struct(inl return expr [000702])
***** BB32
STMT00187 (IL ???... ???)
[000704] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000712] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000711] ------------ | \--* ADDR byref
[000693] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000686] ------------ arg1 +--* CNS_INT long 0
[000710] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000709] ------------ \--* ADDR byref
[000708] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
***** BB32
STMT00188 (IL ???... ???)
[000715] --C--------- * COMMA void
[000713] --C--------- +--* RET_EXPR int (inl return expr [000704])
[000714] ------------ \--* NOP void
***** BB32
STMT00189 (IL 0x174...0x18A)
[000717] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000716] ----G------- arg0 \--* FIELD ref timeSpanCtor
***** BB32
STMT00191 (IL ???... ???)
[000724] -AC--------- * ASG struct (copy)
[000722] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000718] --C--------- \--* RET_EXPR struct(inl return expr [000717])
***** BB32
STMT00190 (IL ???... ???)
[000721] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000720] ------------ arg0 \--* ADDR byref
[000719] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB32
STMT00192 (IL ???... ???)
[000730] -AC--------- * ASG struct (copy)
[000728] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
[000726] --C--------- \--* RET_EXPR struct(inl return expr [000721])
***** BB32
STMT00193 (IL ???... ???)
[000727] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000735] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000734] ------------ | \--* ADDR byref
[000725] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000733] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000732] ------------ \--* ADDR byref
[000731] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
***** BB32
STMT00194 (IL ???... ???)
[000739] -AC--------- * ASG struct (copy)
[000737] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
[000736] --C--------- \--* RET_EXPR struct(inl return expr [000727])
***** BB32
STMT00195 (IL 0x18C...0x18E)
[000743] -A---------- * ASG struct (copy)
[000741] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000740] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
------------ BB88 [???..???) -> BB33 (callf), preds={} succs={BB33}
------------ BB89 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB33 [195..19D) (finret), preds={} succs={BB89}
***** BB33
STMT00196 (IL 0x195...0x19C)
[000746] I-C-G------- * CALL void Python.Runtime.NewReference.Dispose (exactContextHnd=0x00007FF9001F4CA9)
[000745] ------------ this in rcx \--* ADDR byref
[000744] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB33
STMT00197 (IL 0x19C... ???)
[000747] ------------ * RETFILT void
------------ BB34 [19D..1A5) (return), preds={} succs={}
***** BB34
STMT00175 (IL 0x19D...0x1A4)
[000664] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000662] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000663] ------------ arg1 \--* LCL_VAR ref V01 arg1
***** BB34
STMT00176 (IL ???... ???)
[000666] --C--------- * RETURN struct
[000665] --C--------- \--* RET_EXPR struct(inl return expr [000664])
------------ BB35 [1A5..1B1) (return), preds={} succs={}
***** BB35
STMT00011 (IL 0x1A5...0x1B0)
[000044] I-CXG------- * CALL struct Python.Runtime.Runtime.PyString_FromString (exactContextHnd=0x00007FF9001CEA41)
[000043] --CXG------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTCLASS
[000042] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcf8f7c8 class
[000041] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB35
STMT00012 (IL ???... ???)
[000046] --C--------- * RETURN struct
[000045] --C--------- \--* RET_EXPR struct(inl return expr [000044])
------------ BB36 [1B1..1BD) (return), preds={} succs={}
***** BB36
STMT00124 (IL 0x1B1...0x1BC)
[000474] --CXG------- * QMARK void
[000468] Q--X-------- if +--* EQ int
[000467] #--X-------- | +--* IND long
[000464] ------------ | | \--* LCL_VAR ref V00 arg0
[000465] H----------- | \--* CNS_INT(h) long 0x7ff8fcf22580 class
[000473] --CXG------- if \--* COLON void
[000471] --CXG------- else +--* CALL help void HELPER.CORINFO_HELP_UNBOX
[000470] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fcf22580 class
[000466] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000472] ------------ then \--* NOP void
***** BB36
STMT00125 (IL ???... ???)
[000478] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000477] *--XG------- arg0 \--* IND int
[000476] ------------ \--* ADD byref
[000469] ------------ +--* LCL_VAR ref V00 arg0
[000475] ------------ \--* CNS_INT long 8
***** BB36
STMT00126 (IL ???... ???)
[000480] --C--------- * RETURN struct
[000479] --C--------- \--* RET_EXPR struct(inl return expr [000478])
------------ BB37 [1BD..1C5) -> BB39 (cond), preds={} succs={BB38,BB39}
***** BB37
STMT00137 (IL 0x1BD...0x1C3)
[000527] --CXG------- * JTRUE void
[000526] --CXG------- \--* EQ int
[000524] *-CXG------- +--* IND bool
[000523] --CXG------- | \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000522] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fced5500 class
[000521] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000525] ------------ \--* CNS_INT int 0
------------ BB38 [1C5..1D1) (return), preds={} succs={}
***** BB38
STMT00143 (IL 0x1C5...0x1D0)
[000546] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyTrue (exactContextHnd=0x00007FF9001CEA41)
***** BB38
STMT00144 (IL ???... ???)
[000551] IA---------- * ASG struct (init)
[000549] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000550] ------------ \--* CNS_INT int 0
***** BB38
STMT00145 (IL ???... ???)
[000557] -AC--------- * ASG struct (copy)
[000555] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000547] --C--------- \--* RET_EXPR struct(inl return expr [000546])
***** BB38
STMT00146 (IL ???... ???)
[000554] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000553] ------------ this in rcx +--* ADDR byref
[000552] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000560] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000559] ------------ | \--* ADDR byref
[000558] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000561] ------------ arg2 \--* PUTARG_TYPE bool
[000548] ------------ \--* CNS_INT int 0
***** BB38
STMT00147 (IL 0x1D0... ???)
[000563] ------------ * RETURN struct
[000562] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
------------ BB39 [1D1..1DD) (return), preds={} succs={}
***** BB39
STMT00138 (IL 0x1D1...0x1DC)
[000528] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyFalse (exactContextHnd=0x00007FF9001CEA41)
***** BB39
STMT00139 (IL ???... ???)
[000533] IA---------- * ASG struct (init)
[000531] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000532] ------------ \--* CNS_INT int 0
***** BB39
STMT00140 (IL ???... ???)
[000539] -AC--------- * ASG struct (copy)
[000537] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000529] --C--------- \--* RET_EXPR struct(inl return expr [000528])
***** BB39
STMT00141 (IL ???... ???)
[000536] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000535] ------------ this in rcx +--* ADDR byref
[000534] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000542] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000541] ------------ | \--* ADDR byref
[000540] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000543] ------------ arg2 \--* PUTARG_TYPE bool
[000530] ------------ \--* CNS_INT int 0
***** BB39
STMT00142 (IL 0x1DC... ???)
[000545] ------------ * RETURN struct
[000544] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
------------ BB40 [1DD..1E9) (return), preds={} succs={}
***** BB40
STMT00131 (IL 0x1DD...0x1E8)
[000501] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000502] --CXG------- arg0 \--* PUTARG_TYPE int
[000500] *-CXG------- \--* IND ubyte
[000499] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000498] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefb290 class
[000497] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB40
STMT00132 (IL ???... ???)
[000504] --C--------- * RETURN struct
[000503] --C--------- \--* RET_EXPR struct(inl return expr [000501])
------------ BB41 [1E9..1F5) (return), preds={} succs={}
***** BB41
STMT00135 (IL 0x1E9...0x1F4)
[000517] I-CXG------- * CALL struct Python.Runtime.Runtime.PyUnicode_FromOrdinal (exactContextHnd=0x00007FF9001CEA41)
[000518] --CXG------- arg0 \--* PUTARG_TYPE int
[000516] *-CXG------- \--* IND ushort
[000515] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000514] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcedb2f8 class
[000513] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB41
STMT00136 (IL ???... ???)
[000520] --C--------- * RETURN struct
[000519] --C--------- \--* RET_EXPR struct(inl return expr [000517])
------------ BB42 [1F5..201) (return), preds={} succs={}
***** BB42
STMT00129 (IL 0x1F5...0x200)
[000493] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000494] --CXG------- arg0 \--* PUTARG_TYPE int
[000492] *-CXG------- \--* IND short
[000491] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000490] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefd840 class
[000489] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB42
STMT00130 (IL ???... ???)
[000496] --C--------- * RETURN struct
[000495] --C--------- \--* RET_EXPR struct(inl return expr [000493])
------------ BB43 [201..20D) (return), preds={} succs={}
***** BB43
STMT00120 (IL 0x201...0x20C)
[000453] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromLongLong (exactContextHnd=0x00007FF9001CEA41)
[000452] *-CXG------- arg0 \--* IND long
[000451] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000450] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf26f98 class
[000449] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB43
STMT00121 (IL ???... ???)
[000455] --C--------- * RETURN struct
[000454] --C--------- \--* RET_EXPR struct(inl return expr [000453])
------------ BB44 [20D..21A) (return), preds={} succs={}
***** BB44
STMT00116 (IL 0x20D...0x219)
[000439] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000438] --CXG------- arg0 \--* CAST double <- float
[000437] *-CXG------- \--* IND float
[000436] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000435] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf2dea0 class
[000434] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB44
STMT00117 (IL ???... ???)
[000441] --C--------- * RETURN struct
[000440] --C--------- \--* RET_EXPR struct(inl return expr [000439])
------------ BB45 [21A..226) (return), preds={} succs={}
***** BB45
STMT00114 (IL 0x21A...0x225)
[000431] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000430] *-CXG------- arg0 \--* IND double
[000429] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000428] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf57320 class
[000427] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB45
STMT00115 (IL ???... ???)
[000433] --C--------- * RETURN struct
[000432] --C--------- \--* RET_EXPR struct(inl return expr [000431])
------------ BB46 [226..232) (return), preds={} succs={}
***** BB46
STMT00133 (IL 0x226...0x231)
[000509] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000510] --CXG------- arg0 \--* PUTARG_TYPE int
[000508] *-CXG------- \--* IND byte
[000507] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000506] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcef6bc8 class
[000505] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB46
STMT00134 (IL ???... ???)
[000512] --C--------- * RETURN struct
[000511] --C--------- \--* RET_EXPR struct(inl return expr [000509])
------------ BB47 [232..23E) (return), preds={} succs={}
***** BB47
STMT00127 (IL 0x232...0x23D)
[000485] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000486] --CXG------- arg0 \--* PUTARG_TYPE int
[000484] *-CXG------- \--* IND ushort
[000483] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000482] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf20000 class
[000481] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB47
STMT00128 (IL ???... ???)
[000488] --C--------- * RETURN struct
[000487] --C--------- \--* RET_EXPR struct(inl return expr [000485])
------------ BB48 [23E..24B) (return), preds={} succs={}
***** BB48
STMT00122 (IL 0x23E...0x24A)
[000461] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000460] --CXG----U-- arg0 \--* CAST long <- ulong <- uint
[000459] *-CXG------- \--* IND int
[000458] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000457] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf24a68 class
[000456] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB48
STMT00123 (IL ???... ???)
[000463] --C--------- * RETURN struct
[000462] --C--------- \--* RET_EXPR struct(inl return expr [000461])
------------ BB49 [24B..257) (return), preds={} succs={}
***** BB49
STMT00118 (IL 0x24B...0x256)
[000446] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000445] *-CXG------- arg0 \--* IND long
[000444] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000443] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf29478 class
[000442] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB49
STMT00119 (IL ???... ???)
[000448] --C--------- * RETURN struct
[000447] --C--------- \--* RET_EXPR struct(inl return expr [000446])
------------ BB50 [257..268) (return), preds={} succs={}
***** BB50
STMT00111 (IL 0x257...0x267)
[000422] I-CXG------- * CALL double System.Decimal.ToDouble (exactContextHnd=0x00007FF8FCF5F5B9)
[000421] --CXG------- arg0 \--* OBJ struct<System.Decimal, 16>
[000420] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000419] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf5f5b8 class
[000418] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB50
STMT00112 (IL ???... ???)
[000424] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000423] --C--------- arg0 \--* RET_EXPR double(inl return expr [000422])
***** BB50
STMT00113 (IL ???... ???)
[000426] --C--------- * RETURN struct
[000425] --C--------- \--* RET_EXPR struct(inl return expr [000424])
------------ BB51 [268..279) -> BB53 (cond), preds={} succs={BB52,BB53}
***** BB51
STMT00013 (IL 0x268...0x26E)
[000053] -ACXG------- * ASG struct (copy)
[000051] D------N---- +--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[000050] --CXG------- \--* OBJ struct<System.DateTime, 8>
[000049] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000048] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd4cc3e8 class
[000047] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB51
STMT00014 (IL 0x270...0x277)
[000056] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000055] ------------ this in rcx \--* ADDR byref
[000054] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB51
STMT00015 (IL ???... ???)
[000060] --C--------- * JTRUE void
[000059] --C--------- \--* EQ int
[000057] --C--------- +--* RET_EXPR int (inl return expr [000056])
[000058] ------------ \--* CNS_INT int 0
------------ BB52 [279..27C) -> BB54 (always), preds={} succs={BB54}
***** BB52
STMT00110 (IL 0x279...0x27A)
[000416] -A---------- * ASG int
[000415] D------N---- +--* LCL_VAR int V27 tmp1
[000414] ------------ \--* CNS_INT int 8
------------ BB53 [27C..27D), preds={} succs={BB54}
***** BB53
STMT00016 (IL 0x27C...0x27C)
[000063] -A---------- * ASG int
[000062] D------N---- +--* LCL_VAR int V27 tmp1
[000061] ------------ \--* CNS_INT int 7
------------ BB54 [27D..288) -> BB56 (cond), preds={} succs={BB55,BB56}
***** BB54
STMT00017 (IL ???...0x27D)
[000067] -A---------- * ASG int
[000066] D------N---- +--* LCL_VAR int V12 loc10
[000065] ------------ \--* LCL_VAR int V27 tmp1
***** BB54
STMT00018 (IL 0x27F...0x286)
[000070] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000069] ------------ this in rcx \--* ADDR byref
[000068] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB54
STMT00019 (IL ???... ???)
[000074] --C--------- * JTRUE void
[000073] --C--------- \--* EQ int
[000071] --C--------- +--* RET_EXPR int (inl return expr [000070])
[000072] ------------ \--* CNS_INT int 0
------------ BB55 [288..28F) -> BB57 (always), preds={} succs={BB57}
***** BB55
STMT00109 (IL 0x288...0x28D)
[000412] -A--G------- * ASG ref
[000411] D------N---- +--* LCL_VAR ref V28 tmp2
[000410] ----G------- \--* FIELD ref pyTupleKind
------------ BB56 [28F..294), preds={} succs={BB57}
***** BB56
STMT00020 (IL 0x28F...0x28F)
[000077] -A--G------- * ASG ref
[000076] D------N---- +--* LCL_VAR ref V28 tmp2
[000075] ----G------- \--* FIELD ref pyTupleNoKind
------------ BB57 [294..3A4) -> BB59 (cond), preds={} succs={BB58,BB59}
***** BB57
STMT00021 (IL ???...0x294)
[000081] -A---------- * ASG ref
[000080] D------N---- +--* LCL_VAR ref V13 loc11
[000079] ------------ \--* LCL_VAR ref V28 tmp2
***** BB57
STMT00022 (IL 0x296...0x2AB)
[000083] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000082] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00024 (IL ???... ???)
[000092] -AC--------- * ASG struct (copy)
[000090] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000084] --C--------- \--* RET_EXPR struct(inl return expr [000083])
***** BB57
STMT00023 (IL ???... ???)
[000089] I-C-G------- * CALL int System.DateTime.get_Year (exactContextHnd=0x00007FF8FD4CC3E9)
[000088] ------------ this in rcx \--* ADDR byref
[000087] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00025 (IL ???... ???)
[000095] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000094] --C--------- arg0 \--* RET_EXPR int (inl return expr [000089])
***** BB57
STMT00026 (IL ???... ???)
[000099] -AC--------- * ASG struct (copy)
[000097] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000096] --C--------- \--* RET_EXPR struct(inl return expr [000095])
***** BB57
STMT00027 (IL ???...0x2B9)
[000102] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000101] ------------ this in rcx \--* ADDR byref
[000100] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00028 (IL ???... ???)
[000107] -AC--------- * ASG struct (copy)
[000105] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
[000103] --C--------- \--* RET_EXPR struct(inl return expr [000102])
***** BB57
STMT00029 (IL ???... ???)
[000104] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000112] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000111] ------------ | \--* ADDR byref
[000093] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000086] ------------ arg1 +--* CNS_INT long 0
[000110] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000109] ------------ \--* ADDR byref
[000108] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
***** BB57
STMT00030 (IL ???... ???)
[000115] --C--------- * COMMA void
[000113] --C--------- +--* RET_EXPR int (inl return expr [000104])
[000114] ------------ \--* NOP void
***** BB57
STMT00031 (IL 0x2BA...0x2CF)
[000117] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000116] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00033 (IL ???... ???)
[000126] -AC--------- * ASG struct (copy)
[000124] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000118] --C--------- \--* RET_EXPR struct(inl return expr [000117])
***** BB57
STMT00032 (IL ???... ???)
[000123] I-C-G------- * CALL int System.DateTime.get_Month (exactContextHnd=0x00007FF8FD4CC3E9)
[000122] ------------ this in rcx \--* ADDR byref
[000121] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00034 (IL ???... ???)
[000129] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000128] --C--------- arg0 \--* RET_EXPR int (inl return expr [000123])
***** BB57
STMT00035 (IL ???... ???)
[000133] -AC--------- * ASG struct (copy)
[000131] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000130] --C--------- \--* RET_EXPR struct(inl return expr [000129])
***** BB57
STMT00036 (IL ???...0x2DD)
[000136] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000135] ------------ this in rcx \--* ADDR byref
[000134] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00037 (IL ???... ???)
[000141] -AC--------- * ASG struct (copy)
[000139] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
[000137] --C--------- \--* RET_EXPR struct(inl return expr [000136])
***** BB57
STMT00038 (IL ???... ???)
[000138] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000146] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000145] ------------ | \--* ADDR byref
[000127] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000120] ------------ arg1 +--* CNS_INT long 1
[000144] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000143] ------------ \--* ADDR byref
[000142] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
***** BB57
STMT00039 (IL ???... ???)
[000149] --C--------- * COMMA void
[000147] --C--------- +--* RET_EXPR int (inl return expr [000138])
[000148] ------------ \--* NOP void
***** BB57
STMT00040 (IL 0x2DE...0x2F3)
[000151] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000150] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00042 (IL ???... ???)
[000160] -AC--------- * ASG struct (copy)
[000158] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000152] --C--------- \--* RET_EXPR struct(inl return expr [000151])
***** BB57
STMT00041 (IL ???... ???)
[000157] I-C-G------- * CALL int System.DateTime.get_Day (exactContextHnd=0x00007FF8FD4CC3E9)
[000156] ------------ this in rcx \--* ADDR byref
[000155] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00043 (IL ???... ???)
[000163] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000162] --C--------- arg0 \--* RET_EXPR int (inl return expr [000157])
***** BB57
STMT00044 (IL ???... ???)
[000167] -AC--------- * ASG struct (copy)
[000165] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000164] --C--------- \--* RET_EXPR struct(inl return expr [000163])
***** BB57
STMT00045 (IL ???...0x301)
[000170] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000169] ------------ this in rcx \--* ADDR byref
[000168] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00046 (IL ???... ???)
[000175] -AC--------- * ASG struct (copy)
[000173] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
[000171] --C--------- \--* RET_EXPR struct(inl return expr [000170])
***** BB57
STMT00047 (IL ???... ???)
[000172] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000180] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000179] ------------ | \--* ADDR byref
[000161] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000154] ------------ arg1 +--* CNS_INT long 2
[000178] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000177] ------------ \--* ADDR byref
[000176] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
***** BB57
STMT00048 (IL ???... ???)
[000183] --C--------- * COMMA void
[000181] --C--------- +--* RET_EXPR int (inl return expr [000172])
[000182] ------------ \--* NOP void
***** BB57
STMT00049 (IL 0x302...0x317)
[000185] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000184] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00051 (IL ???... ???)
[000194] -AC--------- * ASG struct (copy)
[000192] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000186] --C--------- \--* RET_EXPR struct(inl return expr [000185])
***** BB57
STMT00050 (IL ???... ???)
[000191] I-C-G------- * CALL int System.DateTime.get_Hour (exactContextHnd=0x00007FF8FD4CC3E9)
[000190] ------------ this in rcx \--* ADDR byref
[000189] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00052 (IL ???... ???)
[000197] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000196] --C--------- arg0 \--* RET_EXPR int (inl return expr [000191])
***** BB57
STMT00053 (IL ???... ???)
[000201] -AC--------- * ASG struct (copy)
[000199] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000198] --C--------- \--* RET_EXPR struct(inl return expr [000197])
***** BB57
STMT00054 (IL ???...0x325)
[000204] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000203] ------------ this in rcx \--* ADDR byref
[000202] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00055 (IL ???... ???)
[000209] -AC--------- * ASG struct (copy)
[000207] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
[000205] --C--------- \--* RET_EXPR struct(inl return expr [000204])
***** BB57
STMT00056 (IL ???... ???)
[000206] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000214] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000213] ------------ | \--* ADDR byref
[000195] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000188] ------------ arg1 +--* CNS_INT long 3
[000212] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000211] ------------ \--* ADDR byref
[000210] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
***** BB57
STMT00057 (IL ???... ???)
[000217] --C--------- * COMMA void
[000215] --C--------- +--* RET_EXPR int (inl return expr [000206])
[000216] ------------ \--* NOP void
***** BB57
STMT00058 (IL 0x326...0x33B)
[000219] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000218] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00060 (IL ???... ???)
[000228] -AC--------- * ASG struct (copy)
[000226] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000220] --C--------- \--* RET_EXPR struct(inl return expr [000219])
***** BB57
STMT00059 (IL ???... ???)
[000225] I-C-G------- * CALL int System.DateTime.get_Minute (exactContextHnd=0x00007FF8FD4CC3E9)
[000224] ------------ this in rcx \--* ADDR byref
[000223] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00061 (IL ???... ???)
[000231] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000230] --C--------- arg0 \--* RET_EXPR int (inl return expr [000225])
***** BB57
STMT00062 (IL ???... ???)
[000235] -AC--------- * ASG struct (copy)
[000233] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000232] --C--------- \--* RET_EXPR struct(inl return expr [000231])
***** BB57
STMT00063 (IL ???...0x349)
[000238] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000237] ------------ this in rcx \--* ADDR byref
[000236] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00064 (IL ???... ???)
[000243] -AC--------- * ASG struct (copy)
[000241] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
[000239] --C--------- \--* RET_EXPR struct(inl return expr [000238])
***** BB57
STMT00065 (IL ???... ???)
[000240] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000248] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000247] ------------ | \--* ADDR byref
[000229] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000222] ------------ arg1 +--* CNS_INT long 4
[000246] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000245] ------------ \--* ADDR byref
[000244] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
***** BB57
STMT00066 (IL ???... ???)
[000251] --C--------- * COMMA void
[000249] --C--------- +--* RET_EXPR int (inl return expr [000240])
[000250] ------------ \--* NOP void
***** BB57
STMT00067 (IL 0x34A...0x35F)
[000253] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000252] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00069 (IL ???... ???)
[000262] -AC--------- * ASG struct (copy)
[000260] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000254] --C--------- \--* RET_EXPR struct(inl return expr [000253])
***** BB57
STMT00068 (IL ???... ???)
[000259] I-C-G------- * CALL int System.DateTime.get_Second (exactContextHnd=0x00007FF8FD4CC3E9)
[000258] ------------ this in rcx \--* ADDR byref
[000257] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00070 (IL ???... ???)
[000265] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000264] --C--------- arg0 \--* RET_EXPR int (inl return expr [000259])
***** BB57
STMT00071 (IL ???... ???)
[000269] -AC--------- * ASG struct (copy)
[000267] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000266] --C--------- \--* RET_EXPR struct(inl return expr [000265])
***** BB57
STMT00072 (IL ???...0x36D)
[000272] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000271] ------------ this in rcx \--* ADDR byref
[000270] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00073 (IL ???... ???)
[000277] -AC--------- * ASG struct (copy)
[000275] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
[000273] --C--------- \--* RET_EXPR struct(inl return expr [000272])
***** BB57
STMT00074 (IL ???... ???)
[000274] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000282] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000281] ------------ | \--* ADDR byref
[000263] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000256] ------------ arg1 +--* CNS_INT long 5
[000280] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000279] ------------ \--* ADDR byref
[000278] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
***** BB57
STMT00075 (IL ???... ???)
[000285] --C--------- * COMMA void
[000283] --C--------- +--* RET_EXPR int (inl return expr [000274])
[000284] ------------ \--* NOP void
***** BB57
STMT00076 (IL 0x36E...0x375)
[000288] I-C-G------- * CALL struct System.DateTime.get_TimeOfDay (exactContextHnd=0x00007FF8FD4CC3E9)
[000287] ------------ this in rcx \--* ADDR byref
[000286] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00077 (IL ???... ???)
[000292] -AC--------- * ASG struct (copy)
[000290] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
[000289] --C--------- \--* RET_EXPR struct(inl return expr [000288])
***** BB57
STMT00078 (IL 0x377...0x37E)
[000295] I-C-G------- * CALL double System.TimeSpan.get_TotalSeconds (exactContextHnd=0x00007FF8FD001FA1)
[000294] ------------ this in rcx \--* ADDR byref
[000293] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
***** BB57
STMT00079 (IL ???... ???)
[000298] -AC--------- * ASG double
[000297] D------N---- +--* LCL_VAR double V14 loc12
[000296] --C--------- \--* RET_EXPR double(inl return expr [000295])
***** BB57
STMT00080 (IL 0x380...0x399)
[000301] I-C-G------- * CALL double System.Math.Truncate (exactContextHnd=0x00007FF8FD49AA39)
[000300] ------------ arg0 \--* LCL_VAR double V14 loc12
***** BB57
STMT00081 (IL ???... ???)
[000306] I-C-G------- * CALL int System.Convert.ToInt32 (exactContextHnd=0x00007FF8FD404741)
[000305] --C--------- arg0 \--* MUL double
[000303] --C--------- +--* SUB double
[000299] ------------ | +--* LCL_VAR double V14 loc12
[000302] --C--------- | \--* RET_EXPR double(inl return expr [000301])
[000304] ------------ \--* CNS_DBL double 1000000.0000000000
***** BB57
STMT00082 (IL ???... ???)
[000309] -AC--------- * ASG int
[000308] D------N---- +--* LCL_VAR int V15 loc13
[000307] --C--------- \--* RET_EXPR int (inl return expr [000306])
***** BB57
STMT00083 (IL 0x39B...0x3A2)
[000313] ------------ * JTRUE void
[000312] N--------U-- \--* NE int
[000310] ------------ +--* LCL_VAR int V15 loc13
[000311] ------------ \--* CNS_INT int 0xF4240
------------ BB58 [3A4..3AB), preds={} succs={BB59}
***** BB58
STMT00108 (IL 0x3A4...0x3A9)
[000409] -A---------- * ASG int
[000408] D------N---- +--* LCL_VAR int V15 loc13
[000407] ------------ \--* CNS_INT int 0xF423F
------------ BB59 [3AB..3CF) -> BB61 (cond), preds={} succs={BB60,BB61}
***** BB59
STMT00084 (IL 0x3AB...0x3BB)
[000315] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000314] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB59
STMT00086 (IL ???... ???)
[000323] -AC--------- * ASG struct (copy)
[000321] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000316] --C--------- \--* RET_EXPR struct(inl return expr [000315])
***** BB59
STMT00085 (IL ???... ???)
[000320] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000319] ------------ arg0 \--* LCL_VAR int V15 loc13
***** BB59
STMT00087 (IL ???... ???)
[000328] -AC--------- * ASG struct (copy)
[000326] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000325] --C--------- \--* RET_EXPR struct(inl return expr [000320])
***** BB59
STMT00088 (IL ???...0x3C9)
[000331] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000330] ------------ this in rcx \--* ADDR byref
[000329] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB59
STMT00089 (IL ???... ???)
[000336] -AC--------- * ASG struct (copy)
[000334] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
[000332] --C--------- \--* RET_EXPR struct(inl return expr [000331])
***** BB59
STMT00090 (IL ???... ???)
[000333] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000341] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000340] ------------ | \--* ADDR byref
[000324] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000318] ------------ arg1 +--* CNS_INT long 6
[000339] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000338] ------------ \--* ADDR byref
[000337] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
***** BB59
STMT00091 (IL ???... ???)
[000344] --C--------- * COMMA void
[000342] --C--------- +--* RET_EXPR int (inl return expr [000333])
[000343] ------------ \--* NOP void
***** BB59
STMT00092 (IL 0x3CA...0x3CD)
[000348] ------------ * JTRUE void
[000347] N--------U-- \--* NE int
[000345] ------------ +--* LCL_VAR int V12 loc10
[000346] ------------ \--* CNS_INT int 8
------------ BB60 [3CF..3F3), preds={} succs={BB61}
***** BB60
STMT00100 (IL 0x3CF...0x3E4)
[000375] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000374] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB60
STMT00102 (IL ???... ???)
[000384] -AC--------- * ASG struct (copy)
[000382] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000376] --C--------- \--* RET_EXPR struct(inl return expr [000375])
***** BB60
STMT00101 (IL ???... ???)
[000381] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000380] ------------ this in rcx \--* ADDR byref
[000379] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB60
STMT00103 (IL ???... ???)
[000390] -AC-G------- * ASG struct (copy)
[000388] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000387] --C-G------- \--* CALL struct Python.Runtime.Converter.TzInfo
[000386] --C--------- arg0 \--* RET_EXPR int (inl return expr [000381])
***** BB60
STMT00104 (IL ???...0x3F2)
[000393] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000392] ------------ this in rcx \--* ADDR byref
[000391] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB60
STMT00105 (IL ???... ???)
[000398] -AC--------- * ASG struct (copy)
[000396] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
[000394] --C--------- \--* RET_EXPR struct(inl return expr [000393])
***** BB60
STMT00106 (IL ???... ???)
[000395] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000403] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000402] ------------ | \--* ADDR byref
[000385] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000378] ------------ arg1 +--* CNS_INT long 7
[000401] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000400] ------------ \--* ADDR byref
[000399] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
***** BB60
STMT00107 (IL ???... ???)
[000406] --C--------- * COMMA void
[000404] --C--------- +--* RET_EXPR int (inl return expr [000395])
[000405] ------------ \--* NOP void
------------ BB61 [3F3..40E) (return), preds={} succs={}
***** BB61
STMT00093 (IL 0x3F3...0x409)
[000350] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000349] ----G------- arg0 \--* FIELD ref dateTimeCtor
***** BB61
STMT00095 (IL ???... ???)
[000356] -AC--------- * ASG struct (copy)
[000354] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000351] --C--------- \--* RET_EXPR struct(inl return expr [000350])
***** BB61
STMT00094 (IL ???... ???)
[000353] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000352] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB61
STMT00096 (IL ???... ???)
[000362] -AC--------- * ASG struct (copy)
[000360] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
[000358] --C--------- \--* RET_EXPR struct(inl return expr [000353])
***** BB61
STMT00097 (IL ???... ???)
[000359] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000367] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000366] ------------ | \--* ADDR byref
[000357] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000365] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000364] ------------ \--* ADDR byref
[000363] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
***** BB61
STMT00098 (IL ???... ???)
[000371] -AC--------- * ASG struct (copy)
[000369] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
[000368] --C--------- \--* RET_EXPR struct(inl return expr [000359])
***** BB61
STMT00099 (IL 0x40B...0x40D)
[000373] ------------ * RETURN struct
[000372] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
------------ BB62 [40E..416) -> BB80 (cond), preds={} succs={BB63,BB80}
***** BB62
STMT00148 (IL 0x40E...0x414)
[000569] --C-G------- * JTRUE void
[000568] --C-G------- \--* EQ int
[000566] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000565] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000564] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000567] ------------ \--* CNS_INT ref null
------------ BB63 [416..41D), preds={} succs={BB64}
***** BB63
STMT00151 (IL 0x416...0x41B)
[000578] -A---------- * ASG ref
[000577] D------N---- +--* LCL_VAR ref V51 tmp25
[000576] ------------ \--* ALLOCOBJ ref
[000575] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
***** BB63
STMT00152 (IL ???... ???)
[000580] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000579] ------------ this in rcx \--* LCL_VAR ref V51 tmp25
***** BB63
STMT00153 (IL 0x41B... ???)
[000583] -A---------- * ASG ref
[000582] D------N---- +--* LCL_VAR ref V22 loc20
[000581] ------------ \--* LCL_VAR ref V51 tmp25
------------ BB64 [41D..42A), preds={} succs={BB65}
***** BB64
STMT00154 (IL 0x41D...0x428)
[000589] -ACXG------- * ASG ref
[000588] D------N---- +--* LCL_VAR ref V23 loc21
[000587] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000586] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000585] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000584] ------------ arg1 \--* LCL_VAR ref V00 arg0
------------ BB65 [42A..42C) -> BB71 (always), preds={} succs={BB71}
------------ BB66 [42C..43E), preds={} succs={BB67}
***** BB66
STMT00156 (IL 0x42C...0x433)
[000598] -AC-G------- * ASG ref
[000597] D------N---- +--* LCL_VAR ref V24 loc22
[000596] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000595] ------------ this in rcx \--* LCL_VAR ref V23 loc21
***** BB66
STMT00157 (IL 0x435...0x43C)
[000600] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000599] ------------ arg0 \--* LCL_VAR ref V24 loc22
***** BB66
STMT00158 (IL ???... ???)
[000603] -AC--------- * ASG ref
[000602] D------N---- +--* LCL_VAR ref V25 loc23
[000601] --C--------- \--* RET_EXPR ref (inl return expr [000600])
------------ BB67 [43E..449) -> BB82 (always), preds={} succs={BB82}
***** BB67
STMT00159 (IL 0x43E...0x447)
[000606] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000604] ------------ this in rcx +--* LCL_VAR ref V22 loc20
[000605] ------------ arg1 \--* LCL_VAR ref V25 loc23
------------ BB82 [???..???) -> BB68 (callf), preds={} succs={BB68}
------------ BB83 [???..???) -> BB71 (ALWAYS), preds={} succs={BB71}
------------ BB68 [449..44D) -> BB70 (cond), preds={} succs={BB69,BB70}
***** BB68
STMT00160 (IL 0x449...0x44B)
[000610] ------------ * JTRUE void
[000609] ------------ \--* EQ int
[000607] ------------ +--* LCL_VAR ref V25 loc23
[000608] ------------ \--* CNS_INT ref null
------------ BB69 [44D..454), preds={} succs={BB70}
***** BB69
STMT00162 (IL 0x44D...0x44F)
[000613] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000612] ------------ this in rcx \--* LCL_VAR ref V25 loc23
------------ BB70 [454..455) (finret), preds={} succs={BB83}
***** BB70
STMT00161 (IL 0x454...0x454)
[000611] ------------ * RETFILT void
------------ BB71 [455..45E) -> BB66 (cond), preds={} succs={BB72,BB66}
***** BB71
STMT00155 (IL 0x455...0x45C)
[000594] --C-G------- * JTRUE void
[000593] --C-G------- \--* NE int
[000591] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000590] ------------ this in rcx | \--* LCL_VAR ref V23 loc21
[000592] ------------ \--* CNS_INT int 0
------------ BB72 [45E..460) -> BB84 (always), preds={} succs={BB84}
------------ BB84 [???..???) -> BB73 (callf), preds={} succs={BB73}
------------ BB85 [???..???) -> BB76 (ALWAYS), preds={} succs={BB76}
------------ BB73 [460..46D) -> BB75 (cond), preds={} succs={BB74,BB75}
***** BB73
STMT00166 (IL 0x460...0x467)
[000626] -AC-G------- * ASG ref
[000625] D------N---- +--* LCL_VAR ref V09 loc7
[000624] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000623] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000622] ------------ arg1 \--* LCL_VAR ref V23 loc21
***** BB73
STMT00167 (IL 0x469...0x46B)
[000630] ------------ * JTRUE void
[000629] ------------ \--* EQ int
[000627] ------------ +--* LCL_VAR ref V09 loc7
[000628] ------------ \--* CNS_INT ref null
------------ BB74 [46D..474), preds={} succs={BB75}
***** BB74
STMT00169 (IL 0x46D...0x46F)
[000633] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000632] ------------ this in rcx \--* LCL_VAR ref V09 loc7
------------ BB75 [474..475) (finret), preds={} succs={BB85}
***** BB75
STMT00168 (IL 0x474...0x474)
[000631] ------------ * RETFILT void
------------ BB76 [475..480) -> BB86 (always), preds={} succs={BB86}
***** BB76
STMT00163 (IL 0x475...0x47C)
[000615] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000614] ------------ arg0 \--* LCL_VAR ref V22 loc20
***** BB76
STMT00164 (IL ???... ???)
[000619] -AC--------- * ASG struct (copy)
[000617] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000616] --C--------- \--* RET_EXPR struct(inl return expr [000615])
------------ BB86 [???..???) -> BB77 (callf), preds={} succs={BB77}
------------ BB87 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB77 [480..484) -> BB79 (cond), preds={} succs={BB78,BB79}
***** BB77
STMT00170 (IL 0x480...0x482)
[000637] ------------ * JTRUE void
[000636] ------------ \--* EQ int
[000634] ------------ +--* LCL_VAR ref V22 loc20
[000635] ------------ \--* CNS_INT ref null
------------ BB78 [484..48B), preds={} succs={BB79}
***** BB78
STMT00172 (IL 0x484...0x486)
[000640] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000639] ------------ this in rcx \--* LCL_VAR ref V22 loc20
------------ BB79 [48B..48C) (finret), preds={} succs={BB87}
***** BB79
STMT00171 (IL 0x48B...0x48B)
[000638] ------------ * RETFILT void
------------ BB80 [48C..494) (return), preds={} succs={}
***** BB80
STMT00149 (IL 0x48C...0x493)
[000572] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000570] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000571] ------------ arg1 \--* LCL_VAR ref V01 arg1
***** BB80
STMT00150 (IL ???... ???)
[000574] --C--------- * RETURN struct
[000573] --C--------- \--* RET_EXPR struct(inl return expr [000572])
------------ BB81 [494..497) (return), preds={} succs={}
***** BB81
STMT00165 (IL 0x494...0x496)
[000621] ------------ * RETURN struct
[000620] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
-------------------------------------------------------------------------------------------------------------------
*************** Starting PHASE Indirect call transform
----------------
*** GuardedDevirtualization contemplating [000018] in BB05
Likelihood of correct guess is 100
*** GuardedDevirtualization: transforming STMT00004
lvaGrabTemp returning 62 (V62 tmp36) (a long lifetime temp) called for guarded devirt return temp.
Reworking call(s) to return value via a new temp V62
Bashing GT_RET_EXPR [000019] to refer to temp V62
New Basic Block BB96 [0095] created.
BB06 previous predecessor was BB05, now is BB96
BB25 previous predecessor was BB05, now is BB96
New Basic Block BB97 [0096] created.
lvaGrabTemp returning 63 (V63 tmp37) (a long lifetime temp) called for guarded devirt this exact temp.
lvaSetClass: setting class for V63 to (00007FF8FCE2F700) System.RuntimeType [exact]
Direct call [000879] in block BB97
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is System.RuntimeType [exact] (attrib 21000010)
base method is System.Type::get_IsGenericType
devirt to System.RuntimeType::get_IsGenericType -- exact
[000879] I-C-G------- * CALLV vt-ind int System.Type.get_IsGenericType
[000881] ------------ this in rcx \--* LCL_VAR ref V63 tmp37
exact; can devirtualize
... after devirt...
[000879] I-C-G------- * CALL nullcheck int System.RuntimeType.get_IsGenericType
[000881] ------------ this in rcx \--* LCL_VAR ref V63 tmp37
New Basic Block BB98 [0097] created.
Residual call [000018] moved to block BB98
Scouting for possible GDV chain as likelihood 100 >= 75
Scouting STMT00005
-- 1 calls transformed
*************** Finishing PHASE Indirect call transform
Trees after Indirect call transform
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 43 43 [000..00A)-> BB03 ( cond ) i IBC
BB02 [0001] 1 12 12 [00A..017) (return) i IBC
BB03 [0002] 1 31 31 [017..01A)-> BB05 ( cond ) i IBC
BB04 [0003] 1 0 0 [01A..026) (return) i rare IBC
BB05 [0004] 1 31 31 [026..???)-> BB98 ( cond ) i IBC
BB97 [0096] 0 31 31 [???..???)-> BB96 (always) i internal IBC
BB98 [0097] 0 0 0 [???..???) i internal rare IBC
BB96 [0095] 1 31 31 [???..039)-> BB25 ( cond ) i internal IBC
BB06 [0005] 1 0 0 [039..041)-> BB25 ( cond ) i rare IBC
BB07 [0006] 1 0 0 [041..049)-> BB25 ( cond ) i rare IBC
BB08 [0007] 1 0 0 [049..04F) i rare newobj IBC
BB09 [0008] 1 2 0 0 [04F..05C) T2 try { keep i try rare IBC
BB10 [0009] 1 1 0 0 [05C..05E)-> BB16 (always) T1 try { keep i try rare IBC
BB11 [0010] 1 1 0 0 [05E..070) T1 i rare bwd bwd-target IBC
BB12 [0011] 1 0 0 0 [070..07A)-> BB90 (always) T0 try { } keep i try rare bwd IBC
BB90 [0089] 1 1 0 0 [???..???)-> BB13 (callf ) T1 i internal rare IBC
BB91 [0090] 0 1 0 0 [???..???)-> BB16 (ALWAYS) T1 i internal rare IBC KEEP
BB13 [0012] 1 1 0 1 [07A..07E)-> BB15 ( cond ) T1 H0 finally { keep i bwd
BB14 [0013] 1 1 0 0 0 [07E..085) T1 H0 i rare bwd IBC
BB15 [0014] 2 1 0 0 0 [085..086) (finret) T1 H0 } i rare bwd IBC
BB16 [0015] 2 1 0 0 [086..08F)-> BB11 ( cond ) T1 i rare bwd IBC
BB17 [0016] 1 1 0 0 [08F..091)-> BB92 (always) T1 } i rare IBC
BB92 [0091] 1 2 0 0 [???..???)-> BB18 (callf ) T2 i internal rare IBC
BB93 [0092] 0 2 0 0 [???..???)-> BB21 (ALWAYS) T2 i internal rare IBC KEEP
BB18 [0017] 1 2 1 1 [091..09E)-> BB20 ( cond ) T2 H1 finally { keep i
BB19 [0018] 1 2 1 0 0 [09E..0A5) T2 H1 i rare IBC
BB20 [0019] 2 2 1 0 0 [0A5..0A6) (finret) T2 H1 } i rare IBC
BB21 [0020] 1 2 0 0 [0A6..0B3)-> BB94 (always) T2 } i rare IBC
BB94 [0093] 1 0 0 [???..???)-> BB22 (callf ) i internal rare IBC
BB95 [0094] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB22 [0021] 1 2 1 [0B3..0B6)-> BB24 ( cond ) H2 finally { keep i
BB23 [0022] 1 2 0 0 [0B6..0BC) H2 i rare IBC
BB24 [0023] 2 2 0 0 [0BC..0BD) (finret) H2 } i rare IBC
BB25 [0024] 3 31 31 [0BD..0C7)-> BB28 ( cond ) i IBC
BB26 [0025] 1 0 0 [0C7..0D4)-> BB28 ( cond ) i rare IBC
BB27 [0026] 1 0 0 [0D4..0DB) (return) i rare IBC
BB28 [0027] 2 31 31 [0DB..132)-> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch) i IBC
BB29 [0028] 1 0 0 [132..137)-> BB62 (always) i rare IBC
BB30 [0029] 1 18 18 [137..13F)-> BB34 ( cond ) i IBC
BB31 [0030] 1 0 0 [13F..150) i rare IBC
BB32 [0031] 1 3 0 0 [150..195)-> BB88 (always) T3 try { } keep i try rare IBC
BB88 [0087] 1 0 0 [???..???)-> BB33 (callf ) i internal rare IBC
BB89 [0088] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB33 [0032] 1 3 1 [195..19D) (finret) H3 finally { } keep i
BB34 [0033] 1 18 18 [19D..1A5) (return) i IBC
BB35 [0034] 1 0 0 [1A5..1B1) (return) i rare IBC
BB36 [0035] 1 13 13 [1B1..1BD) (return) i IBC
BB37 [0036] 1 0 0 [1BD..1C5)-> BB39 ( cond ) i rare IBC
BB38 [0037] 1 0 0 [1C5..1D1) (return) i rare IBC
BB39 [0038] 1 0 0 [1D1..1DD) (return) i rare IBC
BB40 [0039] 1 0 0 [1DD..1E9) (return) i rare IBC
BB41 [0040] 1 0 0 [1E9..1F5) (return) i rare IBC
BB42 [0041] 1 0 0 [1F5..201) (return) i rare IBC
BB43 [0042] 1 0 0 [201..20D) (return) i rare IBC
BB44 [0043] 1 0 0 [20D..21A) (return) i rare IBC
BB45 [0044] 1 0 0 [21A..226) (return) i rare IBC
BB46 [0045] 1 0 0 [226..232) (return) i rare IBC
BB47 [0046] 1 0 0 [232..23E) (return) i rare IBC
BB48 [0047] 1 0 0 [23E..24B) (return) i rare IBC
BB49 [0048] 1 0 0 [24B..257) (return) i rare IBC
BB50 [0049] 1 0 0 [257..268) (return) i rare IBC
BB51 [0050] 1 0 0 [268..279)-> BB53 ( cond ) i rare IBC
BB52 [0051] 1 0 0 [279..27C)-> BB54 (always) i rare IBC
BB53 [0052] 1 0 0 [27C..27D) i rare IBC
BB54 [0053] 2 0 0 [27D..288)-> BB56 ( cond ) i rare IBC
BB55 [0054] 1 0 0 [288..28F)-> BB57 (always) i rare IBC
BB56 [0055] 1 0 0 [28F..294) i rare IBC
BB57 [0056] 2 0 0 [294..3A4)-> BB59 ( cond ) i rare IBC
BB58 [0057] 1 0 0 [3A4..3AB) i rare IBC
BB59 [0058] 2 0 0 [3AB..3CF)-> BB61 ( cond ) i rare IBC
BB60 [0059] 1 0 0 [3CF..3F3) i rare IBC
BB61 [0060] 2 0 0 [3F3..40E) (return) i rare IBC
BB62 [0061] 3 0 0 [40E..416)-> BB80 ( cond ) i rare IBC
BB63 [0062] 1 0 0 [416..41D) i rare newobj IBC
BB64 [0063] 1 6 0 0 [41D..42A) T6 try { keep i try rare IBC
BB65 [0064] 1 5 0 0 [42A..42C)-> BB71 (always) T5 try { keep i try rare IBC
BB66 [0065] 1 5 0 0 [42C..43E) T5 i rare bwd bwd-target IBC
BB67 [0066] 1 4 0 0 [43E..449)-> BB82 (always) T4 try { } keep i try rare bwd IBC
BB82 [0081] 1 5 0 0 [???..???)-> BB68 (callf ) T5 i internal rare IBC
BB83 [0082] 0 5 0 0 [???..???)-> BB71 (ALWAYS) T5 i internal rare IBC KEEP
BB68 [0067] 1 5 4 1 [449..44D)-> BB70 ( cond ) T5 H4 finally { keep i bwd
BB69 [0068] 1 5 4 0 0 [44D..454) T5 H4 i rare bwd IBC
BB70 [0069] 2 5 4 0 0 [454..455) (finret) T5 H4 } i rare bwd IBC
BB71 [0070] 2 5 0 0 [455..45E)-> BB66 ( cond ) T5 i rare bwd IBC
BB72 [0071] 1 5 0 0 [45E..460)-> BB84 (always) T5 } i rare IBC
BB84 [0083] 1 6 0 0 [???..???)-> BB73 (callf ) T6 i internal rare IBC
BB85 [0084] 0 6 0 0 [???..???)-> BB76 (ALWAYS) T6 i internal rare IBC KEEP
BB73 [0072] 1 6 5 1 [460..46D)-> BB75 ( cond ) T6 H5 finally { keep i
BB74 [0073] 1 6 5 0 0 [46D..474) T6 H5 i rare IBC
BB75 [0074] 2 6 5 0 0 [474..475) (finret) T6 H5 } i rare IBC
BB76 [0075] 1 6 0 0 [475..480)-> BB86 (always) T6 } i rare IBC
BB86 [0085] 1 0 0 [???..???)-> BB77 (callf ) i internal rare IBC
BB87 [0086] 0 0 0 [???..???)-> BB81 (ALWAYS) i internal rare IBC KEEP
BB77 [0076] 1 6 1 [480..484)-> BB79 ( cond ) H6 finally { keep i
BB78 [0077] 1 6 0 0 [484..48B) H6 i rare IBC
BB79 [0078] 2 6 0 0 [48B..48C) (finret) H6 } i rare IBC
BB80 [0079] 1 0 0 [48C..494) (return) i rare IBC
BB81 [0080] 3 0 0 [494..497) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..00A) -> BB03 (cond), preds={} succs={BB02,BB03}
***** BB01
STMT00000 (IL 0x000...0x006)
[000004] -AC-G------- * ASG ref
[000003] D------N---- +--* LCL_VAR ref V02 loc0
[000002] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000001] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9001c7a70 class
[000000] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB01
STMT00001 (IL 0x007...0x008)
[000008] ------------ * JTRUE void
[000007] ------------ \--* EQ int
[000005] ------------ +--* LCL_VAR ref V02 loc0
[000006] ------------ \--* CNS_INT ref null
------------ BB02 [00A..017) (return), preds={} succs={}
***** BB02
STMT00228 (IL 0x00A...0x016)
[000852] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000851] ------------ arg0 \--* LCL_VAR ref V02 loc0
***** BB02
STMT00229 (IL ???... ???)
[000857] IA---------- * ASG struct (init)
[000855] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000856] ------------ \--* CNS_INT int 0
***** BB02
STMT00230 (IL ???... ???)
[000863] -AC--------- * ASG struct (copy)
[000861] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000853] --C--------- \--* RET_EXPR struct(inl return expr [000852])
***** BB02
STMT00231 (IL ???... ???)
[000860] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000859] ------------ this in rcx +--* ADDR byref
[000858] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000866] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ | \--* ADDR byref
[000864] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000867] ------------ arg2 \--* PUTARG_TYPE bool
[000854] ------------ \--* CNS_INT int 0
***** BB02
STMT00232 (IL 0x016... ???)
[000869] ------------ * RETURN struct
[000868] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
------------ BB03 [017..01A) -> BB05 (cond), preds={} succs={BB04,BB05}
***** BB03
STMT00002 (IL 0x017...0x018)
[000012] ------------ * JTRUE void
[000011] ------------ \--* NE int
[000009] ------------ +--* LCL_VAR ref V00 arg0
[000010] ------------ \--* CNS_INT ref null
------------ BB04 [01A..026) (return), preds={} succs={}
***** BB04
STMT00223 (IL 0x01A...0x025)
[000833] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyNone (exactContextHnd=0x00007FF9001CEA41)
***** BB04
STMT00224 (IL ???... ???)
[000838] IA---------- * ASG struct (init)
[000836] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000837] ------------ \--* CNS_INT int 0
***** BB04
STMT00225 (IL ???... ???)
[000844] -AC--------- * ASG struct (copy)
[000842] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000834] --C--------- \--* RET_EXPR struct(inl return expr [000833])
***** BB04
STMT00226 (IL ???... ???)
[000841] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000840] ------------ this in rcx +--* ADDR byref
[000839] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000847] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ | \--* ADDR byref
[000845] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000848] ------------ arg2 \--* PUTARG_TYPE bool
[000835] ------------ \--* CNS_INT int 0
***** BB04
STMT00227 (IL 0x025... ???)
[000850] ------------ * RETURN struct
[000849] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
------------ BB05 [026..???) -> BB98 (cond), preds={} succs={BB97,BB98}
***** BB05
STMT00003 (IL 0x026...0x02C)
[000016] -ACX-------- * ASG ref
[000015] D------N---- +--* LCL_VAR ref V01 arg1
[000014] --CX-------- \--* INTRINSIC ref objGetType
[000013] ------------ \--* LCL_VAR ref V00 arg0
***** BB05
STMT00233 (IL 0x02E... ???)
[000875] ---X-------- * JTRUE void
[000874] ---X-------- \--* NE int
[000873] H----------- +--* CNS_INT(h) long 0x7ff8fce2f700 class
[000872] #--X-------- \--* IND long
[000871] ------------ \--* LCL_VAR ref V01 arg1
------------ BB97 [???..???) -> BB96 (always), preds={} succs={BB96}
***** BB97
STMT00234 (IL ???... ???)
[000878] -A---------- * ASG ref
[000877] D------N---- +--* LCL_VAR ref V63 tmp37
[000876] ------------ \--* LCL_VAR ref V01 arg1
***** BB97
STMT00235 (IL ???... ???)
[000879] I-C-G------- * CALL nullcheck int System.RuntimeType.get_IsGenericType (exactContextHnd=0x00007FF8FCE2EBE8)
[000881] ------------ this in rcx \--* LCL_VAR ref V63 tmp37
***** BB97
STMT00236 (IL ???... ???)
[000884] -AC--------- * ASG int
[000883] D------N---- +--* LCL_VAR int V62 tmp36
[000882] --C--------- \--* RET_EXPR int (inl return expr [000879])
------------ BB98 [???..???), preds={} succs={BB96}
***** BB98
STMT00237 (IL ???... ???)
[000886] -AC-G------- * ASG int
[000885] D------N---- +--* LCL_VAR int V62 tmp36
[000018] --C-G------- \--* CALLV vt-ind int System.Type.get_IsGenericType
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
------------ BB96 [???..039) -> BB25 (cond), preds={} succs={BB06,BB25}
***** BB96
STMT00005 (IL ???... ???)
[000022] --C--------- * JTRUE void
[000021] --C--------- \--* EQ int
[000870] ------------ +--* LCL_VAR int V62 tmp36
[000020] ------------ \--* CNS_INT int 0
------------ BB06 [039..041) -> BB25 (cond), preds={} succs={BB07,BB25}
***** BB06
STMT00200 (IL 0x039...0x03F)
[000762] --C-G------- * JTRUE void
[000761] --C-G------- \--* EQ int
[000759] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000758] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fced02e8 class
[000757] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000760] ------------ \--* CNS_INT ref null
------------ BB07 [041..049) -> BB25 (cond), preds={} succs={BB08,BB25}
***** BB07
STMT00201 (IL 0x041...0x047)
[000768] --C-G------- * JTRUE void
[000767] --C-G------- \--* NE int
[000765] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000764] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fd3b9808 class
[000763] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000766] ------------ \--* CNS_INT ref null
------------ BB08 [049..04F), preds={} succs={BB09}
***** BB08
STMT00202 (IL 0x049...0x04E)
[000772] -A---------- * ASG ref
[000771] D------N---- +--* LCL_VAR ref V57 tmp31
[000770] ------------ \--* ALLOCOBJ ref
[000769] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
***** BB08
STMT00203 (IL ???... ???)
[000774] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000773] ------------ this in rcx \--* LCL_VAR ref V57 tmp31
***** BB08
STMT00204 (IL 0x04E... ???)
[000777] -A---------- * ASG ref
[000776] D------N---- +--* LCL_VAR ref V05 loc3
[000775] ------------ \--* LCL_VAR ref V57 tmp31
------------ BB09 [04F..05C), preds={} succs={BB10}
***** BB09
STMT00205 (IL 0x04F...0x05A)
[000783] -ACXG------- * ASG ref
[000782] D------N---- +--* LCL_VAR ref V06 loc4
[000781] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000780] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000779] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000778] ------------ arg1 \--* LCL_VAR ref V00 arg0
------------ BB10 [05C..05E) -> BB16 (always), preds={} succs={BB16}
------------ BB11 [05E..070), preds={} succs={BB12}
***** BB11
STMT00207 (IL 0x05E...0x065)
[000792] -AC-G------- * ASG ref
[000791] D------N---- +--* LCL_VAR ref V07 loc5
[000790] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000789] ------------ this in rcx \--* LCL_VAR ref V06 loc4
***** BB11
STMT00208 (IL 0x067...0x06E)
[000794] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000793] ------------ arg0 \--* LCL_VAR ref V07 loc5
***** BB11
STMT00209 (IL ???... ???)
[000797] -AC--------- * ASG ref
[000796] D------N---- +--* LCL_VAR ref V08 loc6
[000795] --C--------- \--* RET_EXPR ref (inl return expr [000794])
------------ BB12 [070..07A) -> BB90 (always), preds={} succs={BB90}
***** BB12
STMT00210 (IL 0x070...0x078)
[000800] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000798] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[000799] ------------ arg1 \--* LCL_VAR ref V08 loc6
------------ BB90 [???..???) -> BB13 (callf), preds={} succs={BB13}
------------ BB91 [???..???) -> BB16 (ALWAYS), preds={} succs={BB16}
------------ BB13 [07A..07E) -> BB15 (cond), preds={} succs={BB14,BB15}
***** BB13
STMT00211 (IL 0x07A...0x07C)
[000804] ------------ * JTRUE void
[000803] ------------ \--* EQ int
[000801] ------------ +--* LCL_VAR ref V08 loc6
[000802] ------------ \--* CNS_INT ref null
------------ BB14 [07E..085), preds={} succs={BB15}
***** BB14
STMT00213 (IL 0x07E...0x080)
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
------------ BB15 [085..086) (finret), preds={} succs={BB91}
***** BB15
STMT00212 (IL 0x085...0x085)
[000805] ------------ * RETFILT void
------------ BB16 [086..08F) -> BB11 (cond), preds={} succs={BB17,BB11}
***** BB16
STMT00206 (IL 0x086...0x08D)
[000788] --C-G------- * JTRUE void
[000787] --C-G------- \--* NE int
[000785] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000784] ------------ this in rcx | \--* LCL_VAR ref V06 loc4
[000786] ------------ \--* CNS_INT int 0
------------ BB17 [08F..091) -> BB92 (always), preds={} succs={BB92}
------------ BB92 [???..???) -> BB18 (callf), preds={} succs={BB18}
------------ BB93 [???..???) -> BB21 (ALWAYS), preds={} succs={BB21}
------------ BB18 [091..09E) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18
STMT00216 (IL 0x091...0x098)
[000818] -AC-G------- * ASG ref
[000817] D------N---- +--* LCL_VAR ref V09 loc7
[000816] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000815] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000814] ------------ arg1 \--* LCL_VAR ref V06 loc4
***** BB18
STMT00217 (IL 0x09A...0x09C)
[000822] ------------ * JTRUE void
[000821] ------------ \--* EQ int
[000819] ------------ +--* LCL_VAR ref V09 loc7
[000820] ------------ \--* CNS_INT ref null
------------ BB19 [09E..0A5), preds={} succs={BB20}
***** BB19
STMT00219 (IL 0x09E...0x0A0)
[000825] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000824] ------------ this in rcx \--* LCL_VAR ref V09 loc7
------------ BB20 [0A5..0A6) (finret), preds={} succs={BB93}
***** BB20
STMT00218 (IL 0x0A5...0x0A5)
[000823] ------------ * RETFILT void
------------ BB21 [0A6..0B3) -> BB94 (always), preds={} succs={BB94}
***** BB21
STMT00214 (IL 0x0A6...0x0AC)
[000809] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000808] ------------ arg0 \--* LCL_VAR ref V05 loc3
***** BB21
STMT00215 (IL ???... ???)
[000813] -AC--------- * ASG struct (copy)
[000811] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000810] --C--------- \--* RET_EXPR struct(inl return expr [000809])
------------ BB94 [???..???) -> BB22 (callf), preds={} succs={BB22}
------------ BB95 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB22 [0B3..0B6) -> BB24 (cond), preds={} succs={BB23,BB24}
***** BB22
STMT00220 (IL 0x0B3...0x0B4)
[000829] ------------ * JTRUE void
[000828] ------------ \--* EQ int
[000826] ------------ +--* LCL_VAR ref V05 loc3
[000827] ------------ \--* CNS_INT ref null
------------ BB23 [0B6..0BC), preds={} succs={BB24}
***** BB23
STMT00222 (IL 0x0B6...0x0B7)
[000832] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
------------ BB24 [0BC..0BD) (finret), preds={} succs={BB95}
***** BB24
STMT00221 (IL 0x0BC...0x0BC)
[000830] ------------ * RETFILT void
------------ BB25 [0BD..0C7) -> BB28 (cond), preds={} succs={BB26,BB28}
***** BB25
STMT00006 (IL 0x0BD...0x0C3)
[000027] -AC-G------- * ASG ref
[000026] D------N---- +--* LCL_VAR ref V03 loc1
[000025] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000024] H------N---- arg0 +--* CNS_INT(h) long 0x7ff9014e0530 class
[000023] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB25
STMT00007 (IL 0x0C4...0x0C5)
[000031] ------------ * JTRUE void
[000030] ------------ \--* EQ int
[000028] ------------ +--* LCL_VAR ref V03 loc1
[000029] ------------ \--* CNS_INT ref null
------------ BB26 [0C7..0D4) -> BB28 (cond), preds={} succs={BB27,BB28}
***** BB26
STMT00198 (IL 0x0C7...0x0D2)
[000753] --C-G------- * JTRUE void
[000752] --C-G------- \--* NE int
[000750] --C-G------- +--* CALL int System.Func`2[__Canon,Boolean][System.__Canon,System.Boolean].Invoke
[000748] ----G------- this in rcx | +--* FIELD ref IsTransparentProxy
[000749] ------------ arg1 | \--* LCL_VAR ref V03 loc1
[000751] ------------ \--* CNS_INT int 0
------------ BB27 [0D4..0DB) (return), preds={} succs={}
***** BB27
STMT00199 (IL 0x0D4...0x0DA)
[000756] --C-G------- * RETURN struct
[000755] --C-G------- \--* CALL struct Python.Runtime.ClassDerivedObject.ToPython
[000754] ------------ arg0 \--* LCL_VAR ref V03 loc1
------------ BB28 [0DB..132) -> BB30[dom(0.5806451)],BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB62,BB35,BB29[def] (switch), preds={} succs={BB30,BB62,BB37,BB41,BB46,BB40,BB42,BB47,BB36,BB48,BB43,BB49,BB44,BB45,BB50,BB51,BB35,BB29}
***** BB28
STMT00008 (IL 0x0DB...0x0E1)
[000033] I-C-G------- * CALL int System.Type.GetTypeCode (exactContextHnd=0x00007FF8FCE2C079)
[000032] ------------ arg0 \--* LCL_VAR ref V01 arg1
***** BB28
STMT00009 (IL ???... ???)
[000036] -AC--------- * ASG int
[000035] D------N---- +--* LCL_VAR int V04 loc2
[000034] --C--------- \--* RET_EXPR int (inl return expr [000033])
***** BB28
STMT00010 (IL 0x0E2...0x0E5)
[000040] ------------ * SWITCH void
[000039] ------------ \--* SUB int
[000037] ------------ +--* LCL_VAR int V04 loc2
[000038] ------------ \--* CNS_INT int 1
------------ BB29 [132..137) -> BB62 (always), preds={} succs={BB62}
------------ BB30 [137..13F) -> BB34 (cond), preds={} succs={BB31,BB34}
***** BB30
STMT00173 (IL 0x137...0x13D)
[000657] -A-X-------- * ASG ref
[000656] D------N---- +--* LCL_VAR ref V52 tmp26
[000655] ---X-------- \--* QMARK ref
[000648] Q----------- if +--* EQ int
[000647] ------------ | +--* LCL_VAR ref V00 arg0
[000646] ------------ | \--* CNS_INT ref null
[000654] ---X-------- if \--* COLON ref
[000652] ---X-------- else +--* QMARK ref
[000645] Q--X-------- if | +--* NE int
[000644] #--X-------- | | +--* IND long
[000643] ------------ | | | \--* LCL_VAR ref V00 arg0
[000642] H----------- | | \--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000651] ------------ if | \--* COLON ref
[000649] ------------ else | +--* LCL_VAR ref V00 arg0
[000650] ------------ then | \--* CNS_INT ref null
[000653] ------------ then \--* LCL_VAR ref V00 arg0
***** BB30
STMT00174 (IL ???... ???)
[000661] ------------ * JTRUE void
[000660] ------------ \--* EQ int
[000658] ------------ +--* LCL_VAR ref V52 tmp26
[000659] ------------ \--* CNS_INT ref null
------------ BB31 [13F..150), preds={} succs={BB32}
***** BB31
STMT00177 (IL 0x13F...0x145)
[000673] -ACXG------- * ASG struct (copy)
[000671] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
[000670] --CXG------- \--* OBJ struct<System.TimeSpan, 8>
[000669] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000668] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd001fa0 class
[000667] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB31
STMT00178 (IL 0x147...0x14E)
[000676] I-C-G------- * CALL struct Python.Runtime.Runtime.PyTuple_New (exactContextHnd=0x00007FF9001CEA41)
[000675] ------------ arg0 \--* CNS_INT long 1
***** BB31
STMT00179 (IL ???... ???)
[000680] -AC--------- * ASG struct (copy)
[000678] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
[000677] --C--------- \--* RET_EXPR struct(inl return expr [000676])
------------ BB32 [150..195) -> BB88 (always), preds={} succs={BB88}
***** BB32
STMT00180 (IL 0x150...0x165)
[000683] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000682] ------------ arg0 \--* ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB32
STMT00182 (IL ???... ???)
[000692] -AC--------- * ASG struct (copy)
[000690] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000684] --C--------- \--* RET_EXPR struct(inl return expr [000683])
***** BB32
STMT00181 (IL ???... ???)
[000689] I-C-G------- * CALL double System.TimeSpan.get_TotalDays (exactContextHnd=0x00007FF8FD001FA1)
[000688] ------------ this in rcx \--* ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
***** BB32
STMT00183 (IL ???... ???)
[000695] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000694] --C--------- arg0 \--* RET_EXPR double(inl return expr [000689])
***** BB32
STMT00184 (IL ???... ???)
[000699] -AC--------- * ASG struct (copy)
[000697] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000696] --C--------- \--* RET_EXPR struct(inl return expr [000695])
***** BB32
STMT00185 (IL ???...0x173)
[000702] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000701] ------------ this in rcx \--* ADDR byref
[000700] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB32
STMT00186 (IL ???... ???)
[000707] -AC--------- * ASG struct (copy)
[000705] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
[000703] --C--------- \--* RET_EXPR struct(inl return expr [000702])
***** BB32
STMT00187 (IL ???... ???)
[000704] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000712] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000711] ------------ | \--* ADDR byref
[000693] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V53 tmp27
[000686] ------------ arg1 +--* CNS_INT long 0
[000710] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000709] ------------ \--* ADDR byref
[000708] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V54 tmp28
***** BB32
STMT00188 (IL ???... ???)
[000715] --C--------- * COMMA void
[000713] --C--------- +--* RET_EXPR int (inl return expr [000704])
[000714] ------------ \--* NOP void
***** BB32
STMT00189 (IL 0x174...0x18A)
[000717] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000716] ----G------- arg0 \--* FIELD ref timeSpanCtor
***** BB32
STMT00191 (IL ???... ???)
[000724] -AC--------- * ASG struct (copy)
[000722] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000718] --C--------- \--* RET_EXPR struct(inl return expr [000717])
***** BB32
STMT00190 (IL ???... ???)
[000721] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000720] ------------ arg0 \--* ADDR byref
[000719] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB32
STMT00192 (IL ???... ???)
[000730] -AC--------- * ASG struct (copy)
[000728] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
[000726] --C--------- \--* RET_EXPR struct(inl return expr [000721])
***** BB32
STMT00193 (IL ???... ???)
[000727] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000735] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000734] ------------ | \--* ADDR byref
[000725] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V55 tmp29
[000733] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000732] ------------ \--* ADDR byref
[000731] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V56 tmp30
***** BB32
STMT00194 (IL ???... ???)
[000739] -AC--------- * ASG struct (copy)
[000737] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
[000736] --C--------- \--* RET_EXPR struct(inl return expr [000727])
***** BB32
STMT00195 (IL 0x18C...0x18E)
[000743] -A---------- * ASG struct (copy)
[000741] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000740] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V19 loc17
------------ BB88 [???..???) -> BB33 (callf), preds={} succs={BB33}
------------ BB89 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB33 [195..19D) (finret), preds={} succs={BB89}
***** BB33
STMT00196 (IL 0x195...0x19C)
[000746] I-C-G------- * CALL void Python.Runtime.NewReference.Dispose (exactContextHnd=0x00007FF9001F4CA9)
[000745] ------------ this in rcx \--* ADDR byref
[000744] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
***** BB33
STMT00197 (IL 0x19C... ???)
[000747] ------------ * RETFILT void
------------ BB34 [19D..1A5) (return), preds={} succs={}
***** BB34
STMT00175 (IL 0x19D...0x1A4)
[000664] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000662] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000663] ------------ arg1 \--* LCL_VAR ref V01 arg1
***** BB34
STMT00176 (IL ???... ???)
[000666] --C--------- * RETURN struct
[000665] --C--------- \--* RET_EXPR struct(inl return expr [000664])
------------ BB35 [1A5..1B1) (return), preds={} succs={}
***** BB35
STMT00011 (IL 0x1A5...0x1B0)
[000044] I-CXG------- * CALL struct Python.Runtime.Runtime.PyString_FromString (exactContextHnd=0x00007FF9001CEA41)
[000043] --CXG------- arg0 \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTCLASS
[000042] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcf8f7c8 class
[000041] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB35
STMT00012 (IL ???... ???)
[000046] --C--------- * RETURN struct
[000045] --C--------- \--* RET_EXPR struct(inl return expr [000044])
------------ BB36 [1B1..1BD) (return), preds={} succs={}
***** BB36
STMT00124 (IL 0x1B1...0x1BC)
[000474] --CXG------- * QMARK void
[000468] Q--X-------- if +--* EQ int
[000467] #--X-------- | +--* IND long
[000464] ------------ | | \--* LCL_VAR ref V00 arg0
[000465] H----------- | \--* CNS_INT(h) long 0x7ff8fcf22580 class
[000473] --CXG------- if \--* COLON void
[000471] --CXG------- else +--* CALL help void HELPER.CORINFO_HELP_UNBOX
[000470] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fcf22580 class
[000466] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000472] ------------ then \--* NOP void
***** BB36
STMT00125 (IL ???... ???)
[000478] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000477] *--XG------- arg0 \--* IND int
[000476] ------------ \--* ADD byref
[000469] ------------ +--* LCL_VAR ref V00 arg0
[000475] ------------ \--* CNS_INT long 8
***** BB36
STMT00126 (IL ???... ???)
[000480] --C--------- * RETURN struct
[000479] --C--------- \--* RET_EXPR struct(inl return expr [000478])
------------ BB37 [1BD..1C5) -> BB39 (cond), preds={} succs={BB38,BB39}
***** BB37
STMT00137 (IL 0x1BD...0x1C3)
[000527] --CXG------- * JTRUE void
[000526] --CXG------- \--* EQ int
[000524] *-CXG------- +--* IND bool
[000523] --CXG------- | \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000522] H----------- arg0 | +--* CNS_INT(h) long 0x7ff8fced5500 class
[000521] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000525] ------------ \--* CNS_INT int 0
------------ BB38 [1C5..1D1) (return), preds={} succs={}
***** BB38
STMT00143 (IL 0x1C5...0x1D0)
[000546] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyTrue (exactContextHnd=0x00007FF9001CEA41)
***** BB38
STMT00144 (IL ???... ???)
[000551] IA---------- * ASG struct (init)
[000549] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000550] ------------ \--* CNS_INT int 0
***** BB38
STMT00145 (IL ???... ???)
[000557] -AC--------- * ASG struct (copy)
[000555] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000547] --C--------- \--* RET_EXPR struct(inl return expr [000546])
***** BB38
STMT00146 (IL ???... ???)
[000554] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000553] ------------ this in rcx +--* ADDR byref
[000552] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
[000560] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000559] ------------ | \--* ADDR byref
[000558] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V50 tmp24
[000561] ------------ arg2 \--* PUTARG_TYPE bool
[000548] ------------ \--* CNS_INT int 0
***** BB38
STMT00147 (IL 0x1D0... ???)
[000563] ------------ * RETURN struct
[000562] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V49 tmp23
------------ BB39 [1D1..1DD) (return), preds={} succs={}
***** BB39
STMT00138 (IL 0x1D1...0x1DC)
[000528] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyFalse (exactContextHnd=0x00007FF9001CEA41)
***** BB39
STMT00139 (IL ???... ???)
[000533] IA---------- * ASG struct (init)
[000531] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000532] ------------ \--* CNS_INT int 0
***** BB39
STMT00140 (IL ???... ???)
[000539] -AC--------- * ASG struct (copy)
[000537] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000529] --C--------- \--* RET_EXPR struct(inl return expr [000528])
***** BB39
STMT00141 (IL ???... ???)
[000536] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000535] ------------ this in rcx +--* ADDR byref
[000534] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
[000542] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000541] ------------ | \--* ADDR byref
[000540] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V48 tmp22
[000543] ------------ arg2 \--* PUTARG_TYPE bool
[000530] ------------ \--* CNS_INT int 0
***** BB39
STMT00142 (IL 0x1DC... ???)
[000545] ------------ * RETURN struct
[000544] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V47 tmp21
------------ BB40 [1DD..1E9) (return), preds={} succs={}
***** BB40
STMT00131 (IL 0x1DD...0x1E8)
[000501] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000502] --CXG------- arg0 \--* PUTARG_TYPE int
[000500] *-CXG------- \--* IND ubyte
[000499] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000498] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefb290 class
[000497] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB40
STMT00132 (IL ???... ???)
[000504] --C--------- * RETURN struct
[000503] --C--------- \--* RET_EXPR struct(inl return expr [000501])
------------ BB41 [1E9..1F5) (return), preds={} succs={}
***** BB41
STMT00135 (IL 0x1E9...0x1F4)
[000517] I-CXG------- * CALL struct Python.Runtime.Runtime.PyUnicode_FromOrdinal (exactContextHnd=0x00007FF9001CEA41)
[000518] --CXG------- arg0 \--* PUTARG_TYPE int
[000516] *-CXG------- \--* IND ushort
[000515] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000514] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcedb2f8 class
[000513] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB41
STMT00136 (IL ???... ???)
[000520] --C--------- * RETURN struct
[000519] --C--------- \--* RET_EXPR struct(inl return expr [000517])
------------ BB42 [1F5..201) (return), preds={} succs={}
***** BB42
STMT00129 (IL 0x1F5...0x200)
[000493] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000494] --CXG------- arg0 \--* PUTARG_TYPE int
[000492] *-CXG------- \--* IND short
[000491] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000490] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcefd840 class
[000489] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB42
STMT00130 (IL ???... ???)
[000496] --C--------- * RETURN struct
[000495] --C--------- \--* RET_EXPR struct(inl return expr [000493])
------------ BB43 [201..20D) (return), preds={} succs={}
***** BB43
STMT00120 (IL 0x201...0x20C)
[000453] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromLongLong (exactContextHnd=0x00007FF9001CEA41)
[000452] *-CXG------- arg0 \--* IND long
[000451] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000450] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf26f98 class
[000449] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB43
STMT00121 (IL ???... ???)
[000455] --C--------- * RETURN struct
[000454] --C--------- \--* RET_EXPR struct(inl return expr [000453])
------------ BB44 [20D..21A) (return), preds={} succs={}
***** BB44
STMT00116 (IL 0x20D...0x219)
[000439] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000438] --CXG------- arg0 \--* CAST double <- float
[000437] *-CXG------- \--* IND float
[000436] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000435] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf2dea0 class
[000434] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB44
STMT00117 (IL ???... ???)
[000441] --C--------- * RETURN struct
[000440] --C--------- \--* RET_EXPR struct(inl return expr [000439])
------------ BB45 [21A..226) (return), preds={} succs={}
***** BB45
STMT00114 (IL 0x21A...0x225)
[000431] I-CXG------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000430] *-CXG------- arg0 \--* IND double
[000429] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000428] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf57320 class
[000427] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB45
STMT00115 (IL ???... ???)
[000433] --C--------- * RETURN struct
[000432] --C--------- \--* RET_EXPR struct(inl return expr [000431])
------------ BB46 [226..232) (return), preds={} succs={}
***** BB46
STMT00133 (IL 0x226...0x231)
[000509] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000510] --CXG------- arg0 \--* PUTARG_TYPE int
[000508] *-CXG------- \--* IND byte
[000507] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000506] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcef6bc8 class
[000505] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB46
STMT00134 (IL ???... ???)
[000512] --C--------- * RETURN struct
[000511] --C--------- \--* RET_EXPR struct(inl return expr [000509])
------------ BB47 [232..23E) (return), preds={} succs={}
***** BB47
STMT00127 (IL 0x232...0x23D)
[000485] I-CXG------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000486] --CXG------- arg0 \--* PUTARG_TYPE int
[000484] *-CXG------- \--* IND ushort
[000483] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000482] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf20000 class
[000481] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB47
STMT00128 (IL ???... ???)
[000488] --C--------- * RETURN struct
[000487] --C--------- \--* RET_EXPR struct(inl return expr [000485])
------------ BB48 [23E..24B) (return), preds={} succs={}
***** BB48
STMT00122 (IL 0x23E...0x24A)
[000461] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000460] --CXG----U-- arg0 \--* CAST long <- ulong <- uint
[000459] *-CXG------- \--* IND int
[000458] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000457] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf24a68 class
[000456] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB48
STMT00123 (IL ???... ???)
[000463] --C--------- * RETURN struct
[000462] --C--------- \--* RET_EXPR struct(inl return expr [000461])
------------ BB49 [24B..257) (return), preds={} succs={}
***** BB49
STMT00118 (IL 0x24B...0x256)
[000446] I-CXG------- * CALL struct Python.Runtime.Runtime.PyLong_FromUnsignedLongLong (exactContextHnd=0x00007FF9001CEA41)
[000445] *-CXG------- arg0 \--* IND long
[000444] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000443] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf29478 class
[000442] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB49
STMT00119 (IL ???... ???)
[000448] --C--------- * RETURN struct
[000447] --C--------- \--* RET_EXPR struct(inl return expr [000446])
------------ BB50 [257..268) (return), preds={} succs={}
***** BB50
STMT00111 (IL 0x257...0x267)
[000422] I-CXG------- * CALL double System.Decimal.ToDouble (exactContextHnd=0x00007FF8FCF5F5B9)
[000421] --CXG------- arg0 \--* OBJ struct<System.Decimal, 16>
[000420] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000419] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fcf5f5b8 class
[000418] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB50
STMT00112 (IL ???... ???)
[000424] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000423] --C--------- arg0 \--* RET_EXPR double(inl return expr [000422])
***** BB50
STMT00113 (IL ???... ???)
[000426] --C--------- * RETURN struct
[000425] --C--------- \--* RET_EXPR struct(inl return expr [000424])
------------ BB51 [268..279) -> BB53 (cond), preds={} succs={BB52,BB53}
***** BB51
STMT00013 (IL 0x268...0x26E)
[000053] -ACXG------- * ASG struct (copy)
[000051] D------N---- +--* LCL_VAR struct<System.DateTime, 8> V11 loc9
[000050] --CXG------- \--* OBJ struct<System.DateTime, 8>
[000049] --CXG------- \--* CALL help byref HELPER.CORINFO_HELP_UNBOX
[000048] H----------- arg0 +--* CNS_INT(h) long 0x7ff8fd4cc3e8 class
[000047] ------------ arg1 \--* LCL_VAR ref V00 arg0
***** BB51
STMT00014 (IL 0x270...0x277)
[000056] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000055] ------------ this in rcx \--* ADDR byref
[000054] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB51
STMT00015 (IL ???... ???)
[000060] --C--------- * JTRUE void
[000059] --C--------- \--* EQ int
[000057] --C--------- +--* RET_EXPR int (inl return expr [000056])
[000058] ------------ \--* CNS_INT int 0
------------ BB52 [279..27C) -> BB54 (always), preds={} succs={BB54}
***** BB52
STMT00110 (IL 0x279...0x27A)
[000416] -A---------- * ASG int
[000415] D------N---- +--* LCL_VAR int V27 tmp1
[000414] ------------ \--* CNS_INT int 8
------------ BB53 [27C..27D), preds={} succs={BB54}
***** BB53
STMT00016 (IL 0x27C...0x27C)
[000063] -A---------- * ASG int
[000062] D------N---- +--* LCL_VAR int V27 tmp1
[000061] ------------ \--* CNS_INT int 7
------------ BB54 [27D..288) -> BB56 (cond), preds={} succs={BB55,BB56}
***** BB54
STMT00017 (IL ???...0x27D)
[000067] -A---------- * ASG int
[000066] D------N---- +--* LCL_VAR int V12 loc10
[000065] ------------ \--* LCL_VAR int V27 tmp1
***** BB54
STMT00018 (IL 0x27F...0x286)
[000070] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000069] ------------ this in rcx \--* ADDR byref
[000068] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB54
STMT00019 (IL ???... ???)
[000074] --C--------- * JTRUE void
[000073] --C--------- \--* EQ int
[000071] --C--------- +--* RET_EXPR int (inl return expr [000070])
[000072] ------------ \--* CNS_INT int 0
------------ BB55 [288..28F) -> BB57 (always), preds={} succs={BB57}
***** BB55
STMT00109 (IL 0x288...0x28D)
[000412] -A--G------- * ASG ref
[000411] D------N---- +--* LCL_VAR ref V28 tmp2
[000410] ----G------- \--* FIELD ref pyTupleKind
------------ BB56 [28F..294), preds={} succs={BB57}
***** BB56
STMT00020 (IL 0x28F...0x28F)
[000077] -A--G------- * ASG ref
[000076] D------N---- +--* LCL_VAR ref V28 tmp2
[000075] ----G------- \--* FIELD ref pyTupleNoKind
------------ BB57 [294..3A4) -> BB59 (cond), preds={} succs={BB58,BB59}
***** BB57
STMT00021 (IL ???...0x294)
[000081] -A---------- * ASG ref
[000080] D------N---- +--* LCL_VAR ref V13 loc11
[000079] ------------ \--* LCL_VAR ref V28 tmp2
***** BB57
STMT00022 (IL 0x296...0x2AB)
[000083] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000082] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00024 (IL ???... ???)
[000092] -AC--------- * ASG struct (copy)
[000090] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000084] --C--------- \--* RET_EXPR struct(inl return expr [000083])
***** BB57
STMT00023 (IL ???... ???)
[000089] I-C-G------- * CALL int System.DateTime.get_Year (exactContextHnd=0x00007FF8FD4CC3E9)
[000088] ------------ this in rcx \--* ADDR byref
[000087] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00025 (IL ???... ???)
[000095] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000094] --C--------- arg0 \--* RET_EXPR int (inl return expr [000089])
***** BB57
STMT00026 (IL ???... ???)
[000099] -AC--------- * ASG struct (copy)
[000097] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000096] --C--------- \--* RET_EXPR struct(inl return expr [000095])
***** BB57
STMT00027 (IL ???...0x2B9)
[000102] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000101] ------------ this in rcx \--* ADDR byref
[000100] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00028 (IL ???... ???)
[000107] -AC--------- * ASG struct (copy)
[000105] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
[000103] --C--------- \--* RET_EXPR struct(inl return expr [000102])
***** BB57
STMT00029 (IL ???... ???)
[000104] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000112] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000111] ------------ | \--* ADDR byref
[000093] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V29 tmp3
[000086] ------------ arg1 +--* CNS_INT long 0
[000110] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000109] ------------ \--* ADDR byref
[000108] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V30 tmp4
***** BB57
STMT00030 (IL ???... ???)
[000115] --C--------- * COMMA void
[000113] --C--------- +--* RET_EXPR int (inl return expr [000104])
[000114] ------------ \--* NOP void
***** BB57
STMT00031 (IL 0x2BA...0x2CF)
[000117] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000116] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00033 (IL ???... ???)
[000126] -AC--------- * ASG struct (copy)
[000124] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000118] --C--------- \--* RET_EXPR struct(inl return expr [000117])
***** BB57
STMT00032 (IL ???... ???)
[000123] I-C-G------- * CALL int System.DateTime.get_Month (exactContextHnd=0x00007FF8FD4CC3E9)
[000122] ------------ this in rcx \--* ADDR byref
[000121] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00034 (IL ???... ???)
[000129] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000128] --C--------- arg0 \--* RET_EXPR int (inl return expr [000123])
***** BB57
STMT00035 (IL ???... ???)
[000133] -AC--------- * ASG struct (copy)
[000131] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000130] --C--------- \--* RET_EXPR struct(inl return expr [000129])
***** BB57
STMT00036 (IL ???...0x2DD)
[000136] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000135] ------------ this in rcx \--* ADDR byref
[000134] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00037 (IL ???... ???)
[000141] -AC--------- * ASG struct (copy)
[000139] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
[000137] --C--------- \--* RET_EXPR struct(inl return expr [000136])
***** BB57
STMT00038 (IL ???... ???)
[000138] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000146] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000145] ------------ | \--* ADDR byref
[000127] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V31 tmp5
[000120] ------------ arg1 +--* CNS_INT long 1
[000144] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000143] ------------ \--* ADDR byref
[000142] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V32 tmp6
***** BB57
STMT00039 (IL ???... ???)
[000149] --C--------- * COMMA void
[000147] --C--------- +--* RET_EXPR int (inl return expr [000138])
[000148] ------------ \--* NOP void
***** BB57
STMT00040 (IL 0x2DE...0x2F3)
[000151] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000150] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00042 (IL ???... ???)
[000160] -AC--------- * ASG struct (copy)
[000158] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000152] --C--------- \--* RET_EXPR struct(inl return expr [000151])
***** BB57
STMT00041 (IL ???... ???)
[000157] I-C-G------- * CALL int System.DateTime.get_Day (exactContextHnd=0x00007FF8FD4CC3E9)
[000156] ------------ this in rcx \--* ADDR byref
[000155] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00043 (IL ???... ???)
[000163] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000162] --C--------- arg0 \--* RET_EXPR int (inl return expr [000157])
***** BB57
STMT00044 (IL ???... ???)
[000167] -AC--------- * ASG struct (copy)
[000165] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000164] --C--------- \--* RET_EXPR struct(inl return expr [000163])
***** BB57
STMT00045 (IL ???...0x301)
[000170] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000169] ------------ this in rcx \--* ADDR byref
[000168] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00046 (IL ???... ???)
[000175] -AC--------- * ASG struct (copy)
[000173] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
[000171] --C--------- \--* RET_EXPR struct(inl return expr [000170])
***** BB57
STMT00047 (IL ???... ???)
[000172] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000180] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000179] ------------ | \--* ADDR byref
[000161] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V33 tmp7
[000154] ------------ arg1 +--* CNS_INT long 2
[000178] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000177] ------------ \--* ADDR byref
[000176] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V34 tmp8
***** BB57
STMT00048 (IL ???... ???)
[000183] --C--------- * COMMA void
[000181] --C--------- +--* RET_EXPR int (inl return expr [000172])
[000182] ------------ \--* NOP void
***** BB57
STMT00049 (IL 0x302...0x317)
[000185] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000184] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00051 (IL ???... ???)
[000194] -AC--------- * ASG struct (copy)
[000192] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000186] --C--------- \--* RET_EXPR struct(inl return expr [000185])
***** BB57
STMT00050 (IL ???... ???)
[000191] I-C-G------- * CALL int System.DateTime.get_Hour (exactContextHnd=0x00007FF8FD4CC3E9)
[000190] ------------ this in rcx \--* ADDR byref
[000189] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00052 (IL ???... ???)
[000197] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000196] --C--------- arg0 \--* RET_EXPR int (inl return expr [000191])
***** BB57
STMT00053 (IL ???... ???)
[000201] -AC--------- * ASG struct (copy)
[000199] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000198] --C--------- \--* RET_EXPR struct(inl return expr [000197])
***** BB57
STMT00054 (IL ???...0x325)
[000204] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000203] ------------ this in rcx \--* ADDR byref
[000202] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00055 (IL ???... ???)
[000209] -AC--------- * ASG struct (copy)
[000207] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
[000205] --C--------- \--* RET_EXPR struct(inl return expr [000204])
***** BB57
STMT00056 (IL ???... ???)
[000206] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000214] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000213] ------------ | \--* ADDR byref
[000195] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V35 tmp9
[000188] ------------ arg1 +--* CNS_INT long 3
[000212] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000211] ------------ \--* ADDR byref
[000210] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V36 tmp10
***** BB57
STMT00057 (IL ???... ???)
[000217] --C--------- * COMMA void
[000215] --C--------- +--* RET_EXPR int (inl return expr [000206])
[000216] ------------ \--* NOP void
***** BB57
STMT00058 (IL 0x326...0x33B)
[000219] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000218] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00060 (IL ???... ???)
[000228] -AC--------- * ASG struct (copy)
[000226] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000220] --C--------- \--* RET_EXPR struct(inl return expr [000219])
***** BB57
STMT00059 (IL ???... ???)
[000225] I-C-G------- * CALL int System.DateTime.get_Minute (exactContextHnd=0x00007FF8FD4CC3E9)
[000224] ------------ this in rcx \--* ADDR byref
[000223] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00061 (IL ???... ???)
[000231] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000230] --C--------- arg0 \--* RET_EXPR int (inl return expr [000225])
***** BB57
STMT00062 (IL ???... ???)
[000235] -AC--------- * ASG struct (copy)
[000233] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000232] --C--------- \--* RET_EXPR struct(inl return expr [000231])
***** BB57
STMT00063 (IL ???...0x349)
[000238] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000237] ------------ this in rcx \--* ADDR byref
[000236] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00064 (IL ???... ???)
[000243] -AC--------- * ASG struct (copy)
[000241] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
[000239] --C--------- \--* RET_EXPR struct(inl return expr [000238])
***** BB57
STMT00065 (IL ???... ???)
[000240] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000248] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000247] ------------ | \--* ADDR byref
[000229] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V37 tmp11
[000222] ------------ arg1 +--* CNS_INT long 4
[000246] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000245] ------------ \--* ADDR byref
[000244] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V38 tmp12
***** BB57
STMT00066 (IL ???... ???)
[000251] --C--------- * COMMA void
[000249] --C--------- +--* RET_EXPR int (inl return expr [000240])
[000250] ------------ \--* NOP void
***** BB57
STMT00067 (IL 0x34A...0x35F)
[000253] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000252] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB57
STMT00069 (IL ???... ???)
[000262] -AC--------- * ASG struct (copy)
[000260] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000254] --C--------- \--* RET_EXPR struct(inl return expr [000253])
***** BB57
STMT00068 (IL ???... ???)
[000259] I-C-G------- * CALL int System.DateTime.get_Second (exactContextHnd=0x00007FF8FD4CC3E9)
[000258] ------------ this in rcx \--* ADDR byref
[000257] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00070 (IL ???... ???)
[000265] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000264] --C--------- arg0 \--* RET_EXPR int (inl return expr [000259])
***** BB57
STMT00071 (IL ???... ???)
[000269] -AC--------- * ASG struct (copy)
[000267] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000266] --C--------- \--* RET_EXPR struct(inl return expr [000265])
***** BB57
STMT00072 (IL ???...0x36D)
[000272] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000271] ------------ this in rcx \--* ADDR byref
[000270] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB57
STMT00073 (IL ???... ???)
[000277] -AC--------- * ASG struct (copy)
[000275] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
[000273] --C--------- \--* RET_EXPR struct(inl return expr [000272])
***** BB57
STMT00074 (IL ???... ???)
[000274] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000282] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000281] ------------ | \--* ADDR byref
[000263] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V39 tmp13
[000256] ------------ arg1 +--* CNS_INT long 5
[000280] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000279] ------------ \--* ADDR byref
[000278] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V40 tmp14
***** BB57
STMT00075 (IL ???... ???)
[000285] --C--------- * COMMA void
[000283] --C--------- +--* RET_EXPR int (inl return expr [000274])
[000284] ------------ \--* NOP void
***** BB57
STMT00076 (IL 0x36E...0x375)
[000288] I-C-G------- * CALL struct System.DateTime.get_TimeOfDay (exactContextHnd=0x00007FF8FD4CC3E9)
[000287] ------------ this in rcx \--* ADDR byref
[000286] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB57
STMT00077 (IL ???... ???)
[000292] -AC--------- * ASG struct (copy)
[000290] D------N---- +--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
[000289] --C--------- \--* RET_EXPR struct(inl return expr [000288])
***** BB57
STMT00078 (IL 0x377...0x37E)
[000295] I-C-G------- * CALL double System.TimeSpan.get_TotalSeconds (exactContextHnd=0x00007FF8FD001FA1)
[000294] ------------ this in rcx \--* ADDR byref
[000293] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V21 loc19
***** BB57
STMT00079 (IL ???... ???)
[000298] -AC--------- * ASG double
[000297] D------N---- +--* LCL_VAR double V14 loc12
[000296] --C--------- \--* RET_EXPR double(inl return expr [000295])
***** BB57
STMT00080 (IL 0x380...0x399)
[000301] I-C-G------- * CALL double System.Math.Truncate (exactContextHnd=0x00007FF8FD49AA39)
[000300] ------------ arg0 \--* LCL_VAR double V14 loc12
***** BB57
STMT00081 (IL ???... ???)
[000306] I-C-G------- * CALL int System.Convert.ToInt32 (exactContextHnd=0x00007FF8FD404741)
[000305] --C--------- arg0 \--* MUL double
[000303] --C--------- +--* SUB double
[000299] ------------ | +--* LCL_VAR double V14 loc12
[000302] --C--------- | \--* RET_EXPR double(inl return expr [000301])
[000304] ------------ \--* CNS_DBL double 1000000.0000000000
***** BB57
STMT00082 (IL ???... ???)
[000309] -AC--------- * ASG int
[000308] D------N---- +--* LCL_VAR int V15 loc13
[000307] --C--------- \--* RET_EXPR int (inl return expr [000306])
***** BB57
STMT00083 (IL 0x39B...0x3A2)
[000313] ------------ * JTRUE void
[000312] N--------U-- \--* NE int
[000310] ------------ +--* LCL_VAR int V15 loc13
[000311] ------------ \--* CNS_INT int 0xF4240
------------ BB58 [3A4..3AB), preds={} succs={BB59}
***** BB58
STMT00108 (IL 0x3A4...0x3A9)
[000409] -A---------- * ASG int
[000408] D------N---- +--* LCL_VAR int V15 loc13
[000407] ------------ \--* CNS_INT int 0xF423F
------------ BB59 [3AB..3CF) -> BB61 (cond), preds={} succs={BB60,BB61}
***** BB59
STMT00084 (IL 0x3AB...0x3BB)
[000315] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000314] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB59
STMT00086 (IL ???... ???)
[000323] -AC--------- * ASG struct (copy)
[000321] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000316] --C--------- \--* RET_EXPR struct(inl return expr [000315])
***** BB59
STMT00085 (IL ???... ???)
[000320] I-C-G------- * CALL struct Python.Runtime.Runtime.PyInt_FromInt32 (exactContextHnd=0x00007FF9001CEA41)
[000319] ------------ arg0 \--* LCL_VAR int V15 loc13
***** BB59
STMT00087 (IL ???... ???)
[000328] -AC--------- * ASG struct (copy)
[000326] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000325] --C--------- \--* RET_EXPR struct(inl return expr [000320])
***** BB59
STMT00088 (IL ???...0x3C9)
[000331] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000330] ------------ this in rcx \--* ADDR byref
[000329] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB59
STMT00089 (IL ???... ???)
[000336] -AC--------- * ASG struct (copy)
[000334] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
[000332] --C--------- \--* RET_EXPR struct(inl return expr [000331])
***** BB59
STMT00090 (IL ???... ???)
[000333] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000341] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000340] ------------ | \--* ADDR byref
[000324] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V41 tmp15
[000318] ------------ arg1 +--* CNS_INT long 6
[000339] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000338] ------------ \--* ADDR byref
[000337] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V42 tmp16
***** BB59
STMT00091 (IL ???... ???)
[000344] --C--------- * COMMA void
[000342] --C--------- +--* RET_EXPR int (inl return expr [000333])
[000343] ------------ \--* NOP void
***** BB59
STMT00092 (IL 0x3CA...0x3CD)
[000348] ------------ * JTRUE void
[000347] N--------U-- \--* NE int
[000345] ------------ +--* LCL_VAR int V12 loc10
[000346] ------------ \--* CNS_INT int 8
------------ BB60 [3CF..3F3), preds={} succs={BB61}
***** BB60
STMT00100 (IL 0x3CF...0x3E4)
[000375] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000374] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB60
STMT00102 (IL ???... ???)
[000384] -AC--------- * ASG struct (copy)
[000382] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000376] --C--------- \--* RET_EXPR struct(inl return expr [000375])
***** BB60
STMT00101 (IL ???... ???)
[000381] I-C-G------- * CALL int System.DateTime.get_Kind (exactContextHnd=0x00007FF8FD4CC3E9)
[000380] ------------ this in rcx \--* ADDR byref
[000379] -------N---- \--* LCL_VAR struct<System.DateTime, 8> V11 loc9
***** BB60
STMT00103 (IL ???... ???)
[000390] -AC-G------- * ASG struct (copy)
[000388] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
[000387] --C-G------- \--* CALL struct Python.Runtime.Converter.TzInfo
[000386] --C--------- arg0 \--* RET_EXPR int (inl return expr [000381])
***** BB60
STMT00104 (IL ???...0x3F2)
[000393] I-C-G------- * CALL struct Python.Runtime.NewReference.Steal (exactContextHnd=0x00007FF9001F4CA9)
[000392] ------------ this in rcx \--* ADDR byref
[000391] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V20 loc18
***** BB60
STMT00105 (IL ???... ???)
[000398] -AC--------- * ASG struct (copy)
[000396] D------N---- +--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
[000394] --C--------- \--* RET_EXPR struct(inl return expr [000393])
***** BB60
STMT00106 (IL ???... ???)
[000395] I-C-G------- * CALL int Python.Runtime.Runtime.PyTuple_SetItem (exactContextHnd=0x00007FF9001CEA41)
[000403] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000402] ------------ | \--* ADDR byref
[000385] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V45 tmp19
[000378] ------------ arg1 +--* CNS_INT long 7
[000401] n----------- arg2 \--* OBJ struct<Python.Runtime.StolenReference, 8>
[000400] ------------ \--* ADDR byref
[000399] -------N---- \--* LCL_VAR struct<Python.Runtime.StolenReference, 8> V46 tmp20
***** BB60
STMT00107 (IL ???... ???)
[000406] --C--------- * COMMA void
[000404] --C--------- +--* RET_EXPR int (inl return expr [000395])
[000405] ------------ \--* NOP void
------------ BB61 [3F3..40E) (return), preds={} succs={}
***** BB61
STMT00093 (IL 0x3F3...0x409)
[000350] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000349] ----G------- arg0 \--* FIELD ref dateTimeCtor
***** BB61
STMT00095 (IL ???... ???)
[000356] -AC--------- * ASG struct (copy)
[000354] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000351] --C--------- \--* RET_EXPR struct(inl return expr [000350])
***** BB61
STMT00094 (IL ???... ???)
[000353] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000352] ------------ arg0 \--* LCL_VAR ref V13 loc11
***** BB61
STMT00096 (IL ???... ???)
[000362] -AC--------- * ASG struct (copy)
[000360] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
[000358] --C--------- \--* RET_EXPR struct(inl return expr [000353])
***** BB61
STMT00097 (IL ???... ???)
[000359] I-C-G------- * CALL struct Python.Runtime.Runtime.PyObject_CallObject (exactContextHnd=0x00007FF9001CEA41)
[000367] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000366] ------------ | \--* ADDR byref
[000357] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V43 tmp17
[000365] n----------- arg1 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000364] ------------ \--* ADDR byref
[000363] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V44 tmp18
***** BB61
STMT00098 (IL ???... ???)
[000371] -AC--------- * ASG struct (copy)
[000369] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
[000368] --C--------- \--* RET_EXPR struct(inl return expr [000359])
***** BB61
STMT00099 (IL 0x40B...0x40D)
[000373] ------------ * RETURN struct
[000372] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V16 loc14
------------ BB62 [40E..416) -> BB80 (cond), preds={} succs={BB63,BB80}
***** BB62
STMT00148 (IL 0x40E...0x414)
[000569] --C-G------- * JTRUE void
[000568] --C-G------- \--* EQ int
[000566] --C-G------- +--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000565] H------N---- arg0 | +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000564] ------------ arg1 | \--* LCL_VAR ref V00 arg0
[000567] ------------ \--* CNS_INT ref null
------------ BB63 [416..41D), preds={} succs={BB64}
***** BB63
STMT00151 (IL 0x416...0x41B)
[000578] -A---------- * ASG ref
[000577] D------N---- +--* LCL_VAR ref V51 tmp25
[000576] ------------ \--* ALLOCOBJ ref
[000575] H----------- \--* CNS_INT(h) long 0x7ff9014b26a0 method
***** BB63
STMT00152 (IL ???... ???)
[000580] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000579] ------------ this in rcx \--* LCL_VAR ref V51 tmp25
***** BB63
STMT00153 (IL 0x41B... ???)
[000583] -A---------- * ASG ref
[000582] D------N---- +--* LCL_VAR ref V22 loc20
[000581] ------------ \--* LCL_VAR ref V51 tmp25
------------ BB64 [41D..42A), preds={} succs={BB65}
***** BB64
STMT00154 (IL 0x41D...0x428)
[000589] -ACXG------- * ASG ref
[000588] D------N---- +--* LCL_VAR ref V23 loc21
[000587] --CXG------- \--* CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000586] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000585] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000584] ------------ arg1 \--* LCL_VAR ref V00 arg0
------------ BB65 [42A..42C) -> BB71 (always), preds={} succs={BB71}
------------ BB66 [42C..43E), preds={} succs={BB67}
***** BB66
STMT00156 (IL 0x42C...0x433)
[000598] -AC-G------- * ASG ref
[000597] D------N---- +--* LCL_VAR ref V24 loc22
[000596] --C-G------- \--* CALLV stub ref System.Collections.IEnumerator.get_Current
[000595] ------------ this in rcx \--* LCL_VAR ref V23 loc21
***** BB66
STMT00157 (IL 0x435...0x43C)
[000600] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000599] ------------ arg0 \--* LCL_VAR ref V24 loc22
***** BB66
STMT00158 (IL ???... ???)
[000603] -AC--------- * ASG ref
[000602] D------N---- +--* LCL_VAR ref V25 loc23
[000601] --C--------- \--* RET_EXPR ref (inl return expr [000600])
------------ BB67 [43E..449) -> BB82 (always), preds={} succs={BB82}
***** BB67
STMT00159 (IL 0x43E...0x447)
[000606] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000604] ------------ this in rcx +--* LCL_VAR ref V22 loc20
[000605] ------------ arg1 \--* LCL_VAR ref V25 loc23
------------ BB82 [???..???) -> BB68 (callf), preds={} succs={BB68}
------------ BB83 [???..???) -> BB71 (ALWAYS), preds={} succs={BB71}
------------ BB68 [449..44D) -> BB70 (cond), preds={} succs={BB69,BB70}
***** BB68
STMT00160 (IL 0x449...0x44B)
[000610] ------------ * JTRUE void
[000609] ------------ \--* EQ int
[000607] ------------ +--* LCL_VAR ref V25 loc23
[000608] ------------ \--* CNS_INT ref null
------------ BB69 [44D..454), preds={} succs={BB70}
***** BB69
STMT00162 (IL 0x44D...0x44F)
[000613] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000612] ------------ this in rcx \--* LCL_VAR ref V25 loc23
------------ BB70 [454..455) (finret), preds={} succs={BB83}
***** BB70
STMT00161 (IL 0x454...0x454)
[000611] ------------ * RETFILT void
------------ BB71 [455..45E) -> BB66 (cond), preds={} succs={BB72,BB66}
***** BB71
STMT00155 (IL 0x455...0x45C)
[000594] --C-G------- * JTRUE void
[000593] --C-G------- \--* NE int
[000591] --C-G------- +--* CALLV stub int System.Collections.IEnumerator.MoveNext
[000590] ------------ this in rcx | \--* LCL_VAR ref V23 loc21
[000592] ------------ \--* CNS_INT int 0
------------ BB72 [45E..460) -> BB84 (always), preds={} succs={BB84}
------------ BB84 [???..???) -> BB73 (callf), preds={} succs={BB73}
------------ BB85 [???..???) -> BB76 (ALWAYS), preds={} succs={BB76}
------------ BB73 [460..46D) -> BB75 (cond), preds={} succs={BB74,BB75}
***** BB73
STMT00166 (IL 0x460...0x467)
[000626] -AC-G------- * ASG ref
[000625] D------N---- +--* LCL_VAR ref V09 loc7
[000624] --C-G------- \--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFINTERFACE
[000623] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fcfbd948 class
[000622] ------------ arg1 \--* LCL_VAR ref V23 loc21
***** BB73
STMT00167 (IL 0x469...0x46B)
[000630] ------------ * JTRUE void
[000629] ------------ \--* EQ int
[000627] ------------ +--* LCL_VAR ref V09 loc7
[000628] ------------ \--* CNS_INT ref null
------------ BB74 [46D..474), preds={} succs={BB75}
***** BB74
STMT00169 (IL 0x46D...0x46F)
[000633] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000632] ------------ this in rcx \--* LCL_VAR ref V09 loc7
------------ BB75 [474..475) (finret), preds={} succs={BB85}
***** BB75
STMT00168 (IL 0x474...0x474)
[000631] ------------ * RETFILT void
------------ BB76 [475..480) -> BB86 (always), preds={} succs={BB86}
***** BB76
STMT00163 (IL 0x475...0x47C)
[000615] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000614] ------------ arg0 \--* LCL_VAR ref V22 loc20
***** BB76
STMT00164 (IL ???... ???)
[000619] -AC--------- * ASG struct (copy)
[000617] D------N---- +--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
[000616] --C--------- \--* RET_EXPR struct(inl return expr [000615])
------------ BB86 [???..???) -> BB77 (callf), preds={} succs={BB77}
------------ BB87 [???..???) -> BB81 (ALWAYS), preds={} succs={BB81}
------------ BB77 [480..484) -> BB79 (cond), preds={} succs={BB78,BB79}
***** BB77
STMT00170 (IL 0x480...0x482)
[000637] ------------ * JTRUE void
[000636] ------------ \--* EQ int
[000634] ------------ +--* LCL_VAR ref V22 loc20
[000635] ------------ \--* CNS_INT ref null
------------ BB78 [484..48B), preds={} succs={BB79}
***** BB78
STMT00172 (IL 0x484...0x486)
[000640] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000639] ------------ this in rcx \--* LCL_VAR ref V22 loc20
------------ BB79 [48B..48C) (finret), preds={} succs={BB87}
***** BB79
STMT00171 (IL 0x48B...0x48B)
[000638] ------------ * RETFILT void
------------ BB80 [48C..494) (return), preds={} succs={}
***** BB80
STMT00149 (IL 0x48C...0x493)
[000572] I-C-G------- * CALL struct Python.Runtime.CLRObject.GetReference (exactContextHnd=0x00007FF90278F5B1)
[000570] ------------ arg0 +--* LCL_VAR ref V00 arg0
[000571] ------------ arg1 \--* LCL_VAR ref V01 arg1
***** BB80
STMT00150 (IL ???... ???)
[000574] --C--------- * RETURN struct
[000573] --C--------- \--* RET_EXPR struct(inl return expr [000572])
------------ BB81 [494..497) (return), preds={} succs={}
***** BB81
STMT00165 (IL 0x494...0x496)
[000621] ------------ * RETURN struct
[000620] ------------ \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V10 loc8
-------------------------------------------------------------------------------------------------------------------
*************** Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Finishing PHASE Expand patchpoints [no changes]
*************** Starting PHASE Post-import
*************** Finishing PHASE Post-import
*************** Starting PHASE Morph - Init
New BlockSet epoch 2, # of blocks (including unused BB00): 99, bitset array size: 2 (long)
*************** In fgRemoveEmptyBlocks
*************** Finishing PHASE Morph - Init
*************** In fgDebugCheckBBlist
*************** Starting PHASE Morph - Inlining
Expanding INLINE_CANDIDATE in statement STMT00228 in BB02:
STMT00228 (IL 0x00A...0x016)
[000852] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000851] ------------ arg0 \--* LCL_VAR ref V02 loc0
Argument #0: is a local var
[000851] ------------ * LCL_VAR ref V02 loc0
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference :
IL to import:
IL_0000 02 ldarg.0
IL_0001 6f 06 07 00 06 callvirt 0x6000706
IL_0006 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference
Jump targets:
none
New Basic Block BB99 [0098] created.
BB99 [000..007)
Basic block list for 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB99 [0098] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000852] Starting PHASE Pre-import
*************** Inline @[000852] Finishing PHASE Pre-import
*************** Inline @[000852] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000852] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB99 [0098] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB99 [000..007) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000852] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference
impImportBlockPending for BB99
Importing BB99 (PC=000) of 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) callvirt 06000706
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is struct, structSize is 8
[000888] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[000851] ------------ this in rcx \--* LCL_VAR ref V02 loc0
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[000889] --C--------- * RET_EXPR struct(inl return expr [000888])
impFixupStructReturnType: retyping
[000889] --C--------- * RET_EXPR struct(inl return expr [000888])
Inlinee Return expression (after normalization) =>
[000889] --C--------- * RET_EXPR struct(inl return expr [000888])
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB99 [0098] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000852] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB99 [0098] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB99 [000..007) (return), preds={} succs={}
***** BB99
[000888] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[000851] ------------ this in rcx \--* LCL_VAR ref V02 loc0
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000852] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000852] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000852] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000852] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000852] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000852] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000852] -----------
Arguments setup:
Inlinee method body:
STMT00238 (IL 0x00A... ???)
[000888] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[000851] ------------ this in rcx \--* LCL_VAR ref V02 loc0
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000852] is
[000889] --C--------- * RET_EXPR struct(inl return expr [000888])
Successfully inlined Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00238 in BB02:
STMT00238 (IL 0x00A... ???)
[000888] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[000851] ------------ this in rcx \--* LCL_VAR ref V02 loc0
thisArg: is a local var
[000851] ------------ * LCL_VAR ref V02 loc0
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this set to 0x00007FF9001C7A71:
Invoking compiler for the inlinee method Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 69 03 00 04 ldfld 0x4000369
IL_0006 73 e3 00 00 06 newobj 0x60000E3
IL_000b 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this is 0x00007FF9001C7A71.
*************** In fgFindBasicBlocks() for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this
Jump targets:
none
New Basic Block BB100 [0099] created.
BB100 [000..00C)
Basic block list for 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB100 [0099] 1 1 [000..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000888] Starting PHASE Pre-import
*************** Inline @[000888] Finishing PHASE Pre-import
*************** Inline @[000888] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000888] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB100 [0099] 1 1 [000..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB100 [000..00C) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000888] Starting PHASE Importation
*************** In impImport() for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this
impImportBlockPending for BB100
Importing BB100 (PC=000) of 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 04000369
[ 1] 6 (0x006) newobj
lvaGrabTemp returning 64 (V64 tmp38) called for NewObj constructor temp.
[000894] IA---------- * ASG struct (init)
[000892] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000893] ------------ \--* CNS_INT int 0
060000E3
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000897] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[000896] ------------ this in rcx +--* ADDR byref
[000895] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000891] ---XG------- arg1 \--* FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000898] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
impFixupStructReturnType: retyping
[000898] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
Inlinee Return expression (after normalization) =>
[000898] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB100 [0099] 1 1 [000..00C) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000888] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB100 [0099] 1 1 [000..00C) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB100 [000..00C) (return), preds={} succs={}
***** BB100
[000894] IA---------- * ASG struct (init)
[000892] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000893] ------------ \--* CNS_INT int 0
***** BB100
[000897] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[000896] ------------ this in rcx +--* ADDR byref
[000895] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000891] ---XG------- arg1 \--* FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000888] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000888] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000888] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000888] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000888] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000888] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000888] -----------
Arguments setup:
Inlinee method body:
STMT00239 (IL 0x00A... ???)
[000894] IA---------- * ASG struct (init)
[000892] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000893] ------------ \--* CNS_INT int 0
STMT00240 (IL 0x00A... ???)
[000897] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[000896] ------------ this in rcx +--* ADDR byref
[000895] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000891] ---XG------- arg1 \--* FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000888] is
[000898] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
Successfully inlined Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this (12 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00240 in BB02:
STMT00240 (IL 0x00A... ???)
[000897] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[000896] ------------ this in rcx +--* ADDR byref
[000895] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000891] ---XG------- arg1 \--* FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
thisArg: is a constant is byref to a struct local
[000896] ------------ * ADDR byref
[000895] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
Argument #1: has global refs has side effects
[000891] ---XG------- * FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:.ctor(long):this set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:.ctor(long):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d b5 00 00 04 stfld 0x40000B5
IL_0007 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:.ctor(long):this is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:.ctor(long):this
Jump targets:
none
New Basic Block BB101 [0100] created.
BB101 [000..008)
Basic block list for 'Python.Runtime.BorrowedReference:.ctor(long):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB101 [0100] 1 1 [000..008) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000897] Starting PHASE Pre-import
*************** Inline @[000897] Finishing PHASE Pre-import
*************** Inline @[000897] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000897] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB101 [0100] 1 1 [000..008) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB101 [000..008) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000897] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:.ctor(long):this
impImportBlockPending for BB101
Importing BB101 (PC=000) of 'Python.Runtime.BorrowedReference:.ctor(long):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 65 (V65 tmp39) called for Inlining Arg.
[ 2] 2 (0x002) stfld 040000B5
[000904] -A---------- * ASG long
[000903] -------N---- +--* FIELD long pointer
[000900] ------------ | \--* ADDR byref
[000901] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000902] ------------ \--* LCL_VAR long V65 tmp39
[ 0] 7 (0x007) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB101 [0100] 1 1 [000..008) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000897] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB101 [0100] 1 1 [000..008) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB101 [000..008) (return), preds={} succs={}
***** BB101
[000904] -A---------- * ASG long
[000903] -------N---- +--* FIELD long pointer
[000900] ------------ | \--* ADDR byref
[000901] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000902] ------------ \--* LCL_VAR long V65 tmp39
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000897] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000897] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000897] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000897] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000897] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000897] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000897] -----------
Arguments setup:
STMT00242 (IL 0x00A... ???)
[000906] -A-XG------- * ASG long
[000905] D------N---- +--* LCL_VAR long V65 tmp39
[000891] ---XG------- \--* FIELD long rawPtr
[000851] ------------ \--* LCL_VAR ref V02 loc0
Inlinee method body:
STMT00241 (IL 0x00A... ???)
[000904] -A---------- * ASG long
[000903] -------N---- +--* FIELD long pointer
[000900] ------------ | \--* ADDR byref
[000901] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
[000902] ------------ \--* LCL_VAR long V65 tmp39
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Python.Runtime.BorrowedReference:.ctor(long):this (8 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:.ctor(long):this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000853] with [000898]
[000853] --C--------- * RET_EXPR struct(inl return expr [000889])
Inserting the inline return expression
[000898] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V64 tmp38
Expanding INLINE_CANDIDATE in statement STMT00231 in BB02:
STMT00231 (IL ???... ???)
[000860] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000859] ------------ this in rcx +--* ADDR byref
[000858] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000866] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ | \--* ADDR byref
[000864] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
[000867] ------------ arg2 \--* PUTARG_TYPE bool
[000854] ------------ \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000859] ------------ * ADDR byref
[000858] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
Argument #1:
[000866] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ \--* ADDR byref
[000864] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
Argument #2: is a constant
[000854] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000908] ------------ * CAST int <- bool <- int
[000854] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000908] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this set to 0x00007FF9001F4CA9:
Invoking compiler for the inlinee method Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 2d 09 brtrue.s 9 (IL_000c)
IL_0003 0f 01 ldarga.s 0x1
IL_0005 28 e0 00 00 06 call 0x60000E0
IL_000a 2b 07 br.s 7 (IL_0013)
IL_000c 0f 01 ldarga.s 0x1
IL_000e 28 e1 00 00 06 call 0x60000E1
IL_0013 0a stloc.0
IL_0014 03 ldarg.1
IL_0015 28 e1 07 00 06 call 0x60007E1
IL_001a 02 ldarg.0
IL_001b 06 ldloc.0
IL_001c 7d bb 00 00 04 stfld 0x40000BB
IL_0021 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this is 0x00007FF9001F4CA9.
*************** In fgFindBasicBlocks() for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this
weight= 35 : state 5 [ ldarg.2 ]
weight= 25 : state 45 [ brtrue.s ]
weight= 77 : state 16 [ ldarga.s ]
weight= 79 : state 40 [ call ]
weight= 44 : state 43 [ br.s ]
weight= 77 : state 16 [ ldarga.s ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 79 : state 40 [ call ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 12 : state 7 [ ldloc.0 ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
multiplier in methods of struct increased to 4.5.
1 arguments are structs passed by value. Multiplier increased to 6.5.
Inline candidate has 1 foldable branches. Multiplier increased to 10.5.
Inline candidate callsite is warm. Multiplier increased to 12.5.
Callsite has profile data: 0.27907. Multiplier limited to 18.4012.
Caller has 79 locals. Multiplier decreased to 16.9815.
calleeNativeSizeEstimate=589
callsiteNativeSizeEstimate=145
benefit multiplier=16.9815
threshold=2462
Native estimate for function size is within threshold for inlining 58.9 <= 246.2 (multiplier = 16.9815)
Jump targets:
IL_000c
IL_0013
New Basic Block BB102 [0101] created.
BB102 [000..003)
New Basic Block BB103 [0102] created.
BB103 [003..00C)
New Basic Block BB104 [0103] created.
BB104 [00C..013)
New Basic Block BB105 [0104] created.
BB105 [013..022)
Basic block list for 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 100 [000..003)-> BB104 ( cond )
BB103 [0102] 1 100 [003..00C)-> BB105 (always)
BB104 [0103] 1 100 [00C..013)
BB105 [0104] 2 100 [013..022) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000860] Starting PHASE Pre-import
*************** Inline @[000860] Finishing PHASE Pre-import
*************** Inline @[000860] Starting PHASE Profile incorporation
Have dynamic profile data: 2 schema records (schema at 000001FA28D3C710, data at 000001FA28D3C740)
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 other records
Reconstructing block counts from sparse edge instrumentation
... adding known edge BB104 -> BB105: weight 0
... adding known edge BB105 -> BB102: weight 1934
New BlockSet epoch 3, # of blocks (including unused BB00): 106, bitset array size: 2 (long)
... unknown edge BB102 -> BB104
... unknown edge BB102 -> BB103
... unknown edge BB103 -> BB105
Solver: 4 blocks, 4 unknown; 5 edges, 3 unknown, 0 zero (and so ignored)
Pass [1]: 4 unknown blocks, 3 unknown edges
BB105: 1 incoming unknown, 0 outgoing unknown
BB105: all outgoing edge weights known, summming...
BB105 -> BB102 has weight 1934
BB105: all outgoing edge weights known, sum is 1934
BB103 -> BB105: target block weight and all other incoming edge weights known, so weight is 1934
BB104: 1 incoming unknown, 0 outgoing unknown
BB104: all outgoing edge weights known, summming...
BB104 -> BB105 has weight 0
BB104: all outgoing edge weights known, sum is 0
BB102 -> BB104: target block weight and all other incoming edge weights known, so weight is 0
BB103: 1 incoming unknown, 0 outgoing unknown
BB103: all outgoing edge weights known, summming...
BB103 -> BB105 has weight 1934
BB103: all outgoing edge weights known, sum is 1934
BB102 -> BB103: target block weight and all other incoming edge weights known, so weight is 1934
BB102: 0 incoming unknown, 0 outgoing unknown
BB102: all incoming edge weights known, summming...
BB105 -> BB102 has weight 1934
BB102: all incoming edge weights known, sum is 1934
Solver: converged in 1 passes
Computing inlinee profile scale:
call site count 12 callee entry count 1934 scale 0.006204757
Scaling inlinee blocks
*************** Inline @[000860] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003)-> BB104 ( cond ) IBC
BB103 [0102] 1 12 12 [003..00C)-> BB105 (always) IBC
BB104 [0103] 1 0 0 [00C..013) rare IBC
BB105 [0104] 2 12 12 [013..022) (return) IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB102 [000..003) -> BB104 (cond), preds={} succs={BB103,BB104}
------------ BB103 [003..00C) -> BB105 (always), preds={} succs={BB105}
------------ BB104 [00C..013), preds={} succs={BB105}
------------ BB105 [013..022) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000860] Starting PHASE Importation
*************** In impImport() for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this
impImportBlockPending for BB102
Importing BB102 (PC=000) of 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
[ 0] 0 (0x000) ldarg.2
[ 1] 1 (0x001) brtrue.s
Folding operator with constant nodes into a constant:
[000911] ------------ * NE int
[000909] ------------ +--* CNS_INT int 0
[000910] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000911] ------------ * CNS_INT int 0
The block falls through into the next BB103
impImportBlockPending for BB103
Importing BB103 (PC=003) of 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
[ 0] 3 (0x003) ldarga.s 1
lvaGrabTemp returning 66 (V66 tmp40) called for Inlining Arg.
[ 1] 5 (0x005) call 060000E0
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[000914] I-C-G------- * CALL long Python.Runtime.BorrowedReference.DangerousGetAddress (exactContextHnd=0x00007FF9001C5811)
[000913] ------------ this in rcx \--* ADDR byref
[000912] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[ 1] 10 (0x00a) br.s
*************** In impGetSpillTmpBase(BB103)
lvaGrabTemps(1) returning 67..67 (long lifetime temps) called for IL Stack Entries
*************** In fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003) i IBC
BB103 [0102] 1 12 12 [003..00C)-> BB105 (always) IBC
BB104 [0103] 1 0 0 [00C..013) rare IBC
BB105 [0104] 2 12 12 [013..022) (return) IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputeCheapPreds()
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003) i IBC
BB103 [0102] 1 BB102 12 12 [003..00C)-> BB105 (always) IBC
BB104 [0103] 1 0 0 [00C..013) rare IBC
BB105 [0104] 2 BB104,BB103 12 12 [013..022) (return) IBC
-----------------------------------------------------------------------------------------------------------------------------------------
Spilling stack entries into temps
[000917] -AC--------- * ASG long
[000916] D------N---- +--* LCL_VAR long V67 tmp41
[000915] --C--------- \--* RET_EXPR long (inl return expr [000914])
impImportBlockPending for BB105
Importing BB105 (PC=019) of 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
[ 1] 19 (0x013) stloc.0
lvaGrabTemp returning 68 (V68 tmp42) (a long lifetime temp) called for Inline stloc first use temp.
[000921] -A---------- * ASG long
[000920] D------N---- +--* LCL_VAR long V68 tmp42
[000919] ------------ \--* LCL_VAR long V67 tmp41
[ 0] 20 (0x014) ldarg.1
[ 1] 21 (0x015) call 060007E1
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000922] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
resulting tree:
[000925] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000923] I-C-G------- * CALL void Python.Runtime.Runtime.XIncref (exactContextHnd=0x00007FF9001CEA41)
[000925] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[ 0] 26 (0x01a) ldarg.0
[ 1] 27 (0x01b) ldloc.0
[ 2] 28 (0x01c) stfld 040000BB
[000930] -A---------- * ASG long
[000929] -------N---- +--* FIELD long pointer
[000926] ------------ | \--* ADDR byref
[000927] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000928] ------------ \--* LCL_VAR long V68 tmp42
[ 0] 33 (0x021) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd cheap preds weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003) i IBC
BB103 [0102] 1 BB102 12 12 [003..00C)-> BB105 (always) i IBC
BB104 [0103] 1 0 0 [00C..013) rare IBC
BB105 [0104] 2 BB104,BB103 12 12 [013..022) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 24 of 34 bytes of method IL
*************** Inline @[000860] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003) i IBC
BB103 [0102] 1 12 12 [003..00C)-> BB105 (always) i IBC
BB104 [0103] 1 0 0 [00C..013) rare IBC
BB105 [0104] 2 12 12 [013..022) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB102 [000..003), preds={} succs={BB103}
------------ BB103 [003..00C) -> BB105 (always), preds={} succs={BB105}
***** BB103
[000914] I-C-G------- * CALL long Python.Runtime.BorrowedReference.DangerousGetAddress (exactContextHnd=0x00007FF9001C5811)
[000913] ------------ this in rcx \--* ADDR byref
[000912] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB103
[000917] -AC--------- * ASG long
[000916] D------N---- +--* LCL_VAR long V67 tmp41
[000915] --C--------- \--* RET_EXPR long (inl return expr [000914])
------------ BB104 [00C..013), preds={} succs={BB105}
------------ BB105 [013..022) (return), preds={} succs={}
***** BB105
[000921] -A---------- * ASG long
[000920] D------N---- +--* LCL_VAR long V68 tmp42
[000919] ------------ \--* LCL_VAR long V67 tmp41
***** BB105
[000923] I-C-G------- * CALL void Python.Runtime.Runtime.XIncref (exactContextHnd=0x00007FF9001CEA41)
[000925] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB105
[000930] -A---------- * ASG long
[000929] -------N---- +--* FIELD long pointer
[000926] ------------ | \--* ADDR byref
[000927] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000928] ------------ \--* LCL_VAR long V68 tmp42
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000860] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000860] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000860] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000860] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000860] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
BB104 was not imported, marking as removed (0)
Renumbering the basic blocks for fgRemoveEmptyBlocks
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB102 [0101] 1 12 12 [000..003) i IBC
BB103 [0102] 1 12 12 [003..00C)-> BB105 (always) i IBC
BB105 [0104] 2 12 12 [013..022) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
Renumber BB102 to BB106
Renumber BB103 to BB107
Renumber BB105 to BB108
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB106 [0101] 1 12 12 [000..003) i IBC
BB107 [0102] 1 12 12 [003..00C)-> BB108 (always) i IBC
BB108 [0104] 2 12 12 [013..022) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: 1 - Try at BB12..BB12 [070..07A), Finally at BB13..BB15 [07A..086)
1 :: 2 - Try at BB10..BB17 [05C..091), Finally at BB18..BB20 [091..0A6)
2 :: - Try at BB09..BB21 [04F..0B3), Finally at BB22..BB24 [0B3..0BD)
3 :: - Try at BB32..BB32 [150..195), Finally at BB33..BB33 [195..19D)
4 :: 5 - Try at BB67..BB67 [43E..449), Finally at BB68..BB70 [449..455)
5 :: 6 - Try at BB65..BB72 [42A..460), Finally at BB73..BB75 [460..475)
6 :: - Try at BB64..BB76 [41D..480), Finally at BB77..BB79 [480..48C)
New BlockSet epoch 1, # of blocks (including unused BB00): 5, bitset array size: 1 (short)
*************** Inline @[000860] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000860] -----------
Arguments setup:
STMT00248 (IL ???... ???)
[000933] -A---------- * ASG struct (copy)
[000931] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000866] n----------- \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000865] ------------ \--* ADDR byref
[000864] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V61 tmp35
Inlinee method body:New Basic Block BB109 [0105] created.
Convert bbJumpKind of BB108 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB106 [0101] 1 12 12 [000..000) i internal IBC
BB107 [0102] 1 12 12 [000..000)-> BB108 (always) i internal IBC
BB108 [0104] 2 12 12 [000..000) i internal IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB106 [000..000), preds={} succs={BB107}
------------ BB107 [000..000) -> BB108 (always), preds={} succs={BB108}
***** BB107
STMT00243 (IL ???... ???)
[000914] I-C-G------- * CALL long Python.Runtime.BorrowedReference.DangerousGetAddress (exactContextHnd=0x00007FF9001C5811)
[000913] ------------ this in rcx \--* ADDR byref
[000912] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB107
STMT00244 (IL ???... ???)
[000917] -AC--------- * ASG long
[000916] D------N---- +--* LCL_VAR long V67 tmp41
[000915] --C--------- \--* RET_EXPR long (inl return expr [000914])
------------ BB108 [000..000), preds={} succs={BB109}
***** BB108
STMT00245 (IL ???... ???)
[000921] -A---------- * ASG long
[000920] D------N---- +--* LCL_VAR long V68 tmp42
[000919] ------------ \--* LCL_VAR long V67 tmp41
***** BB108
STMT00246 (IL ???... ???)
[000923] I-C-G------- * CALL void Python.Runtime.Runtime.XIncref (exactContextHnd=0x00007FF9001CEA41)
[000925] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB108
STMT00247 (IL ???... ???)
[000930] -A---------- * ASG long
[000929] -------N---- +--* FIELD long pointer
[000926] ------------ | \--* ADDR byref
[000927] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V60 tmp34
[000928] ------------ \--* LCL_VAR long V68 tmp42
-------------------------------------------------------------------------------------------------------------------
Successfully inlined Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this (34 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement STMT00243 in BB107:
STMT00243 (IL ???... ???)
[000914] I-C-G------- * CALL long Python.Runtime.BorrowedReference.DangerousGetAddress (exactContextHnd=0x00007FF9001C5811)
[000913] ------------ this in rcx \--* ADDR byref
[000912] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
thisArg: is a constant is byref to a struct local
[000913] ------------ * ADDR byref
[000912] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:DangerousGetAddress():long:this set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:DangerousGetAddress():long:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 df 00 00 06 call 0x60000DF
IL_0006 2d 07 brtrue.s 7 (IL_000f)
IL_0008 02 ldarg.0
IL_0009 7b b5 00 00 04 ldfld 0x40000B5
IL_000e 2a ret
IL_000f 73 f4 01 00 0a newobj 0xA0001F4
IL_0014 7a throw
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:DangerousGetAddress():long:this is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:DangerousGetAddress():long:this
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 25 : state 45 [ brtrue.s ]
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight= 19 : state 42 [ ret ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
multiplier in methods of struct increased to 3.
1 ldfld or stfld over arguments which are structs. Multiplier increased to 4.
Inline candidate has 1 foldable branches. Multiplier increased to 8.
Inline candidate callsite is warm. Multiplier increased to 10.
Callsite has profile data: 0.27907. Multiplier limited to 14.7209.
Caller has 79 locals. Multiplier decreased to 13.5852.
calleeNativeSizeEstimate=601
callsiteNativeSizeEstimate=85
benefit multiplier=13.5852
threshold=1154
Native estimate for function size is within threshold for inlining 60.1 <= 115.4 (multiplier = 13.5852)
Jump targets:
IL_000f
New Basic Block BB110 [0106] created.
BB110 [000..008)
New Basic Block BB111 [0107] created.
BB111 [008..00F)
New Basic Block BB112 [0108] created.
BB112 [00F..015)
Basic block list for 'Python.Runtime.BorrowedReference:DangerousGetAddress():long:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB110 [0106] 1 100 [000..008)-> BB112 ( cond )
BB111 [0107] 1 100 [008..00F) (return)
BB112 [0108] 1 0 [00F..015) (throw ) rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000914] Starting PHASE Pre-import
*************** Inline @[000914] Finishing PHASE Pre-import
*************** Inline @[000914] Starting PHASE Profile incorporation
Have dynamic profile data: 2 schema records (schema at 000001FA28D3C6C0, data at 000001FA28D3C6F0)
Profile summary: 1 runs, 0 block probes, 2 edge probes, 0 class profiles, 0 other records
Reconstructing block counts from sparse edge instrumentation
... adding known edge BB111 -> BB110: weight 213
... adding known edge BB112 -> BB110: weight 0
New BlockSet epoch 4, # of blocks (including unused BB00): 113, bitset array size: 2 (long)
... unknown edge BB110 -> BB112
... unknown edge BB110 -> BB111
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero (and so ignored)
Pass [1]: 3 unknown blocks, 2 unknown edges
BB112: 1 incoming unknown, 0 outgoing unknown
BB112: all outgoing edge weights known, summming...
BB112 -> BB110 has weight 0
BB112: all outgoing edge weights known, sum is 0
BB110 -> BB112: target block weight and all other incoming edge weights known, so weight is 0
BB111: 1 incoming unknown, 0 outgoing unknown
BB111: all outgoing edge weights known, summming...
BB111 -> BB110 has weight 213
BB111: all outgoing edge weights known, sum is 213
BB110 -> BB111: target block weight and all other incoming edge weights known, so weight is 213
BB110: 0 incoming unknown, 0 outgoing unknown
BB110: all incoming edge weights known, summming...
BB112 -> BB110 has weight 0
BB111 -> BB110 has weight 213
BB110: all incoming edge weights known, sum is 213
Solver: converged in 1 passes
Computing inlinee profile scale:
call site count 12 callee entry count 213 scale 0.05633803
Scaling inlinee blocks
*************** Inline @[000914] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB110 [0106] 1 12 12 [000..008)-> BB112 ( cond ) IBC
BB111 [0107] 1 12 12 [008..00F) (return) IBC
BB112 [0108] 1 0 0 [00F..015) (throw ) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB110 [000..008) -> BB112 (cond), preds={} succs={BB111,BB112}
------------ BB111 [008..00F) (return), preds={} succs={}
------------ BB112 [00F..015) (throw), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000914] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:DangerousGetAddress():long:this
impImportBlockPending for BB110
Importing BB110 (PC=000) of 'Python.Runtime.BorrowedReference:DangerousGetAddress():long:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 060000DF
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000937] I-C-G------- * CALL int Python.Runtime.BorrowedReference.get_IsNull (exactContextHnd=0x00007FF9001C5811)
[000935] ------------ this in rcx \--* ADDR byref
[000936] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[ 1] 6 (0x006) brtrue.s
[000941] --C--------- * JTRUE void
[000940] --C--------- \--* NE int
[000938] --C--------- +--* RET_EXPR int (inl return expr [000937])
[000939] ------------ \--* CNS_INT int 0
impImportBlockPending for BB111
impImportBlockPending for BB112
Importing BB112 (PC=015) of 'Python.Runtime.BorrowedReference:DangerousGetAddress():long:this'
[ 0] 15 (0x00f) newobj
lvaGrabTemp returning 69 (V69 tmp43) called for NewObj constructor temp.
[000945] -A---------- * ASG ref
[000944] D------N---- +--* LCL_VAR ref V69 tmp43
[000943] ------------ \--* ALLOCOBJ ref
[000942] H----------- \--* CNS_INT(h) long 0x7ff90025c4e8 token
Marked V69 as a single def local
lvaSetClass: setting class for V69 to (00007FF90025C4E8) System.NullReferenceException [exact]
0A0001F4
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000947] I-C-G------- * CALL void System.NullReferenceException..ctor (exactContextHnd=0x00007FF90025C4E9)
[000946] ------------ this in rcx \--* LCL_VAR ref V69 tmp43
[ 1] 20 (0x014) throw
[000949] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW
[000948] ------------ arg0 \--* LCL_VAR ref V69 tmp43
Importing BB111 (PC=008) of 'Python.Runtime.BorrowedReference:DangerousGetAddress():long:this'
[ 0] 8 (0x008) ldarg.0
[ 1] 9 (0x009) ldfld 040000B5
[ 1] 14 (0x00e) ret
Inlinee Return expression (before normalization) =>
[000952] ------------ * FIELD long pointer
[000950] ------------ \--* ADDR byref
[000951] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Inlinee Return expression (after normalization) =>
[000952] ------------ * FIELD long pointer
[000950] ------------ \--* ADDR byref
[000951] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB110 [0106] 1 12 12 [000..008)-> BB112 ( cond ) i IBC
BB111 [0107] 1 12 12 [008..00F) (return) i IBC
BB112 [0108] 1 0 0 [00F..015) (throw ) i rare newobj IBC
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 14 of 21 bytes of method IL
*************** Inline @[000914] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB110 [0106] 1 12 12 [000..008)-> BB112 ( cond ) i IBC
BB111 [0107] 1 12 12 [008..00F) (return) i IBC
BB112 [0108] 1 0 0 [00F..015) (throw ) i rare newobj IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB110 [000..008) -> BB112 (cond), preds={} succs={BB111,BB112}
***** BB110
[000937] I-C-G------- * CALL int Python.Runtime.BorrowedReference.get_IsNull (exactContextHnd=0x00007FF9001C5811)
[000935] ------------ this in rcx \--* ADDR byref
[000936] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB110
[000941] --C--------- * JTRUE void
[000940] --C--------- \--* NE int
[000938] --C--------- +--* RET_EXPR int (inl return expr [000937])
[000939] ------------ \--* CNS_INT int 0
------------ BB111 [008..00F) (return), preds={} succs={}
------------ BB112 [00F..015) (throw), preds={} succs={}
***** BB112
[000945] -A---------- * ASG ref
[000944] D------N---- +--* LCL_VAR ref V69 tmp43
[000943] ------------ \--* ALLOCOBJ ref
[000942] H----------- \--* CNS_INT(h) long 0x7ff90025c4e8 token
***** BB112
[000947] I-C-G------- * CALL void System.NullReferenceException..ctor (exactContextHnd=0x00007FF90025C4E9)
[000946] ------------ this in rcx \--* LCL_VAR ref V69 tmp43
***** BB112
[000949] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW
[000948] ------------ arg0 \--* LCL_VAR ref V69 tmp43
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000914] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000914] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000914] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000914] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000914] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000914] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000914] -----------
Arguments setup:
Inlinee method body:New Basic Block BB113 [0109] created.
Convert bbJumpKind of BB111 to BBJ_ALWAYS to bottomBlock BB113
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB110 [0106] 1 12 12 [000..000)-> BB112 ( cond ) i internal IBC
BB111 [0107] 1 12 12 [000..000)-> BB113 (always) i internal IBC
BB112 [0108] 1 0 0 [000..000) (throw ) i internal rare newobj IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB110 [000..000) -> BB112 (cond), preds={} succs={BB111,BB112}
***** BB110
STMT00249 (IL ???... ???)
[000937] I-C-G------- * CALL int Python.Runtime.BorrowedReference.get_IsNull (exactContextHnd=0x00007FF9001C5811)
[000935] ------------ this in rcx \--* ADDR byref
[000936] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
***** BB110
STMT00250 (IL ???... ???)
[000941] --C--------- * JTRUE void
[000940] --C--------- \--* NE int
[000938] --C--------- +--* RET_EXPR int (inl return expr [000937])
[000939] ------------ \--* CNS_INT int 0
------------ BB111 [000..000) -> BB113 (always), preds={} succs={BB113}
------------ BB112 [000..000) (throw), preds={} succs={}
***** BB112
STMT00251 (IL ???... ???)
[000945] -A---------- * ASG ref
[000944] D------N---- +--* LCL_VAR ref V69 tmp43
[000943] ------------ \--* ALLOCOBJ ref
[000942] H----------- \--* CNS_INT(h) long 0x7ff90025c4e8 token
***** BB112
STMT00252 (IL ???... ???)
[000947] I-C-G------- * CALL void System.NullReferenceException..ctor (exactContextHnd=0x00007FF90025C4E9)
[000946] ------------ this in rcx \--* LCL_VAR ref V69 tmp43
***** BB112
STMT00253 (IL ???... ???)
[000949] --CXG------- * CALL help void HELPER.CORINFO_HELP_THROW
[000948] ------------ arg0 \--* LCL_VAR ref V69 tmp43
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000914] is
[000952] ------------ * FIELD long pointer
[000950] ------------ \--* ADDR byref
[000951] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Successfully inlined Python.Runtime.BorrowedReference:DangerousGetAddress():long:this (21 IL bytes) (depth 2) [profitable inline]
--------------------------------------------------------------------------------------------
BB107 becomes empty
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:DangerousGetAddress():long:this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement STMT00249 in BB110:
STMT00249 (IL ???... ???)
[000937] I-C-G------- * CALL int Python.Runtime.BorrowedReference.get_IsNull (exactContextHnd=0x00007FF9001C5811)
[000935] ------------ this in rcx \--* ADDR byref
[000936] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
thisArg: is a constant is byref to a struct local
[000935] ------------ * ADDR byref
[000936] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:get_IsNull():bool:this set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:get_IsNull():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b b5 00 00 04 ldfld 0x40000B5
IL_0006 7e 6e 01 00 0a ldsfld 0xA00016E
IL_000b 28 6f 01 00 0a call 0xA00016F
IL_0010 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:get_IsNull():bool:this is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:get_IsNull():bool:this
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight=159 : state 112 [ ldsfld ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
multiplier in methods of struct increased to 3.
1 ldfld or stfld over arguments which are structs. Multiplier increased to 4.
Inline candidate looks like a wrapper method. Multiplier increased to 5.
Inline candidate is mostly loads and stores. Multiplier increased to 8.
Inline candidate callsite is warm. Multiplier increased to 10.
Callsite has profile data: 0.27907. Multiplier limited to 14.7209.
Caller has 79 locals. Multiplier decreased to 13.5852.
calleeNativeSizeEstimate=288
callsiteNativeSizeEstimate=85
benefit multiplier=13.5852
threshold=1154
Native estimate for function size is within threshold for inlining 28.8 <= 115.4 (multiplier = 13.5852)
Jump targets:
none
New Basic Block BB114 [0110] created.
BB114 [000..011)
Basic block list for 'Python.Runtime.BorrowedReference:get_IsNull():bool:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB114 [0110] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000937] Starting PHASE Pre-import
*************** Inline @[000937] Finishing PHASE Pre-import
*************** Inline @[000937] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000937] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB114 [0110] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB114 [000..011) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000937] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:get_IsNull():bool:this
impImportBlockPending for BB114
Importing BB114 (PC=000) of 'Python.Runtime.BorrowedReference:get_IsNull():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 040000B5
[ 1] 6 (0x006) ldsfld 0A00016E
[ 2] 11 (0x00b) call 0A00016F
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000958] I-C-G------- * CALL int System.IntPtr.op_Equality (exactContextHnd=0x00007FF8FCF59641)
[000956] ------------ arg0 +--* FIELD long pointer
[000954] ------------ | \--* ADDR byref
[000955] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000957] ------------ arg1 \--* CNS_INT long 0
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000959] --C--------- * RET_EXPR int (inl return expr [000958])
Inlinee Return expression (after normalization) =>
[000960] --C--------- * CAST int <- bool <- int
[000959] --C--------- \--* RET_EXPR int (inl return expr [000958])
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB114 [0110] 1 1 [000..011) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000937] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB114 [0110] 1 1 [000..011) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB114 [000..011) (return), preds={} succs={}
***** BB114
[000958] I-C-G------- * CALL int System.IntPtr.op_Equality (exactContextHnd=0x00007FF8FCF59641)
[000956] ------------ arg0 +--* FIELD long pointer
[000954] ------------ | \--* ADDR byref
[000955] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000957] ------------ arg1 \--* CNS_INT long 0
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000937] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000937] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000937] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000937] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000937] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000937] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000937] -----------
Arguments setup:
Inlinee method body:
STMT00254 (IL ???... ???)
[000958] I-C-G------- * CALL int System.IntPtr.op_Equality (exactContextHnd=0x00007FF8FCF59641)
[000956] ------------ arg0 +--* FIELD long pointer
[000954] ------------ | \--* ADDR byref
[000955] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000957] ------------ arg1 \--* CNS_INT long 0
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000937] is
[000960] --C--------- * CAST int <- bool <- int
[000959] --C--------- \--* RET_EXPR int (inl return expr [000958])
Successfully inlined Python.Runtime.BorrowedReference:get_IsNull():bool:this (17 IL bytes) (depth 3) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:get_IsNull():bool:this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement STMT00254 in BB110:
STMT00254 (IL ???... ???)
[000958] I-C-G------- * CALL int System.IntPtr.op_Equality (exactContextHnd=0x00007FF8FCF59641)
[000956] ------------ arg0 +--* FIELD long pointer
[000954] ------------ | \--* ADDR byref
[000955] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
[000957] ------------ arg1 \--* CNS_INT long 0
Argument #0: has caller local ref
[000956] ------------ * FIELD long pointer
[000954] ------------ \--* ADDR byref
[000955] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Argument #1: is a constant
[000957] ------------ * CNS_INT long 0
INLINER: inlineInfo.tokenLookupContextHandle for System.IntPtr:op_Equality(long,long):bool set to 0x00007FF8FCF59641:
Invoking compiler for the inlinee method System.IntPtr:op_Equality(long,long):bool :
IL to import:
IL_0000 0f 00 ldarga.s 0x0
IL_0002 7b de 04 00 04 ldfld 0x40004DE
IL_0007 0f 01 ldarga.s 0x1
IL_0009 7b de 04 00 04 ldfld 0x40004DE
IL_000e fe 01 ceq
IL_0010 2a ret
INLINER impTokenLookupContextHandle for System.IntPtr:op_Equality(long,long):bool is 0x00007FF8FCF59641.
*************** In fgFindBasicBlocks() for System.IntPtr:op_Equality(long,long):bool
weight= 19 : state 197 [ ldarga.s.normed -> ldfld ]
weight= 19 : state 197 [ ldarga.s.normed -> ldfld ]
weight= 20 : state 168 [ ceq ]
weight= 19 : state 42 [ ret ]
multiplier in methods of struct increased to 3.
2 ldfld or stfld over arguments which are structs. Multiplier increased to 4.
Inline candidate is mostly loads and stores. Multiplier increased to 7.
Callsite passes a consant. Multiplier increased to 10.
Inline candidate has 1 binary expressions with constants. Multiplier increased to 10.5.
Inline candidate callsite is warm. Multiplier increased to 12.5.
Callsite has profile data: 0.27907. Multiplier limited to 18.4012.
Caller has 79 locals. Multiplier decreased to 16.9815.
calleeNativeSizeEstimate=77
callsiteNativeSizeEstimate=115
benefit multiplier=16.9815
threshold=1952
Native estimate for function size is within threshold for inlining 7.7 <= 195.2 (multiplier = 16.9815)
Jump targets:
none
New Basic Block BB115 [0111] created.
BB115 [000..011)
Basic block list for 'System.IntPtr:op_Equality(long,long):bool'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB115 [0111] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000958] Starting PHASE Pre-import
*************** Inline @[000958] Finishing PHASE Pre-import
*************** Inline @[000958] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000958] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB115 [0111] 1 1 [000..011) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB115 [000..011) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000958] Starting PHASE Importation
*************** In impImport() for System.IntPtr:op_Equality(long,long):bool
impImportBlockPending for BB115
Importing BB115 (PC=000) of 'System.IntPtr:op_Equality(long,long):bool'
[ 0] 0 (0x000) ldarga.s 0
lvaGrabTemp returning 70 (V70 tmp44) called for Inlining Arg.
[ 1] 2 (0x002) ldfld 040004DE
[ 1] 7 (0x007) ldarga.s 1
lvaGrabTemp returning 71 (V71 tmp45) called for Inlining Arg.
[ 2] 9 (0x009) ldfld 040004DE
[ 2] 14 (0x00e) ceq
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000968] ----G------- * EQ int
[000964] ----G------- +--* FIELD long _value
[000963] ------------ | \--* ADDR byref
[000962] -------N---- | \--* LCL_VAR long V70 tmp44
[000967] ----G------- \--* FIELD long _value
[000966] ------------ \--* ADDR byref
[000965] -------N---- \--* LCL_VAR long V71 tmp45
Inlinee Return expression (after normalization) =>
[000968] ----G------- * EQ int
[000964] ----G------- +--* FIELD long _value
[000963] ------------ | \--* ADDR byref
[000962] -------N---- | \--* LCL_VAR long V70 tmp44
[000967] ----G------- \--* FIELD long _value
[000966] ------------ \--* ADDR byref
[000965] -------N---- \--* LCL_VAR long V71 tmp45
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB115 [0111] 1 1 [000..011) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 0 of 17 bytes of method IL
*************** Inline @[000958] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB115 [0111] 1 1 [000..011) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB115 [000..011) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000958] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000958] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000958] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000958] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000958] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000958] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000958] -----------
Arguments setup:
STMT00255 (IL ???... ???)
[000970] -A---------- * ASG long
[000969] D------N---- +--* LCL_VAR long V70 tmp44
[000956] ------------ \--* FIELD long pointer
[000954] ------------ \--* ADDR byref
[000955] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
STMT00256 (IL ???... ???)
[000972] -A---------- * ASG long
[000971] D------N---- +--* LCL_VAR long V71 tmp45
[000957] ------------ \--* CNS_INT long 0
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000958] is
[000968] ----G------- * EQ int
[000964] ----G------- +--* FIELD long _value
[000963] ------------ | \--* ADDR byref
[000962] -------N---- | \--* LCL_VAR long V70 tmp44
[000967] ----G------- \--* FIELD long _value
[000966] ------------ \--* ADDR byref
[000965] -------N---- \--* LCL_VAR long V71 tmp45
Successfully inlined System.IntPtr:op_Equality(long,long):bool (17 IL bytes) (depth 4) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.IntPtr:op_Equality(long,long):bool'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Replacing the return expression placeholder [000938] with [000960]
[000938] --C--------- * RET_EXPR int (inl return expr [000960])
Inserting the inline return expression
[000960] --C--------- * CAST int <- bool <- int
[000959] --C--------- \--* RET_EXPR int (inl return expr [000968])
Replacing the return expression placeholder [000959] with [000968]
[000959] --C--------- * RET_EXPR int (inl return expr [000968])
Inserting the inline return expression
[000968] ----G------- * EQ int
[000964] ----G------- +--* FIELD long _value
[000963] ------------ | \--* ADDR byref
[000962] -------N---- | \--* LCL_VAR long V70 tmp44
[000967] ----G------- \--* FIELD long _value
[000966] ------------ \--* ADDR byref
[000965] -------N---- \--* LCL_VAR long V71 tmp45
Expanding INLINE_CANDIDATE in statement STMT00252 in BB112:
STMT00252 (IL ???... ???)
[000947] I-C-G------- * CALL void System.NullReferenceException..ctor (exactContextHnd=0x00007FF90025C4E9)
[000946] ------------ this in rcx \--* LCL_VAR ref V69 tmp43
thisArg: is a local var
[000946] ------------ * LCL_VAR ref V69 tmp43
INLINER: inlineInfo.tokenLookupContextHandle for System.NullReferenceException:.ctor():this set to 0x00007FF90025C4E9:
Invoking compiler for the inlinee method System.NullReferenceException:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 da 18 00 06 call 0x60018DA
IL_0006 28 b8 1c 00 06 call 0x6001CB8
IL_000b 02 ldarg.0
IL_000c 20 03 40 00 80 ldc.i4 0x80004003
IL_0011 28 3f 04 00 06 call 0x600043F
IL_0016 2a ret
INLINER impTokenLookupContextHandle for System.NullReferenceException:.ctor():this is 0x00007FF90025C4E9.
*************** In fgFindBasicBlocks() for System.NullReferenceException:.ctor():this
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 79 : state 40 [ call ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 38 : state 33 [ ldc.i4 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
Inline candidate looks like a wrapper method. Multiplier increased to 2.5.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 79 locals. Multiplier decreased to 0.359912.
Callsite is in a no-return region. Multiplier limited to 1.
calleeNativeSizeEstimate=314
callsiteNativeSizeEstimate=85
benefit multiplier=1
threshold=85
Native estimate for function size exceeds threshold for inlining 31.4 > 8.5 (multiplier = 1)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.NullReferenceException:.ctor():this'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Replacing the return expression placeholder [000915] with [000952]
[000915] --C--------- * RET_EXPR long (inl return expr [000952])
Inserting the inline return expression
[000952] ------------ * FIELD long pointer
[000950] ------------ \--* ADDR byref
[000951] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Expanding INLINE_CANDIDATE in statement STMT00246 in BB108:
STMT00246 (IL ???... ???)
[000923] I-C-G------- * CALL void Python.Runtime.Runtime.XIncref (exactContextHnd=0x00007FF9001CEA41)
[000925] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Argument #0: has caller local ref
[000925] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference) set to 0x00007FF9001CEA41:
Invoking compiler for the inlinee method Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 e6 07 00 06 call 0x60007E6
IL_0006 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference) is 0x00007FF9001CEA41.
*************** In fgFindBasicBlocks() for Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference)
Jump targets:
none
New Basic Block BB116 [0112] created.
BB116 [000..007)
Basic block list for 'Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB116 [0112] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000923] Starting PHASE Pre-import
*************** Inline @[000923] Finishing PHASE Pre-import
*************** Inline @[000923] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000923] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB116 [0112] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB116 [000..007) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000923] Starting PHASE Importation
*************** In impImport() for Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference)
impImportBlockPending for BB116
Importing BB116 (PC=000) of 'Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference)'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 72 (V72 tmp46) called for Inlining Arg.
[ 1] 1 (0x001) call 060007E6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000974] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
resulting tree:
[000977] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
[000975] I-C-G------- * CALL void Python.Runtime.Runtime.Py_IncRef (exactContextHnd=0x00007FF9001CEA41)
[000977] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
[ 0] 6 (0x006) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB116 [0112] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000923] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB116 [0112] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB116 [000..007) (return), preds={} succs={}
***** BB116
[000975] I-C-G------- * CALL void Python.Runtime.Runtime.Py_IncRef (exactContextHnd=0x00007FF9001CEA41)
[000977] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000923] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000923] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000923] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000923] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000923] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000923] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000923] -----------
Arguments setup:
STMT00258 (IL ???... ???)
[000980] -A---------- * ASG struct (copy)
[000978] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
[000925] n----------- \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000924] ------------ \--* ADDR byref
[000922] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V66 tmp40
Inlinee method body:
STMT00257 (IL ???... ???)
[000975] I-C-G------- * CALL void Python.Runtime.Runtime.Py_IncRef (exactContextHnd=0x00007FF9001CEA41)
[000977] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference) (7 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.Runtime:XIncref(Python.Runtime.BorrowedReference)'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00257 in BB108:
STMT00257 (IL ???... ???)
[000975] I-C-G------- * CALL void Python.Runtime.Runtime.Py_IncRef (exactContextHnd=0x00007FF9001CEA41)
[000977] n----------- arg0 \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
Argument #0:
[000977] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference) set to 0x00007FF9001CEA41:
Invoking compiler for the inlinee method Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference) :
IL to import:
IL_0000 28 b8 0c 00 06 call 0x6000CB8
IL_0005 0a stloc.0
IL_0006 02 ldarg.0
IL_0007 06 ldloc.0
IL_0008 29 d6 00 00 11 calli 0x110000D6
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference) is 0x00007FF9001CEA41.
*************** In fgFindBasicBlocks() for Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)
Jump targets:
none
New Basic Block BB117 [0113] created.
BB117 [000..00E)
Basic block list for 'Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB117 [0113] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000975] Starting PHASE Pre-import
*************** Inline @[000975] Finishing PHASE Pre-import
*************** Inline @[000975] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000975] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB117 [0113] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB117 [000..00E) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000975] Starting PHASE Importation
*************** In impImport() for Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)
impImportBlockPending for BB117
Importing BB117 (PC=000) of 'Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)'
[ 0] 0 (0x000) call 06000CB8
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[000982] I-C-G------- * CALL long Delegates.get_Py_IncRef (exactContextHnd=0x00007FF9002264F1)
[ 1] 5 (0x005) stloc.0
lvaGrabTemp returning 73 (V73 tmp47) (a long lifetime temp) called for Inline stloc first use temp.
[000985] -AC--------- * ASG long
[000984] D------N---- +--* LCL_VAR long V73 tmp47
[000983] --C--------- \--* RET_EXPR long (inl return expr [000982])
[ 0] 6 (0x006) ldarg.0
lvaGrabTemp returning 74 (V74 tmp48) called for Inlining Arg.
[ 1] 7 (0x007) ldloc.0
[ 2] 8 (0x008) calli 110000D6
In Compiler::impImportCall: opcode is calli, kind=0, callRetType is void, structSize is 0
Inline a CALLI PINVOKE call from method Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)Calling impNormStructVal on:
[000986] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
resulting tree:
[000990] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000989] ------------ \--* ADDR byref
[000986] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed' for 'Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)' calling 'n/a'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed'
[000988] --CXG------- * CALL ind unman popargs void
[000990] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000989] ------------ | \--* ADDR byref
[000986] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
[000987] ------------ calli tgt \--* LCL_VAR long V73 tmp47
[ 0] 13 (0x00d) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB117 [0113] 1 1 [000..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000975] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB117 [0113] 1 1 [000..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB117 [000..00E) (return), preds={} succs={}
***** BB117
[000982] I-C-G------- * CALL long Delegates.get_Py_IncRef (exactContextHnd=0x00007FF9002264F1)
***** BB117
[000985] -AC--------- * ASG long
[000984] D------N---- +--* LCL_VAR long V73 tmp47
[000983] --C--------- \--* RET_EXPR long (inl return expr [000982])
***** BB117
[000988] --CXG------- * CALL ind unman popargs void
[000990] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000989] ------------ | \--* ADDR byref
[000986] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
[000987] ------------ calli tgt \--* LCL_VAR long V73 tmp47
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000975] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000975] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000975] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000975] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000975] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000975] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000975] -----------
Arguments setup:
STMT00262 (IL ???... ???)
[000993] -A---------- * ASG struct (copy)
[000991] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
[000977] n----------- \--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000976] ------------ \--* ADDR byref
[000974] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V72 tmp46
Inlinee method body:
STMT00259 (IL ???... ???)
[000982] I-C-G------- * CALL long Delegates.get_Py_IncRef (exactContextHnd=0x00007FF9002264F1)
STMT00260 (IL ???... ???)
[000985] -AC--------- * ASG long
[000984] D------N---- +--* LCL_VAR long V73 tmp47
[000983] --C--------- \--* RET_EXPR long (inl return expr [000982])
STMT00261 (IL ???... ???)
[000988] --CXG------- * CALL ind unman popargs void
[000990] n----------- arg0 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000989] ------------ | \--* ADDR byref
[000986] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V74 tmp48
[000987] ------------ calli tgt \--* LCL_VAR long V73 tmp47
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference) (14 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.Runtime:Py_IncRef(Python.Runtime.BorrowedReference)'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00259 in BB108:
STMT00259 (IL ???... ???)
[000982] I-C-G------- * CALL long Delegates.get_Py_IncRef (exactContextHnd=0x00007FF9002264F1)
INLINER: inlineInfo.tokenLookupContextHandle for Delegates:get_Py_IncRef():long set to 0x00007FF9002264F1:
Invoking compiler for the inlinee method Delegates:get_Py_IncRef():long :
IL to import:
IL_0000 7e 2b 05 00 04 ldsfld 0x400052B
IL_0005 2a ret
INLINER impTokenLookupContextHandle for Delegates:get_Py_IncRef():long is 0x00007FF9002264F1.
*************** In fgFindBasicBlocks() for Delegates:get_Py_IncRef():long
Jump targets:
none
New Basic Block BB118 [0114] created.
BB118 [000..006)
Basic block list for 'Delegates:get_Py_IncRef():long'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB118 [0114] 1 1 [000..006) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000982] Starting PHASE Pre-import
*************** Inline @[000982] Finishing PHASE Pre-import
*************** Inline @[000982] 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 12 callee entry count 100 scale 0.12
Scaling inlinee blocks
*************** Inline @[000982] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB118 [0114] 1 1 [000..006) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB118 [000..006) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000982] Starting PHASE Importation
*************** In impImport() for Delegates:get_Py_IncRef():long
impImportBlockPending for BB118
Importing BB118 (PC=000) of 'Delegates:get_Py_IncRef():long'
[ 0] 0 (0x000) ldsfld 0400052B
[ 1] 5 (0x005) ret
Inlinee Return expression (before normalization) =>
[000995] ------------ * CNS_INT long 0x7ff990128b9c
Inlinee Return expression (after normalization) =>
[000995] ------------ * CNS_INT long 0x7ff990128b9c
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB118 [0114] 1 1 [000..006) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 0 of 6 bytes of method IL
*************** Inline @[000982] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB118 [0114] 1 1 [000..006) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB118 [000..006) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000982] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000982] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000982] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000982] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000982] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000982] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000982] -----------
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000982] is
[000995] ------------ * CNS_INT long 0x7ff990128b9c
Successfully inlined Delegates:get_Py_IncRef():long (6 IL bytes) (depth 4) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Delegates:get_Py_IncRef():long'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000983] with [000995]
[000983] --C--------- * RET_EXPR long (inl return expr [000995])
Inserting the inline return expression
[000995] ------------ * CNS_INT long 0x7ff990128b9c
Expanding INLINE_CANDIDATE in statement STMT00223 in BB04:
STMT00223 (IL 0x01A...0x025)
[000833] I-C-G------- * CALL struct Python.Runtime.Runtime.get_PyNone (exactContextHnd=0x00007FF9001CEA41)
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference set to 0x00007FF9001CEA41:
Invoking compiler for the inlinee method Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference :
IL to import:
IL_0000 7e e8 03 00 04 ldsfld 0x40003E8
IL_0005 28 eb 00 00 06 call 0x60000EB
IL_000a 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference is 0x00007FF9001CEA41.
*************** In fgFindBasicBlocks() for Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference
Jump targets:
none
New Basic Block BB119 [0115] created.
BB119 [000..00B)
Basic block list for 'Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB119 [0115] 1 1 [000..00B) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000833] Starting PHASE Pre-import
*************** Inline @[000833] Finishing PHASE Pre-import
*************** Inline @[000833] 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 @[000833] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB119 [0115] 1 0 [000..00B) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB119 [000..00B) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000833] Starting PHASE Importation
*************** In impImport() for Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference
impImportBlockPending for BB119
Importing BB119 (PC=000) of 'Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference'
[ 0] 0 (0x000) ldsfld 040003E8
[ 1] 5 (0x005) call 060000EB
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 8
[000998] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000997] ----G------- arg0 \--* FIELD ref _PyNone
[ 1] 10 (0x00a) ret
Inlinee Return expression (before normalization) =>
[000999] --C--------- * RET_EXPR struct(inl return expr [000998])
impFixupStructReturnType: retyping
[000999] --C--------- * RET_EXPR struct(inl return expr [000998])
Inlinee Return expression (after normalization) =>
[000999] --C--------- * RET_EXPR struct(inl return expr [000998])
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB119 [0115] 1 0 [000..00B) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000833] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB119 [0115] 1 0 [000..00B) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB119 [000..00B) (return), preds={} succs={}
***** BB119
[000998] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000997] ----G------- arg0 \--* FIELD ref _PyNone
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000833] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000833] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000833] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000833] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000833] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000833] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000833] -----------
Inlinee method body:
STMT00263 (IL 0x01A... ???)
[000998] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000997] ----G------- arg0 \--* FIELD ref _PyNone
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000833] is
[000999] --C--------- * RET_EXPR struct(inl return expr [000998])
Successfully inlined Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference (11 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.Runtime:get_PyNone():Python.Runtime.BorrowedReference'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00263 in BB04:
STMT00263 (IL 0x01A... ???)
[000998] I-C-G------- * CALL struct Python.Runtime.BorrowedReference.op_Implicit (exactContextHnd=0x00007FF9001C5811)
[000997] ----G------- arg0 \--* FIELD ref _PyNone
Querying runtime about current class of field Python.Runtime.Runtime._PyNone (declared as Python.Runtime.PyObject)
Field's current class not available
Argument #0: has global refs
[000997] ----G------- * FIELD ref _PyNone
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference :
IL to import:
IL_0000 02 ldarg.0
IL_0001 6f 06 07 00 06 callvirt 0x6000706
IL_0006 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference
Jump targets:
none
New Basic Block BB120 [0116] created.
BB120 [000..007)
Basic block list for 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB120 [0116] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000998] Starting PHASE Pre-import
*************** Inline @[000998] Finishing PHASE Pre-import
*************** Inline @[000998] 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 @[000998] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB120 [0116] 1 0 [000..007) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB120 [000..007) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000998] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference
impImportBlockPending for BB120
Importing BB120 (PC=000) of 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 75 (V75 tmp49) called for Inlining Arg.
Marked V75 as a single def temp
Querying runtime about current class of field Python.Runtime.Runtime._PyNone (declared as Python.Runtime.PyObject)
Field's current class not available
lvaSetClass: setting class for V75 to (00007FF9001C7A70) Python.Runtime.PyObject
[ 1] 1 (0x001) callvirt 06000706
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is struct, structSize is 8
[001002] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[001001] ------------ this in rcx \--* LCL_VAR ref V75 tmp49
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[001003] --C--------- * RET_EXPR struct(inl return expr [001002])
impFixupStructReturnType: retyping
[001003] --C--------- * RET_EXPR struct(inl return expr [001002])
Inlinee Return expression (after normalization) =>
[001003] --C--------- * RET_EXPR struct(inl return expr [001002])
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB120 [0116] 1 0 [000..007) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000998] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB120 [0116] 1 0 [000..007) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB120 [000..007) (return), preds={} succs={}
***** BB120
[001002] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[001001] ------------ this in rcx \--* LCL_VAR ref V75 tmp49
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000998] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000998] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000998] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000998] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000998] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000998] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000998] -----------
Arguments setup:
STMT00265 (IL 0x01A... ???)
[001005] -A--G------- * ASG ref
[001004] D------N---- +--* LCL_VAR ref V75 tmp49
[000997] ----G------- \--* FIELD ref _PyNone
Inlinee method body:
STMT00264 (IL 0x01A... ???)
[001002] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[001001] ------------ this in rcx \--* LCL_VAR ref V75 tmp49
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000998] is
[001003] --C--------- * RET_EXPR struct(inl return expr [001002])
Successfully inlined Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference (7 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:op_Implicit(Python.Runtime.PyObject):Python.Runtime.BorrowedReference'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Querying runtime about current class of field Python.Runtime.Runtime._PyNone (declared as Python.Runtime.PyObject)
Field's current class not available
Expanding INLINE_CANDIDATE in statement STMT00264 in BB04:
STMT00264 (IL 0x01A... ???)
[001002] I-C-G------- * CALL nullcheck struct Python.Runtime.PyObject.get_Reference (exactContextHnd=0x00007FF9001C7A71)
[001001] ------------ this in rcx \--* LCL_VAR ref V75 tmp49
thisArg: is a local var
[001001] ------------ * LCL_VAR ref V75 tmp49
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this set to 0x00007FF9001C7A71:
Invoking compiler for the inlinee method Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 69 03 00 04 ldfld 0x4000369
IL_0006 73 e3 00 00 06 newobj 0x60000E3
IL_000b 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this is 0x00007FF9001C7A71.
*************** In fgFindBasicBlocks() for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this
Jump targets:
none
New Basic Block BB121 [0117] created.
BB121 [000..00C)
Basic block list for 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB121 [0117] 1 1 [000..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[001002] Starting PHASE Pre-import
*************** Inline @[001002] Finishing PHASE Pre-import
*************** Inline @[001002] 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 @[001002] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB121 [0117] 1 0 [000..00C) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB121 [000..00C) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001002] Starting PHASE Importation
*************** In impImport() for Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this
impImportBlockPending for BB121
Importing BB121 (PC=000) of 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 04000369
[ 1] 6 (0x006) newobj
lvaGrabTemp returning 76 (V76 tmp50) called for NewObj constructor temp.
[001010] IA---------- * ASG struct (init)
[001008] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001009] ------------ \--* CNS_INT int 0
060000E3
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[001013] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[001012] ------------ this in rcx +--* ADDR byref
[001011] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001007] ---XG------- arg1 \--* FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[001014] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
impFixupStructReturnType: retyping
[001014] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
Inlinee Return expression (after normalization) =>
[001014] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB121 [0117] 1 0 [000..00C) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[001002] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB121 [0117] 1 0 [000..00C) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB121 [000..00C) (return), preds={} succs={}
***** BB121
[001010] IA---------- * ASG struct (init)
[001008] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001009] ------------ \--* CNS_INT int 0
***** BB121
[001013] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[001012] ------------ this in rcx +--* ADDR byref
[001011] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001007] ---XG------- arg1 \--* FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001002] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[001002] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[001002] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[001002] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[001002] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[001002] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [001002] -----------
Arguments setup:
Inlinee method body:
STMT00266 (IL 0x01A... ???)
[001010] IA---------- * ASG struct (init)
[001008] D------N---- +--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001009] ------------ \--* CNS_INT int 0
STMT00267 (IL 0x01A... ???)
[001013] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[001012] ------------ this in rcx +--* ADDR byref
[001011] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001007] ---XG------- arg1 \--* FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [001002] is
[001014] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
Successfully inlined Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this (12 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyObject:get_Reference():Python.Runtime.BorrowedReference:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00267 in BB04:
STMT00267 (IL 0x01A... ???)
[001013] I-CXG------- * CALL void Python.Runtime.BorrowedReference..ctor (exactContextHnd=0x00007FF9001C5811)
[001012] ------------ this in rcx +--* ADDR byref
[001011] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001007] ---XG------- arg1 \--* FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
thisArg: is a constant is byref to a struct local
[001012] ------------ * ADDR byref
[001011] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
Argument #1: has global refs has side effects
[001007] ---XG------- * FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.BorrowedReference:.ctor(long):this set to 0x00007FF9001C5811:
Invoking compiler for the inlinee method Python.Runtime.BorrowedReference:.ctor(long):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d b5 00 00 04 stfld 0x40000B5
IL_0007 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.BorrowedReference:.ctor(long):this is 0x00007FF9001C5811.
*************** In fgFindBasicBlocks() for Python.Runtime.BorrowedReference:.ctor(long):this
Jump targets:
none
New Basic Block BB122 [0118] created.
BB122 [000..008)
Basic block list for 'Python.Runtime.BorrowedReference:.ctor(long):this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB122 [0118] 1 1 [000..008) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[001013] Starting PHASE Pre-import
*************** Inline @[001013] Finishing PHASE Pre-import
*************** Inline @[001013] 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 @[001013] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB122 [0118] 1 0 [000..008) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB122 [000..008) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001013] Starting PHASE Importation
*************** In impImport() for Python.Runtime.BorrowedReference:.ctor(long):this
impImportBlockPending for BB122
Importing BB122 (PC=000) of 'Python.Runtime.BorrowedReference:.ctor(long):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 77 (V77 tmp51) called for Inlining Arg.
[ 2] 2 (0x002) stfld 040000B5
[001020] -A---------- * ASG long
[001019] -------N---- +--* FIELD long pointer
[001016] ------------ | \--* ADDR byref
[001017] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001018] ------------ \--* LCL_VAR long V77 tmp51
[ 0] 7 (0x007) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB122 [0118] 1 0 [000..008) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[001013] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB122 [0118] 1 0 [000..008) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB122 [000..008) (return), preds={} succs={}
***** BB122
[001020] -A---------- * ASG long
[001019] -------N---- +--* FIELD long pointer
[001016] ------------ | \--* ADDR byref
[001017] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001018] ------------ \--* LCL_VAR long V77 tmp51
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001013] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[001013] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[001013] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[001013] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[001013] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[001013] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [001013] -----------
Arguments setup:
STMT00269 (IL 0x01A... ???)
[001022] -A-XG------- * ASG long
[001021] D------N---- +--* LCL_VAR long V77 tmp51
[001007] ---XG------- \--* FIELD long rawPtr
[001001] ------------ \--* LCL_VAR ref V75 tmp49
Inlinee method body:
STMT00268 (IL 0x01A... ???)
[001020] -A---------- * ASG long
[001019] -------N---- +--* FIELD long pointer
[001016] ------------ | \--* ADDR byref
[001017] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
[001018] ------------ \--* LCL_VAR long V77 tmp51
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Python.Runtime.BorrowedReference:.ctor(long):this (8 IL bytes) (depth 4) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.BorrowedReference:.ctor(long):this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000834] with [001014]
[000834] --C--------- * RET_EXPR struct(inl return expr [000999])
Inserting the inline return expression
[001014] ------------ * LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V76 tmp50
Expanding INLINE_CANDIDATE in statement STMT00226 in BB04:
STMT00226 (IL ???... ???)
[000841] I-C-G------- * CALL void Python.Runtime.NewReference..ctor (exactContextHnd=0x00007FF9001F4CA9)
[000840] ------------ this in rcx +--* ADDR byref
[000839] -------N---- | \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
[000847] n----------- arg1 +--* OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ | \--* ADDR byref
[000845] -------N---- | \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
[000848] ------------ arg2 \--* PUTARG_TYPE bool
[000835] ------------ \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000840] ------------ * ADDR byref
[000839] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V58 tmp32
Argument #1:
[000847] n----------- * OBJ struct<Python.Runtime.BorrowedReference, 8>
[000846] ------------ \--* ADDR byref
[000845] -------N---- \--* LCL_VAR struct<Python.Runtime.BorrowedReference, 8> V59 tmp33
Argument #2: is a constant
[000835] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[001024] ------------ * CAST int <- bool <- int
[000835] ------------ \--* CNS_INT int 0
Bashed to int constant:
[001024] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this set to 0x00007FF9001F4CA9:
Invoking compiler for the inlinee method Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this :
IL to import:
IL_0000 04 ldarg.2
IL_0001 2d 09 brtrue.s 9 (IL_000c)
IL_0003 0f 01 ldarga.s 0x1
IL_0005 28 e0 00 00 06 call 0x60000E0
IL_000a 2b 07 br.s 7 (IL_0013)
IL_000c 0f 01 ldarga.s 0x1
IL_000e 28 e1 00 00 06 call 0x60000E1
IL_0013 0a stloc.0
IL_0014 03 ldarg.1
IL_0015 28 e1 07 00 06 call 0x60007E1
IL_001a 02 ldarg.0
IL_001b 06 ldloc.0
IL_001c 7d bb 00 00 04 stfld 0x40000BB
IL_0021 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this is 0x00007FF9001F4CA9.
*************** In fgFindBasicBlocks() for Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this
weight= 35 : state 5 [ ldarg.2 ]
weight= 25 : state 45 [ brtrue.s ]
weight= 77 : state 16 [ ldarga.s ]
weight= 79 : state 40 [ call ]
weight= 44 : state 43 [ br.s ]
weight= 77 : state 16 [ ldarga.s ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 79 : state 40 [ call ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 12 : state 7 [ ldloc.0 ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
multiplier in methods of struct increased to 4.5.
1 arguments are structs passed by value. Multiplier increased to 6.5.
Inline candidate has 1 foldable branches. Multiplier increased to 10.5.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 79 locals. Multiplier decreased to 0.359912.
calleeNativeSizeEstimate=589
callsiteNativeSizeEstimate=145
benefit multiplier=0.359912
threshold=52
Native estimate for function size exceeds threshold for inlining 58.9 > 5.2 (multiplier = 0.359912)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.NewReference:.ctor(Python.Runtime.BorrowedReference,bool):this'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement STMT00235 in BB97:
STMT00235 (IL ???... ???)
[000879] I-C-G------- * CALL nullcheck int System.RuntimeType.get_IsGenericType (exactContextHnd=0x00007FF8FCE2EBE8)
[000881] ------------ this in rcx \--* LCL_VAR ref V63 tmp37
thisArg: is a local var
[000881] ------------ * LCL_VAR ref V63 tmp37
INLINER: inlineInfo.tokenLookupContextHandle for System.RuntimeType:get_IsGenericType():bool:this set to 0x00007FF8FCE2EBE8:
Invoking compiler for the inlinee method System.RuntimeType:get_IsGenericType():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 ba 05 00 06 call 0x60005BA
IL_0006 2a ret
INLINER impTokenLookupContextHandle for System.RuntimeType:get_IsGenericType():bool:this is 0x00007FF8FCE2EBE8.
*************** In fgFindBasicBlocks() for System.RuntimeType:get_IsGenericType():bool:this
Jump targets:
none
New Basic Block BB123 [0119] created.
BB123 [000..007)
Basic block list for 'System.RuntimeType:get_IsGenericType():bool:this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB123 [0119] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000879] Starting PHASE Pre-import
*************** Inline @[000879] Finishing PHASE Pre-import
*************** Inline @[000879] 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 31 callee entry count 100 scale 0.31
Scaling inlinee blocks
*************** Inline @[000879] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB123 [0119] 1 1 [000..007) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB123 [000..007) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000879] Starting PHASE Importation
*************** In impImport() for System.RuntimeType:get_IsGenericType():bool:this
impImportBlockPending for BB123
Importing BB123 (PC=000) of 'System.RuntimeType:get_IsGenericType():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 060005BA
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.RuntimeType:get_IsGenericType():bool:this' calling 'System.RuntimeTypeHandle:HasInstantiation(System.RuntimeType):bool'
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result'
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[001025] --C-G------- * CALL int System.RuntimeTypeHandle.HasInstantiation
[000881] ------------ arg0 \--* LCL_VAR ref V63 tmp37
Inlinee Return expression (after normalization) =>
[001025] --C-G------- * CALL int System.RuntimeTypeHandle.HasInstantiation
[000881] ------------ arg0 \--* LCL_VAR ref V63 tmp37
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB123 [0119] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 0 of 7 bytes of method IL
*************** Inline @[000879] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB123 [0119] 1 1 [000..007) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB123 [000..007) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000879] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000879] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000879] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000879] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000879] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000879] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000879] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000879] is
[001025] --C-G------- * CALL int System.RuntimeTypeHandle.HasInstantiation
[000881] ------------ arg0 \--* LCL_VAR ref V63 tmp37
Successfully inlined System.RuntimeType:get_IsGenericType():bool:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.RuntimeType:get_IsGenericType():bool:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000882] with [001025]
[000882] --C--------- * RET_EXPR int (inl return expr [001025])
Inserting the inline return expression
[001025] --C-G------- * CALL int System.RuntimeTypeHandle.HasInstantiation
[000881] ------------ arg0 \--* LCL_VAR ref V63 tmp37
**** Late devirt opportunity
[000018] --C-G------- * CALLV vt-ind int System.Type.get_IsGenericType
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is System.Type (attrib 20000400)
base method is System.Type::get_IsGenericType
devirt to System.Type::get_IsGenericType -- inexact or not final
[000018] --C-G------- * CALLV vt-ind int System.Type.get_IsGenericType
[000017] ------------ this in rcx \--* LCL_VAR ref V01 arg1
Class not final or exact, and method not final
No guarded devirt during late devirtualization
Expanding INLINE_CANDIDATE in statement STMT00203 in BB08:
STMT00203 (IL ???... ???)
[000774] I-C-G------- * CALL void Python.Runtime.PyList..ctor (exactContextHnd=0x00007FF9014B26A1)
[000773] ------------ this in rcx \--* LCL_VAR ref V57 tmp31
thisArg: is a local var
[000773] ------------ * LCL_VAR ref V57 tmp31
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyList:.ctor():this set to 0x00007FF9014B26A1:
Invoking compiler for the inlinee method Python.Runtime.PyList:.ctor():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 16 ldc.i4.0
IL_0002 d3 conv.i
IL_0003 28 a8 08 00 06 call 0x60008A8
IL_0008 0a stloc.0
IL_0009 12 00 ldloca.s 0x0
IL_000b 28 0d 01 00 06 call 0x600010D
IL_0010 0b stloc.1
IL_0011 12 01 ldloca.s 0x1
IL_0013 28 77 07 00 06 call 0x6000777
IL_0018 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyList:.ctor():this is 0x00007FF9014B26A1.
*************** In fgFindBasicBlocks() for Python.Runtime.PyList:.ctor():this
weight= 10 : state 3 [ ldarg.0 ]
weight= 15 : state 23 [ ldc.i4.0 ]
weight= 0 : state 157 [ conv.i ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 79 : state 40 [ call ]
weight= 34 : state 12 [ stloc.1 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
Inline candidate looks like a wrapper method. Multiplier increased to 2.5.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 79 locals. Multiplier decreased to 0.359912.
calleeNativeSizeEstimate=443
callsiteNativeSizeEstimate=85
benefit multiplier=0.359912
threshold=30
Native estimate for function size exceeds threshold for inlining 44.3 > 3 (multiplier = 0.359912)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyList:.ctor():this'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
**** Late devirt opportunity
[000781] --CXG------- * CALLV stub ref System.Collections.IEnumerable.GetEnumerator
[000780] --CXG------- this in rcx \--* CALL help ref HELPER.CORINFO_HELP_CHKCASTINTERFACE
[000779] H------N---- arg0 +--* CNS_INT(h) long 0x7ff8fce2fce8 class
[000778] ------------ arg1 \--* LCL_VAR ref V00 arg0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Object (attrib 20000000)
base method is System.Collections.IEnumerable::GetEnumerator
--- base class is interface
--- no derived method: object class could not be cast to interface class
Class not final or exact
No guarded devirt during late devirtualization
**** Late devirt opportunity
[000790] --C-G------- * CALLV stub ref System.Collections.IEnumerator.get_Current
[000789] ------------ this in rcx \--* LCL_VAR ref V06 loc4
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::get_Current
No guarded devirt during late devirtualization
Expanding INLINE_CANDIDATE in statement STMT00208 in BB11:
STMT00208 (IL 0x067...0x06E)
[000794] I-C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython (exactContextHnd=0x00007FF901486E29)
[000793] ------------ arg0 \--* LCL_VAR ref V07 loc5
Argument #0: is a local var
[000793] ------------ * LCL_VAR ref V07 loc5
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.ConverterExtension:ToPython(System.Object):Python.Runtime.PyObject set to 0x00007FF901486E29:
Invoking compiler for the inlinee method Python.Runtime.ConverterExtension:ToPython(System.Object):Python.Runtime.PyObject :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2d 06 brtrue.s 6 (IL_0009)
IL_0003 28 dd 07 00 06 call 0x60007DD
IL_0008 2a ret
IL_0009 02 ldarg.0
IL_000a 02 ldarg.0
IL_000b 6f f9 00 00 0a callvirt 0xA0000F9
IL_0010 28 44 00 00 06 call 0x6000044
IL_0015 0a stloc.0
IL_0016 12 00 ldloca.s 0x0
IL_0018 28 06 01 00 06 call 0x6000106
IL_001d 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.ConverterExtension:ToPython(System.Object):Python.Runtime.PyObject is 0x00007FF901486E29.
*************** In fgFindBasicBlocks() for Python.Runtime.ConverterExtension:ToPython(System.Object):Python.Runtime.PyObject
weight= 10 : state 3 [ ldarg.0 ]
weight= 25 : state 45 [ brtrue.s ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
weight= 10 : state 3 [ ldarg.0 ]
Named Intrinsic System.Object.GetType: Not recognized
weight= 10 : state 3 [ ldarg.0 ]
weight= 83 : state 99 [ callvirt ]
weight= 79 : state 40 [ call ]
weight= 6 : state 11 [ stloc.0 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
Inline candidate looks like a wrapper method. Multiplier increased to 1.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 2.
Inline candidate callsite is in a loop. Multiplier increased to 5.
Callsite has profile data: 0. Multiplier limited to 1.5.
Caller has 79 locals. Multiplier decreased to 1.38428.
calleeNativeSizeEstimate=480
callsiteNativeSizeEstimate=85
benefit multiplier=1.38428
threshold=117
Native estimate for function size exceeds threshold for inlining 48 > 11.7 (multiplier = 1.38428)
Inline expansion aborted, inline not profitable
Inlining [000794] failed, so bashing STMT00208 to NOP
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.ConverterExtension:ToPython(System.Object):Python.Runtime.PyObject'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Replacing the return expression placeholder [000795] with [000794]
[000795] --C--------- * RET_EXPR ref (inl return expr [000794])
Inserting the inline return expression
[000794] --C-G------- * CALL ref Python.Runtime.ConverterExtension.ToPython
[000793] ------------ arg0 \--* LCL_VAR ref V07 loc5
Expanding INLINE_CANDIDATE in statement STMT00210 in BB12:
STMT00210 (IL 0x070...0x078)
[000800] I-C-G------- * CALL nullcheck void Python.Runtime.PyList.Append (exactContextHnd=0x00007FF9014B26A1)
[000798] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[000799] ------------ arg1 \--* LCL_VAR ref V08 loc6
thisArg: is a local var
[000798] ------------ * LCL_VAR ref V05 loc3
Argument #1: is a local var
[000799] ------------ * LCL_VAR ref V08 loc6
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyList:Append(Python.Runtime.PyObject):this set to 0x00007FF9014B26A1:
Invoking compiler for the inlinee method Python.Runtime.PyList:Append(Python.Runtime.PyObject):this :
IL to import:
IL_0000 03 ldarg.1
IL_0001 2d 0b brtrue.s 11 (IL_000e)
IL_0003 72 69 24 00 70 ldstr 0x70002469
IL_0008 73 56 00 00 0a newobj 0xA000056
IL_000d 7a throw
IL_000e 02 ldarg.0
IL_000f 28 06 07 00 06 call 0x6000706
IL_0014 03 ldarg.1
IL_0015 6f 06 07 00 06 callvirt 0x6000706
IL_001a 28 ac 08 00 06 call 0x60008AC
IL_001f 0a stloc.0
IL_0020 06 ldloc.0
IL_0021 16 ldc.i4.0
IL_0022 2f 06 bge.s 6 (IL_002a)
IL_0024 28 49 06 00 06 call 0x6000649
IL_0029 7a throw
IL_002a 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyList:Append(Python.Runtime.PyObject):this is 0x00007FF9014B26A1.
*************** In fgFindBasicBlocks() for Python.Runtime.PyList:Append(Python.Runtime.PyObject):this
weight= 16 : state 4 [ ldarg.1 ]
weight= 25 : state 45 [ brtrue.s ]
weight= 66 : state 102 [ ldstr ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 83 : state 99 [ callvirt ]
weight= 79 : state 40 [ call ]
weight= 20 : state 199 [ stloc.0 -> ldloc.0 ]
weight= 15 : state 23 [ ldc.i4.0 ]
weight= 20 : state 47 [ bge.s ]
weight= 79 : state 40 [ call ]
weight=210 : state 108 [ throw ]
weight= 19 : state 42 [ ret ]
Inline candidate has an arg that feeds a constant test. Multiplier increased to 1.
Inline candidate callsite is in a loop. Multiplier increased to 4.
Callsite has profile data: 0. Multiplier limited to 1.2.
Caller has 79 locals. Multiplier decreased to 1.10742.
calleeNativeSizeEstimate=1174
callsiteNativeSizeEstimate=115
benefit multiplier=1.10742
threshold=127
Native estimate for function size exceeds threshold for inlining 117.4 > 12.7 (multiplier = 1.10742)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyList:Append(Python.Runtime.PyObject):this'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
**** Late devirt opportunity
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Python.Runtime.PyObject (attrib 20000000)
base method is System.IDisposable::Dispose
--- base class is interface
devirt to Python.Runtime.PyObject::Dispose -- final method
[000807] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000806] ------------ this in rcx \--* LCL_VAR ref V08 loc6
Class not final or exact
No guarded devirt during late devirtualization
**** Late devirt opportunity
[000785] --C-G------- * CALLV stub int System.Collections.IEnumerator.MoveNext
[000784] ------------ this in rcx \--* LCL_VAR ref V06 loc4
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.Collections.IEnumerator (attrib 00200400)
base method is System.Collections.IEnumerator::MoveNext
No guarded devirt during late devirtualization
**** Late devirt opportunity
[000825] --C-G------- * CALLV stub void System.IDisposable.Dispose
[000824] ------------ this in rcx \--* LCL_VAR ref V09 loc7
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is System.IDisposable (attrib 00200400)
base method is System.IDisposable::Dispose
No guarded devirt during late devirtualization
Expanding INLINE_CANDIDATE in statement STMT00214 in BB21:
STMT00214 (IL 0x0A6...0x0AC)
[000809] I-C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull (exactContextHnd=0x00007FF9026AD409)
[000808] ------------ arg0 \--* LCL_VAR ref V05 loc3
Argument #0: is a local var
[000808] ------------ * LCL_VAR ref V05 loc3
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyObjectExtensions:NewReferenceOrNull(Python.Runtime.PyObject):Python.Runtime.NewReference set to 0x00007FF9026AD409:
Invoking compiler for the inlinee method Python.Runtime.PyObjectExtensions:NewReferenceOrNull(Python.Runtime.PyObject):Python.Runtime.NewReference :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2c 15 brfalse.s 21 (IL_0018)
IL_0003 02 ldarg.0
IL_0004 6f 12 07 00 06 callvirt 0x6000712
IL_0009 2d 0d brtrue.s 13 (IL_0018)
IL_000b 02 ldarg.0
IL_000c 28 eb 00 00 06 call 0x60000EB
IL_0011 16 ldc.i4.0
IL_0012 73 04 01 00 06 newobj 0x6000104
IL_0017 2a ret
IL_0018 12 00 ldloca.s 0x0
IL_001a fe 15 31 00 00 02 initobj 0x2000031
IL_0020 06 ldloc.0
IL_0021 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyObjectExtensions:NewReferenceOrNull(Python.Runtime.PyObject):Python.Runtime.NewReference is 0x00007FF9026AD409.
*************** In fgFindBasicBlocks() for Python.Runtime.PyObjectExtensions:NewReferenceOrNull(Python.Runtime.PyObject):Python.Runtime.NewReference
weight= 10 : state 3 [ ldarg.0 ]
weight= 27 : state 44 [ brfalse.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 83 : state 99 [ callvirt ]
weight= 25 : state 45 [ brtrue.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 15 : state 23 [ ldc.i4.0 ]
weight=227 : state 103 [ newobj ]
weight= 19 : state 42 [ ret ]
weight= 61 : state 19 [ ldloca.s ]
weight= 55 : state 180 [ initobj ]
weight= 12 : state 7 [ ldloc.0 ]
weight= 19 : state 42 [ ret ]
Inline candidate returns a struct by value. Multiplier increased to 2.
Callsite passes 1 arguments of exact classes while callee accepts non-exact ones. Multiplier increased to 4.5.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 5.5.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 79 locals. Multiplier decreased to 0.359912.
calleeNativeSizeEstimate=652
callsiteNativeSizeEstimate=85
benefit multiplier=0.359912
threshold=30
Native estimate for function size exceeds threshold for inlining 65.2 > 3 (multiplier = 0.359912)
Inline expansion aborted, inline not profitable
Inlining [000809] failed, so bashing STMT00214 to NOP
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyObjectExtensions:NewReferenceOrNull(Python.Runtime.PyObject):Python.Runtime.NewReference'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Replacing the return expression placeholder [000810] with [000809]
[000810] --C--------- * RET_EXPR struct(inl return expr [000809])
Inserting the inline return expression
[000809] --C-G------- * CALL struct Python.Runtime.PyObjectExtensions.NewReferenceOrNull
[000808] ------------ arg0 \--* LCL_VAR ref V05 loc3
Expanding INLINE_CANDIDATE in statement STMT00222 in BB23:
STMT00222 (IL 0x0B6...0x0B7)
[000832] I-C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose (exactContextHnd=0x00007FF9001C7A71)
[000831] ------------ this in rcx \--* LCL_VAR ref V05 loc3
thisArg: is a local var
[000831] ------------ * LCL_VAR ref V05 loc3
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.PyObject:Dispose():this set to 0x00007FF9001C7A71:
Invoking compiler for the inlinee method Python.Runtime.PyObject:Dispose():this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 4e 02 00 0a call 0xA00024E
IL_0006 02 ldarg.0
IL_0007 17 ldc.i4.1
IL_0008 6f 14 07 00 06 callvirt 0x6000714
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.PyObject:Dispose():this is 0x00007FF9001C7A71.
*************** In fgFindBasicBlocks() for Python.Runtime.PyObject:Dispose():this
Jump targets:
none
New Basic Block BB124 [0120] created.
BB124 [000..00E)
Basic block list for 'Python.Runtime.PyObject:Dispose():this'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB124 [0120] 1 100 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000832] Starting PHASE Pre-import
*************** Inline @[000832] Finishing PHASE Pre-import
*************** Inline @[000832] Starting PHASE Profile incorporation
Have dynamic profile data: 3 schema records (schema at 000001FA2D979CE0, data at 000001FA2D979D28)
Unknown PGO record type 0xc3 in schema entry 2 (offset 0x8 count 0x8 other 0x80000000)
Profile summary: 1 runs, 0 block probes, 1 edge probes, 1 class profiles, 1 other records
Reconstructing block counts from sparse edge instrumentation
... adding known edge BB124 -> BB124: weight 554
New BlockSet epoch 5, # of blocks (including unused BB00): 125, bitset array size: 2 (long)
Solver: 1 blocks, 1 unknown; 1 edges, 0 unknown, 0 zero (and so ignored)
Pass [1]: 1 unknown blocks, 0 unknown edges
BB124: 0 incoming unknown, 0 outgoing unknown
BB124: all incoming edge weights known, summming...
BB124 -> BB124 has weight 554
BB124: all incoming edge weights known, sum is 554
Solver: converged in 1 passes
Computing inlinee profile scale:
... zero call site count; scale will be 0.0
call site count 0 callee entry count 554 scale 0
Scaling inlinee blocks
*************** Inline @[000832] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB124 [0120] 1 0 0 [000..00E) (return) rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB124 [000..00E) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000832] Starting PHASE Importation
*************** In impImport() for Python.Runtime.PyObject:Dispose():this
impImportBlockPending for BB124
Importing BB124 (PC=000) of 'Python.Runtime.PyObject:Dispose():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 0A00024E
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[001031] I-C-G------- * CALL void System.GC.SuppressFinalize (exactContextHnd=0x00007FF8FD467E69)
[000831] ------------ arg0 \--* LCL_VAR ref V05 loc3
[ 0] 6 (0x006) ldarg.0
[ 1] 7 (0x007) ldc.i4.1 1
[ 2] 8 (0x008) callvirt 06000714
In Compiler::impImportCall: opcode is callvirt, kind=4, callRetType is void, structSize is 0
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is Python.Runtime.PyList [exact] (attrib 20000000)
base method is Python.Runtime.PyObject::Dispose
devirt to Python.Runtime.PyObject::Dispose -- exact
[001034] --C-G------- * CALLV vt-ind void Python.Runtime.PyObject.Dispose
[001032] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[001035] ------------ arg1 \--* PUTARG_TYPE bool
[001033] ------------ \--* CNS_INT int 1
exact; can devirtualize
... after devirt...
[001034] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[001032] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[001035] ------------ arg1 \--* PUTARG_TYPE bool
[001033] ------------ \--* CNS_INT int 1
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'Python.Runtime.PyObject:Dispose():this' calling 'Python.Runtime.PyObject:Dispose(bool):this'
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result'
[001034] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[001032] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[001035] ------------ arg1 \--* PUTARG_TYPE bool
[001033] ------------ \--* CNS_INT int 1
[ 0] 13 (0x00d) ret
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB124 [0120] 1 0 0 [000..00E) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000832] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB124 [0120] 1 0 0 [000..00E) (return) i rare IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB124 [000..00E) (return), preds={} succs={}
***** BB124
[001031] I-C-G------- * CALL void System.GC.SuppressFinalize (exactContextHnd=0x00007FF8FD467E69)
[000831] ------------ arg0 \--* LCL_VAR ref V05 loc3
***** BB124
[001034] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[001032] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[001035] ------------ arg1 \--* PUTARG_TYPE bool
[001033] ------------ \--* CNS_INT int 1
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000832] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000832] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000832] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000832] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000832] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000832] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000832] -----------
Arguments setup:
Inlinee method body:
STMT00271 (IL 0x0B6... ???)
[001031] I-C-G------- * CALL void System.GC.SuppressFinalize (exactContextHnd=0x00007FF8FD467E69)
[000831] ------------ arg0 \--* LCL_VAR ref V05 loc3
STMT00272 (IL 0x0B6... ???)
[001034] --C-G------- * CALL nullcheck void Python.Runtime.PyObject.Dispose
[001032] ------------ this in rcx +--* LCL_VAR ref V05 loc3
[001035] ------------ arg1 \--* PUTARG_TYPE bool
[001033] ------------ \--* CNS_INT int 1
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Python.Runtime.PyObject:Dispose():this (14 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.PyObject:Dispose():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00271 in BB23:
STMT00271 (IL 0x0B6... ???)
[001031] I-C-G------- * CALL void System.GC.SuppressFinalize (exactContextHnd=0x00007FF8FD467E69)
[000831] ------------ arg0 \--* LCL_VAR ref V05 loc3
Argument #0: is a local var
[000831] ------------ * LCL_VAR ref V05 loc3
INLINER: inlineInfo.tokenLookupContextHandle for System.GC:SuppressFinalize(System.Object) set to 0x00007FF8FD467E69:
Invoking compiler for the inlinee method System.GC:SuppressFinalize(System.Object) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2d 0b brtrue.s 11 (IL_000e)
IL_0003 72 b0 18 00 70 ldstr 0x700018B0
IL_0008 73 88 0a 00 06 newobj 0x6000A88
IL_000d 7a throw
IL_000e 02 ldarg.0
IL_000f 28 67 04 00 06 call 0x6000467
IL_0014 2a ret
INLINER impTokenLookupContextHandle for System.GC:SuppressFinalize(System.Object) is 0x00007FF8FD467E69.
*************** In fgFindBasicBlocks() for System.GC:SuppressFinalize(System.Object)
weight= 10 : state 3 [ ldarg.0 ]
weight= 25 : state 45 [ brtrue.s ]
weight= 66 : state 102 [ ldstr ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
Inline candidate looks like a wrapper method. Multiplier increased to 1.
Callsite passes 1 arguments of exact classes while callee accepts non-exact ones. Multiplier increased to 3.5.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 4.5.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 79 locals. Multiplier decreased to 0.359912.
calleeNativeSizeEstimate=646
callsiteNativeSizeEstimate=85
benefit multiplier=0.359912
threshold=30
Native estimate for function size exceeds threshold for inlining 64.6 > 3 (multiplier = 0.359912)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.GC:SuppressFinalize(System.Object)'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
lvaUpdateClass: NOT Updating class for V03 from (00007FF9014E0530) Python.Runtime.IPythonDerivedType to (00007FF8FCE25908) System.Object
Expanding INLINE_CANDIDATE in statement STMT00008 in BB28:
STMT00008 (IL 0x0DB...0x0E1)
[000033] I-C-G------- * CALL int System.Type.GetTypeCode (exactContextHnd=0x00007FF8FCE2C079)
[000032] ------------ arg0 \--* LCL_VAR ref V01 arg1
Argument #0: is a local var
[000032] ------------ * LCL_VAR ref V01 arg1
INLINER: inlineInfo.tokenLookupContextHandle for System.Type:GetTypeCode(System.Type):int set to 0x00007FF8FCE2C079:
Invoking compiler for the inlinee method System.Type:GetTypeCode(System.Type):int :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2d 02 brtrue.s 2 (IL_0005)
IL_0003 16 ldc.i4.0
IL_0004 2a ret
IL_0005 02 ldarg.0
IL_0006 6f e5 08 00 06 callvirt 0x60008E5
IL_000b 2a ret
INLINER impTokenLookupContextHandle for System.Type:GetTypeCode(System.Type):int is 0x00007FF8FCE2C079.
*************** In fgFindBasicBlocks() for System.Type:GetTypeCode(System.Type):int
Jump targets:
IL_0005
New Basic Block BB125 [0121] created.
BB125 [000..003)
New Basic Block BB126 [0122] created.
BB126 [003..005)
New Basic Block BB127 [0123] created.
BB127 [005..00C)
lvaGrabTemp returning 78 (V78 tmp52) (a long lifetime temp) called for Inline return value spill temp.
Basic block list for 'System.Type:GetTypeCode(System.Type):int'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB125 [0121] 1 100 [000..003)-> BB127 ( cond )
BB126 [0122] 1 100 [003..005) (return)
BB127 [0123] 1 100 [005..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000033] Starting PHASE Pre-import
*************** Inline @[000033] Finishing PHASE Pre-import
*************** Inline @[000033] Starting PHASE Profile incorporation
Have static profile data: 4 schema records (schema at 000001FA28D9CEA0, data at 000001FA28D9CE90)
Profile summary: 32 runs, 0 block probes, 2 edge probes, 1 class profiles, 0 other records
Reconstructing block counts from sparse edge instrumentation
... adding known edge BB126 -> BB125: weight 32
... adding known edge BB127 -> BB125: weight 339456
New BlockSet epoch 6, # of blocks (including unused BB00): 128, bitset array size: 2 (long)
... unknown edge BB125 -> BB127
... unknown edge BB125 -> BB126
Solver: 3 blocks, 3 unknown; 4 edges, 2 unknown, 0 zero (and so ignored)
Pass [1]: 3 unknown blocks, 2 unknown edges
BB127: 1 incoming unknown, 0 outgoing unknown
BB127: all outgoing edge weights known, summming...
BB127 -> BB125 has weight 339456
BB127: all outgoing edge weights known, sum is 339456
BB125 -> BB127: target block weight and all other incoming edge weights known, so weight is 339456
BB126: 1 incoming unknown, 0 outgoing unknown
BB126: all outgoing edge weights known, summming...
BB126 -> BB125 has weight 32
BB126: all outgoing edge weights known, sum is 32
BB125 -> BB126: target block weight and all other incoming edge weights known, so weight is 32
BB125: 0 incoming unknown, 0 outgoing unknown
BB125: all incoming edge weights known, summming...
BB127 -> BB125 has weight 339456
BB126 -> BB125 has weight 32
BB125: all incoming edge weights known, sum is 339488
Solver: converged in 1 passes
Computing inlinee profile scale:
call site count 31 callee entry count 339488 scale 9.131398e-05
Scaling inlinee blocks
*************** Inline @[000033] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB125 [0121] 1 31 31 [000..003)-> BB127 ( cond ) IBC
BB126 [0122] 1 0.00 0 [003..005) (return) IBC
BB127 [0123] 1 31.00 31 [005..00C) (return) IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB125 [000..003) -> BB127 (cond), preds={} succs={BB126,BB127}
------------ BB126 [003..005) (return), preds={} succs={}
------------ BB127 [005..00C) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000033] Starting PHASE Importation
*************** In impImport() for System.Type:GetTypeCode(System.Type):int
impImportBlockPending for BB125
Importing BB125 (PC=000) of 'System.Type:GetTypeCode(System.Type):int'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) brtrue.s
[001041] ------------ * JTRUE void
[001040] ------------ \--* NE int
[000032] ------------ +--* LCL_VAR ref V01 arg1
[001039] ------------ \--* CNS_INT ref null
impImportBlockPending for BB126
impImportBlockPending for BB127
Importing BB127 (PC=005) of 'System.Type:GetTypeCode(System.Type):int'
[ 0] 5 (0x005) ldarg.0
[ 1] 6 (0x006) callvirt 060008E5
In Compiler::impImportCall: opcode is callvirt, kind=4, callRetType is int, structSize is 0
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is System.Type (attrib 20000400)
base method is System.Type::GetTypeCodeImpl
devirt to System.Type::GetTypeCodeImpl -- inexact or not final
[001043] --C-G------- * CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
Class not final or exact, and method not final
Considering guarded devirtualization at IL offset 6 (0x6)
Likely class for 00007FF8FCE2C078 (System.Type) is 00007FF8FCE2F700 (System.RuntimeType) [likelihood:100 classes seen:1]
virtual call would invoke method GetTypeCodeImpl
Marking call [001043] as guarded devirtualization candidate; will guess for class System.RuntimeType
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'System.Type:GetTypeCode(System.Type):int' calling 'System.Type:GetTypeCodeImpl():int:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result'
Revoking guarded devirtualization candidacy for call [001043]: target method can't be inlined
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[001043] --C-G------- * CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
[001045] -AC-G------- * ASG int
[001044] D------N---- +--* LCL_VAR int V78 tmp52
[001043] --C-G------- \--* CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
Inlinee Return expression (after normalization) =>
[001046] ------------ * LCL_VAR int V78 tmp52
Importing BB126 (PC=003) of 'System.Type:GetTypeCode(System.Type):int'
[ 0] 3 (0x003) ldc.i4.0 0
[ 1] 4 (0x004) ret
Inlinee Return expression (before normalization) =>
[001047] ------------ * CNS_INT int 0
[001049] -A---------- * ASG int
[001048] D------N---- +--* LCL_VAR int V78 tmp52
[001047] ------------ \--* CNS_INT int 0
Inlinee Return expression (after normalization) =>
[001050] ------------ * LCL_VAR int V78 tmp52
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB125 [0121] 1 31 31 [000..003)-> BB127 ( cond ) i IBC
BB126 [0122] 1 0.00 0 [003..005) (return) i IBC
BB127 [0123] 1 31.00 31 [005..00C) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000033] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB125 [0121] 1 31 31 [000..003)-> BB127 ( cond ) i IBC
BB126 [0122] 1 0.00 0 [003..005) (return) i IBC
BB127 [0123] 1 31.00 31 [005..00C) (return) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB125 [000..003) -> BB127 (cond), preds={} succs={BB126,BB127}
***** BB125
[001041] ------------ * JTRUE void
[001040] ------------ \--* NE int
[000032] ------------ +--* LCL_VAR ref V01 arg1
[001039] ------------ \--* CNS_INT ref null
------------ BB126 [003..005) (return), preds={} succs={}
***** BB126
[001049] -A---------- * ASG int
[001048] D------N---- +--* LCL_VAR int V78 tmp52
[001047] ------------ \--* CNS_INT int 0
------------ BB127 [005..00C) (return), preds={} succs={}
***** BB127
[001045] -AC-G------- * ASG int
[001044] D------N---- +--* LCL_VAR int V78 tmp52
[001043] --C-G------- \--* CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000033] Starting PHASE Indirect call transform
-- no transforms done (?)
*************** Inline @[000033] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000033] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000033] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000033] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000033] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000033] -----------
Arguments setup:
Inlinee method body:New Basic Block BB128 [0124] created.
Convert bbJumpKind of BB126 to BBJ_ALWAYS to bottomBlock BB128
Convert bbJumpKind of BB127 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight IBC lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB125 [0121] 1 31 31 [0DB..0DC)-> BB127 ( cond ) i IBC
BB126 [0122] 1 0.00 0 [0DB..0DC)-> BB128 (always) i IBC
BB127 [0123] 1 31.00 31 [0DB..0DC) i IBC
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB125 [0DB..0DC) -> BB127 (cond), preds={} succs={BB126,BB127}
***** BB125
STMT00274 (IL 0x0DB... ???)
[001041] ------------ * JTRUE void
[001040] ------------ \--* NE int
[000032] ------------ +--* LCL_VAR ref V01 arg1
[001039] ------------ \--* CNS_INT ref null
------------ BB126 [0DB..0DC) -> BB128 (always), preds={} succs={BB128}
***** BB126
STMT00276 (IL 0x0DB... ???)
[001049] -A---------- * ASG int
[001048] D------N---- +--* LCL_VAR int V78 tmp52
[001047] ------------ \--* CNS_INT int 0
------------ BB127 [0DB..0DC), preds={} succs={BB128}
***** BB127
STMT00275 (IL 0x0DB... ???)
[001045] -AC-G------- * ASG int
[001044] D------N---- +--* LCL_VAR int V78 tmp52
[001043] --C-G------- \--* CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000033] is
[001050] ------------ * LCL_VAR int V78 tmp52
Successfully inlined System.Type:GetTypeCode(System.Type):int (12 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
BB28 becomes empty
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.Type:GetTypeCode(System.Type):int'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
**** Late devirt opportunity
[001043] --C-G------- * CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
impDevirtualizeCall: Trying to devirtualize virtual call:
class for 'this' is System.Type (attrib 20000400)
base method is System.Type::GetTypeCodeImpl
devirt to System.Type::GetTypeCodeImpl -- inexact or not final
[001043] --C-G------- * CALLV vt-ind int System.Type.GetTypeCodeImpl
[001042] ------------ this in rcx \--* LCL_VAR ref V01 arg1
Class not final or exact, and method not final
No guarded devirt during late devirtualization
Replacing the return expression placeholder [000034] with [001050]
[000034] --C--------- * RET_EXPR int (inl return expr [001050])
Inserting the inline return expression
[001050] ------------ * LCL_VAR int V78 tmp52
Expanding INLINE_CANDIDATE in statement STMT00178 in BB31:
STMT00178 (IL 0x147...0x14E)
[000676] I-C-G------- * CALL struct Python.Runtime.Runtime.PyTuple_New (exactContextHnd=0x00007FF9001CEA41)
[000675] ------------ arg0 \--* CNS_INT long 1
Argument #0: is a constant
[000675] ------------ * CNS_INT long 1
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference set to 0x00007FF9001CEA41:
Invoking compiler for the inlinee method Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference :
IL to import:
IL_0000 28 64 0d 00 06 call 0x6000D64
IL_0005 0a stloc.0
IL_0006 02 ldarg.0
IL_0007 06 ldloc.0
IL_0008 29 2d 01 00 11 calli 0x1100012D
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference is 0x00007FF9001CEA41.
*************** In fgFindBasicBlocks() for Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference
Jump targets:
none
New Basic Block BB129 [0125] created.
BB129 [000..00E)
Basic block list for 'Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB129 [0125] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000676] Starting PHASE Pre-import
*************** Inline @[000676] Finishing PHASE Pre-import
*************** Inline @[000676] 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 @[000676] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB129 [0125] 1 0 [000..00E) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB129 [000..00E) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000676] Starting PHASE Importation
*************** In impImport() for Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference
impImportBlockPending for BB129
Importing BB129 (PC=000) of 'Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference'
[ 0] 0 (0x000) call 06000D64
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[001052] I-C-G------- * CALL long Delegates.get_PyTuple_New (exactContextHnd=0x00007FF9002264F1)
[ 1] 5 (0x005) stloc.0
lvaGrabTemp returning 79 (V79 tmp53) (a long lifetime temp) called for Inline stloc first use temp.
[001055] -AC--------- * ASG long
[001054] D------N---- +--* LCL_VAR long V79 tmp53
[001053] --C--------- \--* RET_EXPR long (inl return expr [001052])
[ 0] 6 (0x006) ldarg.0
[ 1] 7 (0x007) ldloc.0
[ 2] 8 (0x008) calli 1100012D
In Compiler::impImportCall: opcode is calli, kind=0, callRetType is struct, structSize is 8
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed' for 'Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference' calling 'n/a'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed'
[ 1] 13 (0x00d) ret
Inlinee Return expression (before normalization) =>
[001058] --CXG------- * CALL ind struct
[001056] ------------ arg0 +--* CNS_INT long 1
[001057] ------------ calli tgt \--* LCL_VAR long V79 tmp53
impFixupStructReturnType: retyping
[001058] --CXG------- * CALL ind struct
[001056] ------------ arg0 +--* CNS_INT long 1
[001057] ------------ calli tgt \--* LCL_VAR long V79 tmp53
Inlinee Return expression (after normalization) =>
[001058] --CXG------- * CALL ind struct
[001056] ------------ arg0 +--* CNS_INT long 1
[001057] ------------ calli tgt \--* LCL_VAR long V79 tmp53
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB129 [0125] 1 0 [000..00E) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000676] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB129 [0125] 1 0 [000..00E) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB129 [000..00E) (return), preds={} succs={}
***** BB129
[001052] I-C-G------- * CALL long Delegates.get_PyTuple_New (exactContextHnd=0x00007FF9002264F1)
***** BB129
[001055] -AC--------- * ASG long
[001054] D------N---- +--* LCL_VAR long V79 tmp53
[001053] --C--------- \--* RET_EXPR long (inl return expr [001052])
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000676] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[000676] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000676] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[000676] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000676] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[000676] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [000676] -----------
Arguments setup:
Inlinee method body:
STMT00277 (IL 0x147... ???)
[001052] I-C-G------- * CALL long Delegates.get_PyTuple_New (exactContextHnd=0x00007FF9002264F1)
STMT00278 (IL 0x147... ???)
[001055] -AC--------- * ASG long
[001054] D------N---- +--* LCL_VAR long V79 tmp53
[001053] --C--------- \--* RET_EXPR long (inl return expr [001052])
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000676] is
[001058] --CXG------- * CALL ind struct
[001056] ------------ arg0 +--* CNS_INT long 1
[001057] ------------ calli tgt \--* LCL_VAR long V79 tmp53
Successfully inlined Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference (14 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.Runtime:PyTuple_New(long):Python.Runtime.NewReference'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement STMT00277 in BB31:
STMT00277 (IL 0x147... ???)
[001052] I-C-G------- * CALL long Delegates.get_PyTuple_New (exactContextHnd=0x00007FF9002264F1)
INLINER: inlineInfo.tokenLookupContextHandle for Delegates:get_PyTuple_New():long set to 0x00007FF9002264F1:
Invoking compiler for the inlinee method Delegates:get_PyTuple_New():long :
IL to import:
IL_0000 7e d7 05 00 04 ldsfld 0x40005D7
IL_0005 2a ret
INLINER impTokenLookupContextHandle for Delegates:get_PyTuple_New():long is 0x00007FF9002264F1.
*************** In fgFindBasicBlocks() for Delegates:get_PyTuple_New():long
Jump targets:
none
New Basic Block BB130 [0126] created.
BB130 [000..006)
Basic block list for 'Delegates:get_PyTuple_New():long'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB130 [0126] 1 1 [000..006) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[001052] Starting PHASE Pre-import
*************** Inline @[001052] Finishing PHASE Pre-import
*************** Inline @[001052] 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 @[001052] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB130 [0126] 1 0 [000..006) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB130 [000..006) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001052] Starting PHASE Importation
*************** In impImport() for Delegates:get_PyTuple_New():long
impImportBlockPending for BB130
Importing BB130 (PC=000) of 'Delegates:get_PyTuple_New():long'
[ 0] 0 (0x000) ldsfld 040005D7
[ 1] 5 (0x005) ret
Inlinee Return expression (before normalization) =>
[001061] ------------ * CNS_INT long 0x7ff98ff3b230
Inlinee Return expression (after normalization) =>
[001061] ------------ * CNS_INT long 0x7ff98ff3b230
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB130 [0126] 1 0 [000..006) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
** Note: inlinee IL was partially imported -- imported 0 of 6 bytes of method IL
*************** Inline @[001052] Finishing PHASE Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB130 [0126] 1 0 [000..006) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB130 [000..006) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[001052] Starting PHASE Indirect call transform
-- no candidates to transform
*************** Inline @[001052] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[001052] Starting PHASE Expand patchpoints
-- no patchpoints to transform
*************** Inline @[001052] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[001052] Starting PHASE Post-import
*************** In fgRemoveEmptyBlocks
*************** Inline @[001052] Finishing PHASE Post-import
----------- Statements (and blocks) added due to the inlining of call [001052] -----------
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [001052] is
[001061] ------------ * CNS_INT long 0x7ff98ff3b230
Successfully inlined Delegates:get_PyTuple_New():long (6 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Delegates:get_PyTuple_New():long'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [001053] with [001061]
[001053] --C--------- * RET_EXPR long (inl return expr [001061])
Inserting the inline return expression
[001061] ------------ * CNS_INT long 0x7ff98ff3b230
Replacing the return expression placeholder [000677] with [001058]
[000677] --C--------- * RET_EXPR struct(inl return expr [001058])
Inserting the inline return expression
[001058] --CXG------- * CALL ind struct
[001056] ------------ arg0 +--* CNS_INT long 1
[001057] ------------ calli tgt \--* LCL_VAR long V79 tmp53
Expanding INLINE_CANDIDATE in statement STMT00180 in BB32:
STMT00180 (IL 0x150...0x165)
[000683] I-C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow (exactContextHnd=0x00007FF9001FBA99)
[000682] ------------ arg0 \--* ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
Argument #0: is a constant is byref to a struct local
[000682] ------------ * ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.NewReferenceExtensions:Borrow(byref):Python.Runtime.BorrowedReference set to 0x00007FF9001FBA99:
Invoking compiler for the inlinee method Python.Runtime.NewReferenceExtensions:Borrow(byref):Python.Runtime.BorrowedReference :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 14 01 00 06 call 0x6000114
IL_0006 2d 07 brtrue.s 7 (IL_000f)
IL_0008 02 ldarg.0
IL_0009 28 15 01 00 06 call 0x6000115
IL_000e 2a ret
IL_000f 73 f4 01 00 0a newobj 0xA0001F4
IL_0014 7a throw
INLINER impTokenLookupContextHandle for Python.Runtime.NewReferenceExtensions:Borrow(byref):Python.Runtime.BorrowedReference is 0x00007FF9001FBA99.
*************** In fgFindBasicBlocks() for Python.Runtime.NewReferenceExtensions:Borrow(byref):Python.Runtime.BorrowedReference
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 25 : state 45 [ brtrue.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
weight=227 : state 103 [ newobj ]
weight=210 : state 108 [ throw ]
Inline candidate returns a struct by value. Multiplier increased to 2.
Inline candidate looks like a wrapper method. Multiplier increased to 3.
Inline candidate has 1 foldable branches. Multiplier increased to 7.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 119 locals. Multiplier decreased to 0.344678.
calleeNativeSizeEstimate=659
callsiteNativeSizeEstimate=85
benefit multiplier=0.344678
threshold=29
Native estimate for function size exceeds threshold for inlining 65.9 > 2.9 (multiplier = 0.344678)
Inline expansion aborted, inline not profitable
Inlining [000683] failed, so bashing STMT00180 to NOP
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'Python.Runtime.NewReferenceExtensions:Borrow(byref):Python.Runtime.BorrowedReference'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Replacing the return expression placeholder [000684] with [000683]
[000684] --C--------- * RET_EXPR struct(inl return expr [000683])
Inserting the inline return expression
[000683] --C-G------- * CALL struct Python.Runtime.NewReferenceExtensions.Borrow
[000682] ------------ arg0 \--* ADDR byref
[000681] -------N---- \--* LCL_VAR struct<Python.Runtime.NewReference, 8> V18 loc16
Expanding INLINE_CANDIDATE in statement STMT00181 in BB32:
STMT00181 (IL ???... ???)
[000689] I-C-G------- * CALL double System.TimeSpan.get_TotalDays (exactContextHnd=0x00007FF8FD001FA1)
[000688] ------------ this in rcx \--* ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
thisArg: is a constant is byref to a struct local
[000688] ------------ * ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
INLINER: inlineInfo.tokenLookupContextHandle for System.TimeSpan:get_TotalDays():double:this set to 0x00007FF8FD001FA1:
Invoking compiler for the inlinee method System.TimeSpan:get_TotalDays():double:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 5f 06 00 04 ldfld 0x400065F
IL_0006 6c conv.r8
IL_0007 23 00 00 00 38 4d 25 69 42 ldc.r8 864000000000.000000
IL_0010 5b div
IL_0011 2a ret
INLINER impTokenLookupContextHandle for System.TimeSpan:get_TotalDays():double:this is 0x00007FF8FD001FA1.
*************** In fgFindBasicBlocks() for System.TimeSpan:get_TotalDays():double:this
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight=197 : state 96 [ conv.r8 ]
weight=-17 : state 210 [ ldc.r8 -> div ]
weight= 19 : state 42 [ ret ]
multiplier in methods of struct increased to 3.
1 ldfld or stfld over arguments which are structs. Multiplier increased to 4.
Inline candidate is mostly loads and stores. Multiplier increased to 7.
Inline has 1 foldable binary expressions. Multiplier increased to 9.
Inline has 1 foldable unary expressions. Multiplier increased to 10.
Inline candidate callsite is rare. Multiplier limited to 1.3.
Callsite has profile data: 0. Multiplier limited to 0.39.
Caller has 119 locals. Multiplier decreased to 0.344678.
calleeNativeSizeEstimate=230
callsiteNativeSizeEstimate=85
benefit multiplier=0.344678
threshold=29
Native estimate for function size exceeds threshold for inlining 23 > 2.9 (multiplier = 0.344678)
Inline expansion aborted, inline not profitable
Inlining [000689] failed, so bashing STMT00181 to NOP
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for 'Python.Runtime.Converter:ToPython(System.Object,System.Type):Python.Runtime.NewReference' calling 'System.TimeSpan:get_TotalDays():double:this'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement STMT00183 in BB32:
STMT00183 (IL ???... ???)
[000695] I-C-G------- * CALL struct Python.Runtime.Runtime.PyFloat_FromDouble (exactContextHnd=0x00007FF9001CEA41)
[000694] --C--------- arg0 \--* RET_EXPR double(inl return expr [000689])
Argument #0: has global refs has caller local ref has side effects
[000689] --C-G------- * CALL double System.TimeSpan.get_TotalDays
[000688] ------------ this in rcx \--* ADDR byref
[000687] -------N---- \--* LCL_VAR struct<System.TimeSpan, 8> V17 loc15
INLINER: inlineInfo.tokenLookupContextHandle for Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference set to 0x00007FF9001CEA41:
Invoking compiler for the inlinee method Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference :
IL to import:
IL_0000 28 10 0d 00 06 call 0x6000D10
IL_0005 0a stloc.0
IL_0006 02 ldarg.0
IL_0007 06 ldloc.0
IL_0008 29 2f 01 00 11 calli 0x1100012F
IL_000d 2a ret
INLINER impTokenLookupContextHandle for Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference is 0x00007FF9001CEA41.
*************** In fgFindBasicBlocks() for Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference
Jump targets:
none
New Basic Block BB131 [0127] created.
BB131 [000..00E)
Basic block list for 'Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference'
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB131 [0127] 1 1 [000..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000695] Starting PHASE Pre-import
*************** Inline @[000695] Finishing PHASE Pre-import
*************** Inline @[000695] 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 @[000695] Finishing PHASE Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB131 [0127] 1 0 [000..00E) (return) rare
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB131 [000..00E) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
*************** Inline @[000695] Starting PHASE Importation
*************** In impImport() for Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference
impImportBlockPending for BB131
Importing BB131 (PC=000) of 'Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference'
[ 0] 0 (0x000) call 06000D10
In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0
[001065] I-C-G------- * CALL long Delegates.get_PyFloat_FromDouble (exactContextHnd=0x00007FF9002264F1)
[ 1] 5 (0x005) stloc.0
lvaGrabTemp returning 80 (V80 tmp54) (a long lifetime temp) called for Inline stloc first use temp.
[001068] -AC--------- * ASG long
[001067] D------N---- +--* LCL_VAR long V80 tmp54
[001066] --C--------- \--* RET_EXPR long (inl return expr [001065])
[ 0] 6 (0x006) ldarg.0
lvaGrabTemp returning 81 (V81 tmp55) called for Inlining Arg.
[ 1] 7 (0x007) ldloc.0
[ 2] 8 (0x008) calli 1100012F
In Compiler::impImportCall: opcode is calli, kind=0, callRetType is struct, structSize is 8
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed' for 'Python.Runtime.Runtime:PyFloat_FromDouble(double):Python.Runtime.NewReference' calling 'n/a'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct managed'
[ 1] 13 (0x00d) ret
Inlinee Return expression (before normalization) =>
[001071] --CXG------- * CALL ind struct
[001069] ------------ arg0 +--* LCL_VAR double V81 tmp55
[001070] ------------ calli tgt \--* LCL_VAR long V80 tmp54
impFixupStructReturnType: retyping
[001071] --CXG------- * CALL ind struct
[001069] ------------ arg0 +--* LCL_VAR double V81 tmp55
[001070] ------------ calli tgt \--* LCL_VAR long V80 tmp54
Inlinee Return expression (after normalization) =>
[001071] --CXG------- * CALL ind struct
[001069] ------------ arg0 +--* LCL_VAR double V81 tmp55
[001070] ------------ calli tgt \--* LCL_VAR long V80 tmp54
After impImport() added block for try,catch,finally
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB131 [0127] 1 0 [000..00E) (return) i rare
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000695] Finishing PHASE Importation
Trees after Importation
-------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment