Skip to content

Instantly share code, notes, and snippets.

@benaadams
Created June 22, 2018 20:19
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 benaadams/8beb5dc3dc774614a6827b26ba6eabcb to your computer and use it in GitHub Desktop.
Save benaadams/8beb5dc3dc774614a6827b26ba6eabcb to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
****** START compiling <ValueTask1>d__1:MoveNext():this (MethodHash=87def557)
Generating code for Windows x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: Stack probing is DISABLED
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 09 00 00 04 ldfld 0x4000009
IL_0006 0a stloc.0
IL_0007 06 ldloc.0
IL_0008 2c 41 brfalse.s 65 (IL_004b)
IL_000a 28 03 00 00 06 call 0x6000003
IL_000f 0d stloc.3
IL_0010 12 03 ldloca.s 0x3
IL_0012 16 ldc.i4.0
IL_0013 28 21 00 00 0a call 0xA000021
IL_0018 13 04 stloc.s 0x4
IL_001a 12 04 ldloca.s 0x4
IL_001c 28 22 00 00 0a call 0xA000022
IL_0021 0c stloc.2
IL_0022 12 02 ldloca.s 0x2
IL_0024 28 23 00 00 0a call 0xA000023
IL_0029 2d 3c brtrue.s 60 (IL_0067)
IL_002b 02 ldarg.0
IL_002c 16 ldc.i4.0
IL_002d 25 dup
IL_002e 0a stloc.0
IL_002f 7d 09 00 00 04 stfld 0x4000009
IL_0034 02 ldarg.0
IL_0035 08 ldloc.2
IL_0036 7d 0b 00 00 04 stfld 0x400000B
IL_003b 02 ldarg.0
IL_003c 7c 0a 00 00 04 ldflda 0x400000A
IL_0041 12 02 ldloca.s 0x2
IL_0043 02 ldarg.0
IL_0044 28 04 00 00 2b call 0x2B000004
IL_0049 de 53 leave.s 83 (IL_009e)
IL_004b 02 ldarg.0
IL_004c 7b 0b 00 00 04 ldfld 0x400000B
IL_0051 0c stloc.2
IL_0052 02 ldarg.0
IL_0053 7c 0b 00 00 04 ldflda 0x400000B
IL_0058 fe 15 08 00 00 1b initobj 0x1B000008
IL_005e 02 ldarg.0
IL_005f 15 ldc.i4.m1
IL_0060 25 dup
IL_0061 0a stloc.0
IL_0062 7d 09 00 00 04 stfld 0x4000009
IL_0067 12 02 ldloca.s 0x2
IL_0069 28 25 00 00 0a call 0xA000025
IL_006e 0b stloc.1
IL_006f de 19 leave.s 25 (IL_008a)
IL_0071 13 05 stloc.s 0x5
IL_0073 02 ldarg.0
IL_0074 1f fe ldc.i4.s 0xFFFFFFFE
IL_0076 7d 09 00 00 04 stfld 0x4000009
IL_007b 02 ldarg.0
IL_007c 7c 0a 00 00 04 ldflda 0x400000A
IL_0081 11 05 ldloc.s 0x5
IL_0083 28 26 00 00 0a call 0xA000026
IL_0088 de 14 leave.s 20 (IL_009e)
IL_008a 02 ldarg.0
IL_008b 1f fe ldc.i4.s 0xFFFFFFFE
IL_008d 7d 09 00 00 04 stfld 0x4000009
IL_0092 02 ldarg.0
IL_0093 7c 0a 00 00 04 ldflda 0x400000A
IL_0098 07 ldloc.1
IL_0099 28 27 00 00 0a call 0xA000027
IL_009e 2a ret
Set preferred register for V00 to [rcx]
'this' passed in register rcx
lvaSetClass: setting class for V06 to (00007FFC6B4AA6B0) Exception
lvaGrabTemp returning 7 (V07 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
; Initial local variable assignments
;
; V00 this byref this
; V01 loc0 int
; V02 loc1 int
; V03 loc2 struct (16)
; V04 loc3 struct (16)
; V05 loc4 struct (16)
; V06 loc5 ref class-hnd
; V07 OutArgs lclBlk (na)
*************** In compInitDebuggingInfo() for <ValueTask1>d__1:MoveNext():this
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 7
VarNum LVNum Name Beg End
0: 00h 00h V00 this 000h 09Fh
1: 01h 01h V01 loc0 000h 09Fh
2: 02h 02h V02 loc1 000h 09Fh
3: 03h 03h V03 loc2 000h 09Fh
4: 04h 04h V04 loc3 000h 09Fh
5: 05h 05h V05 loc4 000h 09Fh
6: 06h 06h V06 loc5 000h 09Fh
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for <ValueTask1>d__1:MoveNext():this
Jump targets:
IL_0007 addr
IL_004b
IL_0067
IL_0071 addr
IL_008a
IL_009e multi
New Basic Block BB01 [0000] created.
BB01 [000..007)
New Basic Block BB02 [0001] created.
BB02 [007..00A)
New Basic Block BB03 [0002] created.
BB03 [00A..02B)
New Basic Block BB04 [0003] created.
BB04 [02B..04B)
New Basic Block BB05 [0004] created.
BB05 [04B..067)
New Basic Block BB06 [0005] created.
BB06 [067..071)
New Basic Block BB07 [0006] created.
BB07 [071..08A)
New Basic Block BB08 [0007] created.
BB08 [08A..09E)
New Basic Block BB09 [0008] created.
BB09 [09E..09F)
EH clause #0:
Flags: 0x0 (catch)
TryOffset: 0x7
TryLength: 0x6a
HandlerOffset: 0x71
HandlerLength: 0x19
ClassToken: 0x1000018
*************** After fgFindBasicBlocks() has created the EH table
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
*************** In fgNormalizeEH()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007)
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [04B..067) T0
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E)
BB09 [0008] 3 1 [09E..09F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
No EH normalization performed.
IL Code Size,Instr 159, 63, Basic Block count 9, Local Variable Num,Ref count 8, 30 for method <ValueTask1>d__1:MoveNext():this
OPTIONS: opts.MinOpts() == false
Basic block list for '<ValueTask1>d__1:MoveNext():this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007)
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [04B..067) T0
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E)
BB09 [0008] 3 1 [09E..09F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for <ValueTask1>d__1:MoveNext():this
impImportBlockPending for BB01
Importing BB01 (PC=000) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 04000009
[ 1] 6 (0x006) stloc.0
[000005] ------------ * STMT void (IL 0x000... ???)
[000002] ---XG------- | /--* FIELD int <>1__state
[000001] ------------ | | \--* LCL_VAR byref V00 this
[000004] -A-XG------- \--* ASG int
[000003] D------N---- \--* LCL_VAR int V01 loc0
impImportBlockPending for BB02
impImportBlockPending for BB07
Importing BB02 (PC=007) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 7 (0x007) ldloc.0
[ 1] 8 (0x008) brfalse.s
[000013] ------------ * STMT void (IL 0x007... ???)
[000012] ------------ \--* JTRUE void
[000010] ------------ | /--* CNS_INT int 0
[000011] ------------ \--* EQ int
[000009] ------------ \--* LCL_VAR int V01 loc0
impImportBlockPending for BB03
impImportBlockPending for BB05
Importing BB05 (PC=075) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 75 (0x04b) ldarg.0
[ 1] 76 (0x04c) ldfld 0400000B
[ 1] 81 (0x051) stloc.2
[000020] ------------ * STMT void (IL 0x04B... ???)
[000016] ---XG------- | /--* FIELD struct <>u__1
[000015] ------------ | | \--* LCL_VAR byref V00 this
[000019] -A-XG---R--- \--* ASG struct (copy)
[000017] D----------- \--* LCL_VAR struct V03 loc2
[ 0] 82 (0x052) ldarg.0
[ 1] 83 (0x053) ldflda 0400000B
[ 1] 88 (0x058) initobj 1B000008
[000027] ------------ * STMT void (IL 0x052... ???)
[000024] ------------ | /--* CNS_INT int 0
[000026] IA-XG---R--- \--* ASG struct (init)
[000025] ---XG--N---- \--* BLK(16) struct
[000023] ---XG------- \--* ADDR byref
[000022] ---XG------- \--* FIELD struct <>u__1
[000021] ------------ \--* LCL_VAR byref V00 this
[ 0] 94 (0x05e) ldarg.0
[ 1] 95 (0x05f) ldc.i4.m1 -1
[ 2] 96 (0x060) dup
lvaGrabTemp returning 8 (V08 tmp1) called for dup spill.
[000032] ------------ * STMT void (IL 0x05E... ???)
[000029] ------------ | /--* CNS_INT int -1
[000031] -A---------- \--* ASG int
[000030] D------N---- \--* LCL_VAR int V08 tmp1
[ 3] 97 (0x061) stloc.0
[000037] ------------ * STMT void (IL ???... ???)
[000034] ------------ | /--* LCL_VAR int V08 tmp1
[000036] -A---------- \--* ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
[ 2] 98 (0x062) stfld 04000009
[000040] ------------ * STMT void (IL ???... ???)
[000033] ------------ | /--* LCL_VAR int V08 tmp1
[000039] -A-XG------- \--* ASG int
[000038] ---XG--N---- \--* FIELD int <>1__state
[000028] ------------ \--* LCL_VAR byref V00 this
impImportBlockPending for BB06
Importing BB06 (PC=103) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 103 (0x067) ldloca.s 2
[ 1] 105 (0x069) call 0A000025
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000045] ------------ * STMT void (IL 0x067... ???)
[000044] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.GetResult (exactContextHnd=0x00007FFC6B4B74F9)
[000043] L----------- this in rcx \--* ADDR byref
[000042] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 110 (0x06e) stloc.1
[000049] ------------ * STMT void (IL ???... ???)
[000046] --C--------- | /--* RET_EXPR int (inl return from call [000044])
[000048] -AC--------- \--* ASG int
[000047] D------N---- \--* LCL_VAR int V02 loc1
[ 0] 111 (0x06f) leave.s 008A
Before import CEE_LEAVE in BB06 (targetting BB08):
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E)
BB09 [0008] 3 1 [09E..09F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportLeave - no enclosing finally-protected try blocks or catch handlers; convert CEE_LEAVE block BB06 to BBJ_ALWAYS
After import CEE_LEAVE:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 }
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E)
BB09 [0008] 3 1 [09E..09F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportBlockPending for BB08
Importing BB08 (PC=138) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 138 (0x08a) ldarg.0
[ 1] 139 (0x08b) ldc.i4.s -2
[ 2] 141 (0x08d) stfld 04000009
[000055] ------------ * STMT void (IL 0x08A... ???)
[000052] ------------ | /--* CNS_INT int -2
[000054] -A-XG------- \--* ASG int
[000053] ---XG--N---- \--* FIELD int <>1__state
[000051] ------------ \--* LCL_VAR byref V00 this
[ 0] 146 (0x092) ldarg.0
[ 1] 147 (0x093) ldflda 0400000A
[ 1] 152 (0x098) ldloc.1
[ 2] 153 (0x099) call 0A000027 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000060]
[000062] ------------ * STMT void (IL 0x092... ???)
[000060] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B3469)
[000058] ---XG------- this in rcx +--* ADDR byref
[000057] ---XG------- | \--* FIELD struct <>t__builder
[000056] ------------ | \--* LCL_VAR byref V00 this
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
impImportBlockPending for BB09
Importing BB09 (PC=158) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 158 (0x09e) ret
[000065] ------------ * STMT void (IL 0x09E... ???)
[000064] ------------ \--* RETURN void
Importing BB03 (PC=010) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 10 (0x00a) call 06000003
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
[000068] ------------ * STMT void (IL 0x00A... ???)
[000067] I-C-G------- \--* CALL struct Program.ValueTask2 (exactContextHnd=0x00007FFC0D5C5491)
[ 1] 15 (0x00f) stloc.3
[000073] ------------ * STMT void (IL ???... ???)
[000069] --C--------- \--* RET_EXPR void (inl return from call [000067])
[ 0] 16 (0x010) ldloca.s 3
[ 1] 18 (0x012) ldc.i4.0 0
[ 2] 19 (0x013) call 0A000021
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
[000079] ------------ * STMT void (IL 0x010... ???)
[000077] I-C-G------- \--* CALL struct ValueTask`1.ConfigureAwait (exactContextHnd=0x00007FFC6B4C3B09)
[000075] L----------- this in rcx +--* ADDR byref
[000074] ------------ | \--* LCL_VAR struct V04 loc3
[000076] ------------ arg1 \--* CNS_INT int 0
[ 1] 24 (0x018) stloc.s 4
[000084] ------------ * STMT void (IL ???... ???)
[000080] --C--------- \--* RET_EXPR void (inl return from call [000077])
[ 0] 26 (0x01a) ldloca.s 4
[ 1] 28 (0x01c) call 0A000022
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
[000088] ------------ * STMT void (IL 0x01A... ???)
[000087] I-C-G------- \--* CALL struct ConfiguredValueTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC6B4E2569)
[000086] L----------- this in rcx \--* ADDR byref
[000085] ------------ \--* LCL_VAR struct V05 loc4
[ 1] 33 (0x021) stloc.2
[000093] ------------ * STMT void (IL ???... ???)
[000089] --C--------- \--* RET_EXPR void (inl return from call [000087])
[ 0] 34 (0x022) ldloca.s 2
[ 1] 36 (0x024) call 0A000023
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000097] ------------ * STMT void (IL 0x022... ???)
[000096] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC6B4B74F9)
[000095] L----------- this in rcx \--* ADDR byref
[000094] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 41 (0x029) brtrue.s
[000102] ------------ * STMT void (IL ???... ???)
[000101] --C--------- \--* JTRUE void
[000099] ------------ | /--* CNS_INT int 0
[000100] --C--------- \--* NE int
[000098] --C--------- \--* RET_EXPR int (inl return from call [000096])
impImportBlockPending for BB04
impImportBlockPending for BB06
Importing BB04 (PC=043) of '<ValueTask1>d__1:MoveNext():this'
[ 0] 43 (0x02b) ldarg.0
[ 1] 44 (0x02c) ldc.i4.0 0
[ 2] 45 (0x02d) dup
[ 3] 46 (0x02e) stloc.0
[000109] ------------ * STMT void (IL 0x02B... ???)
[000106] ------------ | /--* CNS_INT int 0
[000108] -A---------- \--* ASG int
[000107] D------N---- \--* LCL_VAR int V01 loc0
[ 2] 47 (0x02f) stfld 04000009
[000112] ------------ * STMT void (IL ???... ???)
[000105] ------------ | /--* CNS_INT int 0
[000111] -A-XG------- \--* ASG int
[000110] ---XG--N---- \--* FIELD int <>1__state
[000104] ------------ \--* LCL_VAR byref V00 this
[ 0] 52 (0x034) ldarg.0
[ 1] 53 (0x035) ldloc.2
[ 2] 54 (0x036) stfld 0400000B
[000119] ------------ * STMT void (IL 0x034... ???)
[000114] ------------ | /--* LCL_VAR struct V03 loc2
[000118] -A-XG---R--- \--* ASG struct (copy)
[000117] ---XG------- \--* OBJ(16) struct
[000116] ---XG------- \--* ADDR byref
[000115] ---XG------- \--* FIELD struct <>u__1
[000113] ------------ \--* LCL_VAR byref V00 this
[ 0] 59 (0x03b) ldarg.0
[ 1] 60 (0x03c) ldflda 0400000A
[ 1] 65 (0x041) ldloca.s 2
[ 2] 67 (0x043) ldarg.0
[ 3] 68 (0x044) call 2B000004
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000129] ------------ * STMT void (IL 0x03B... ???)
[000126] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted (exactContextHnd=0x00007FFC0D5C6140)
[000122] ---XG------- this in rcx +--* ADDR byref
[000121] ---XG------- | \--* FIELD struct <>t__builder
[000120] ------------ | \--* LCL_VAR byref V00 this
[000124] L----------- arg1 +--* ADDR byref
[000123] ------------ | \--* LCL_VAR struct V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
[ 0] 73 (0x049) leave.s 009E
Before import CEE_LEAVE in BB04 (targetting BB09):
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E) i
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportLeave - no enclosing finally-protected try blocks or catch handlers; convert CEE_LEAVE block BB04 to BBJ_ALWAYS
After import CEE_LEAVE:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E) i
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportBlockPending for BB09
Importing BB07 (PC=113) of '<ValueTask1>d__1:MoveNext():this'
lvaGrabTemp returning 9 (V09 tmp2) called for impSpillSpecialSideEff.
[000133] ------------ * STMT void (IL 0x071... ???)
[000007] -----O------ | /--* CATCH_ARG ref
[000132] -A---O------ \--* ASG ref
[000131] D------N---- \--* LCL_VAR ref V09 tmp2
lvaSetClass: setting class for V09 to (00007FFC6B4AA6B0) Exception
[ 1] 113 (0x071) stloc.s 5
[000137] ------------ * STMT void (IL ???... ???)
[000134] ------------ | /--* LCL_VAR ref V09 tmp2
[000136] -A---------- \--* ASG ref
[000135] D------N---- \--* LCL_VAR ref V06 loc5
[ 0] 115 (0x073) ldarg.0
[ 1] 116 (0x074) ldc.i4.s -2
[ 2] 118 (0x076) stfld 04000009
[000142] ------------ * STMT void (IL 0x073... ???)
[000139] ------------ | /--* CNS_INT int -2
[000141] -A-XG------- \--* ASG int
[000140] ---XG--N---- \--* FIELD int <>1__state
[000138] ------------ \--* LCL_VAR byref V00 this
[ 0] 123 (0x07b) ldarg.0
[ 1] 124 (0x07c) ldflda 0400000A
[ 1] 129 (0x081) ldloc.s 5
[ 2] 131 (0x083) call 0A000026
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Will not inline blocks that are in the catch handler region
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'within catch region' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:SetException(ref):this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'within catch region'
[000149] ------------ * STMT void (IL 0x07B... ???)
[000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
[000145] ---XG------- this in rcx +--* ADDR byref
[000144] ---XG------- | \--* FIELD struct <>t__builder
[000143] ------------ | \--* LCL_VAR byref V00 this
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5
[ 0] 136 (0x088) leave.s 009E
Before import CEE_LEAVE in BB07 (targetting BB09):
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E) i
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportLeave - jumping out of a catch (EH#0), convert block BB07 to BBJ_EHCATCHRET block
impImportLeave - final destination of step blocks set to BB09
impImportBlockPending for BB09
After import CEE_LEAVE:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep label target
BB08 [0007] 1 1 [08A..09E) i
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A)
impImportBlockPending for BB09
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
New BlockSet epoch 1, # of blocks (including unused BB00): 10, bitset array size: 1 (short)
*************** In fgMorph()
*************** In fgDebugCheckBBlist
*************** In fgInline()
Expanding INLINE_CANDIDATE in statement [000068] in BB03:
[000068] ------------ * STMT void (IL 0x00A...0x00F)
[000067] I-C-G------- \--* CALL void Program.ValueTask2 (exactContextHnd=0x00007FFC0D5C5491)
[000071] L----------- arg0 \--* ADDR byref
[000070] ------------ \--* LCL_VAR struct V04 loc3
INLINER: inlineInfo.tokenLookupContextHandle for Program:ValueTask2():struct set to 0x00007FFC0D5C5491:
Invoking compiler for the inlinee method Program:ValueTask2():struct :
IL to import:
IL_0000 17 ldc.i4.1
IL_0001 73 16 00 00 0a newobj 0xA000016
IL_0006 2a ret
INLINER impTokenLookupContextHandle for Program:ValueTask2():struct is 0x00007FFC0D5C5491.
*************** In fgFindBasicBlocks() for Program:ValueTask2():struct
Jump targets:
none
New Basic Block BB10 [0009] created.
BB10 [000..007)
Basic block list for 'Program:ValueTask2():struct'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB10 [0009] 1 1 [000..007) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Program:ValueTask2():struct
impImportBlockPending for BB10
Importing BB10 (PC=000) of 'Program:ValueTask2():struct'
[ 0] 0 (0x000) ldc.i4.1 1
[ 1] 1 (0x001) newobj
lvaGrabTemp returning 10 (V10 tmp3) called for NewObj constructor temp.
[000155] ------------ * STMT void
[000153] ------------ | /--* CNS_INT int 0
[000154] IA------R--- \--* ASG struct (init)
[000152] D------N---- \--* LCL_VAR struct V10 tmp3
0A000016
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000160] ------------ * STMT void
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000157] L----------- this in rcx +--* ADDR byref
[000156] ------------ | \--* LCL_VAR struct V10 tmp3
[000151] ------------ arg1 \--* CNS_INT int 1
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[000161] ------------ * LCL_VAR struct V10 tmp3
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB10 [0009] 1 1 [000..007) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000067] -----------
Inlinee method body:
[000155] ------------ * STMT void (IL 0x00A... ???)
[000153] ------------ | /--* CNS_INT int 0
[000154] IA------R--- \--* ASG struct (init)
[000152] D------N---- \--* LCL_VAR struct V10 tmp3
[000160] ------------ * STMT void (IL 0x00A... ???)
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000157] L----------- this in rcx +--* ADDR byref
[000156] ------------ | \--* LCL_VAR struct V10 tmp3
[000151] ------------ arg1 \--* CNS_INT int 1
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000067] is
[000161] ------------ /--* LCL_VAR struct V10 tmp3
[000164] -A------R--- * ASG struct (copy)
[000163] D----------- \--* LCL_VAR struct V04 loc3
Successfully inlined Program:ValueTask2():struct (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Program:ValueTask2():struct'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000160] in BB03:
[000160] ------------ * STMT void (IL 0x00A... ???)
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000157] L----------- this in rcx +--* ADDR byref
[000156] ------------ | \--* LCL_VAR struct V10 tmp3
[000151] ------------ arg1 \--* CNS_INT int 1
thisArg: is a constant is byref to a struct local
[000157] L----------- * ADDR byref
[000156] ------------ \--* LCL_VAR struct V10 tmp3
Argument #1: is a constant
[000151] ------------ * CNS_INT int 1
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:.ctor(int):this set to 0x00007FFC6B4C3B09:
Invoking compiler for the inlinee method ValueTask`1:.ctor(int):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 01 09 00 0a stfld 0xA000901
IL_0007 02 ldarg.0
IL_0008 14 ldnull
IL_0009 7d 02 09 00 0a stfld 0xA000902
IL_000e 02 ldarg.0
IL_000f 17 ldc.i4.1
IL_0010 7d 03 09 00 0a stfld 0xA000903
IL_0015 02 ldarg.0
IL_0016 16 ldc.i4.0
IL_0017 7d 04 09 00 0a stfld 0xA000904
IL_001c 2a ret
INLINER impTokenLookupContextHandle for ValueTask`1:.ctor(int):this is 0x00007FFC6B4C3B09.
*************** In fgFindBasicBlocks() for ValueTask`1:.ctor(int):this
Jump targets:
none
New Basic Block BB11 [0010] created.
BB11 [000..01D)
Basic block list for 'ValueTask`1:.ctor(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB11 [0010] 1 1 [000..01D) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ValueTask`1:.ctor(int):this
impImportBlockPending for BB11
Importing BB11 (PC=000) of 'ValueTask`1:.ctor(int):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) stfld 0A000901
[000172] ------------ * STMT void
[000169] ------------ | /--* CNS_INT int 1
[000171] -A---------- \--* ASG int
[000170] -------N---- \--* FIELD int _result
[000167] L----------- \--* ADDR byref
[000168] ------------ \--* LCL_VAR struct V10 tmp3
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldnull
[ 2] 9 (0x009) stfld 0A000902
[000178] ------------ * STMT void
[000175] ------------ | /--* CNS_INT ref null
[000177] -A---------- \--* ASG ref
[000176] -------N---- \--* FIELD ref _obj
[000173] L----------- \--* ADDR byref
[000174] ------------ \--* LCL_VAR struct V10 tmp3
[ 0] 14 (0x00e) ldarg.0
[ 1] 15 (0x00f) ldc.i4.1 1
[ 2] 16 (0x010) stfld 0A000903
[000184] ------------ * STMT void
[000181] ------------ | /--* CNS_INT int 1
[000183] -A---------- \--* ASG bool
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext
[000179] L----------- \--* ADDR byref
[000180] ------------ \--* LCL_VAR struct V10 tmp3
[ 0] 21 (0x015) ldarg.0
[ 1] 22 (0x016) ldc.i4.0 0
[ 2] 23 (0x017) stfld 0A000904
[000190] ------------ * STMT void
[000187] ------------ | /--* CNS_INT int 0
[000189] -A---------- \--* ASG short
[000188] -------N---- \--* FIELD short _token
[000185] L----------- \--* ADDR byref
[000186] ------------ \--* LCL_VAR struct V10 tmp3
[ 0] 28 (0x01c) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB11 [0010] 1 1 [000..01D) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000158] -----------
Arguments setup:
Inlinee method body:
[000172] ------------ * STMT void (IL 0x00A... ???)
[000169] ------------ | /--* CNS_INT int 1
[000171] -A---------- \--* ASG int
[000170] -------N---- \--* FIELD int _result
[000167] L----------- \--* ADDR byref
[000168] ------------ \--* LCL_VAR struct V10 tmp3
[000178] ------------ * STMT void (IL 0x00A... ???)
[000175] ------------ | /--* CNS_INT ref null
[000177] -A---------- \--* ASG ref
[000176] -------N---- \--* FIELD ref _obj
[000173] L----------- \--* ADDR byref
[000174] ------------ \--* LCL_VAR struct V10 tmp3
[000184] ------------ * STMT void (IL 0x00A... ???)
[000181] ------------ | /--* CNS_INT int 1
[000183] -A---------- \--* ASG bool
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext
[000179] L----------- \--* ADDR byref
[000180] ------------ \--* LCL_VAR struct V10 tmp3
[000190] ------------ * STMT void (IL 0x00A... ???)
[000187] ------------ | /--* CNS_INT int 0
[000189] -A---------- \--* ASG short
[000188] -------N---- \--* FIELD short _token
[000185] L----------- \--* ADDR byref
[000186] ------------ \--* LCL_VAR struct V10 tmp3
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ValueTask`1:.ctor(int):this (29 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:.ctor(int):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000069] with [000164]
[000069] --C--------- * RET_EXPR void (inl return from call [000164])
Inserting the inline return expression
[000161] ------------ /--* LCL_VAR struct V10 tmp3
[000164] -A------R--- * ASG struct (copy)
[000163] D----------- \--* LCL_VAR struct V04 loc3
Expanding INLINE_CANDIDATE in statement [000079] in BB03:
[000079] ------------ * STMT void (IL 0x010...0x018)
[000077] I-C-G------- \--* CALL void ValueTask`1.ConfigureAwait (exactContextHnd=0x00007FFC6B4C3B09)
[000075] L----------- this in rcx +--* ADDR byref
[000074] ------------ | \--* LCL_VAR struct V04 loc3
[000082] L----------- arg1 +--* ADDR byref
[000081] ------------ | \--* LCL_VAR struct V05 loc4
[000076] ------------ arg2 \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000075] L----------- * ADDR byref
[000074] ------------ \--* LCL_VAR struct V04 loc3
Argument #1: is a constant
[000076] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000192] ------------ * CAST int <- bool <- int
[000076] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000192] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:ConfigureAwait(bool):struct:this set to 0x00007FFC6B4C3B09:
Invoking compiler for the inlinee method ValueTask`1:ConfigureAwait(bool):struct:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 02 09 00 0a ldfld 0xA000902
IL_0006 02 ldarg.0
IL_0007 7b 01 09 00 0a ldfld 0xA000901
IL_000c 02 ldarg.0
IL_000d 7b 04 09 00 0a ldfld 0xA000904
IL_0012 03 ldarg.1
IL_0013 73 10 09 00 0a newobj 0xA000910
IL_0018 73 11 09 00 0a newobj 0xA000911
IL_001d 2a ret
INLINER impTokenLookupContextHandle for ValueTask`1:ConfigureAwait(bool):struct:this is 0x00007FFC6B4C3B09.
*************** In fgFindBasicBlocks() for ValueTask`1:ConfigureAwait(bool):struct:this
Jump targets:
none
New Basic Block BB12 [0011] created.
BB12 [000..01E)
Basic block list for 'ValueTask`1:ConfigureAwait(bool):struct:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB12 [0011] 1 1 [000..01E) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ValueTask`1:ConfigureAwait(bool):struct:this
impImportBlockPending for BB12
Importing BB12 (PC=000) of 'ValueTask`1:ConfigureAwait(bool):struct:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000902
[ 1] 6 (0x006) ldarg.0
[ 2] 7 (0x007) ldfld 0A000901
[ 2] 12 (0x00c) ldarg.0
[ 3] 13 (0x00d) ldfld 0A000904
[ 3] 18 (0x012) ldarg.1
[ 4] 19 (0x013) newobj
lvaGrabTemp returning 11 (V11 tmp4) called for NewObj constructor temp.
[000207] ------------ * STMT void
[000205] ------------ | /--* CNS_INT int 0
[000206] IA------R--- \--* ASG struct (init)
[000204] D------N---- \--* LCL_VAR struct V11 tmp4
0A000910
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000215] ------------ * STMT void
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000209] L----------- this in rcx +--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V11 tmp4
[000196] ------------ arg1 +--* FIELD ref _obj
[000194] L----------- | \--* ADDR byref
[000195] ------------ | \--* LCL_VAR struct V04 loc3
[000199] ------------ arg2 +--* FIELD int _result
[000197] L----------- | \--* ADDR byref
[000198] ------------ | \--* LCL_VAR struct V04 loc3
[000202] ------------ arg3 +--* FIELD short _token
[000200] L----------- | \--* ADDR byref
[000201] ------------ | \--* LCL_VAR struct V04 loc3
[000203] ------------ arg4 \--* CNS_INT int 0
[ 1] 24 (0x018) newobj
lvaGrabTemp returning 12 (V12 tmp5) called for NewObj constructor temp.
[000220] ------------ * STMT void
[000218] ------------ | /--* CNS_INT int 0
[000219] IA------R--- \--* ASG struct (init)
[000217] D------N---- \--* LCL_VAR struct V12 tmp5
0A000911
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000216] ------------ * LCL_VAR struct V11 tmp4
resulting tree:
[000225] x----------- * OBJ(16) struct
[000224] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V11 tmp4
[000227] ------------ * STMT void
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569)
[000222] L----------- this in rcx +--* ADDR byref
[000221] ------------ | \--* LCL_VAR struct V12 tmp5
[000225] x----------- arg1 \--* OBJ(16) struct
[000224] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V11 tmp4
[ 1] 29 (0x01d) ret
Inlinee Return expression (before normalization) =>
[000228] ------------ * LCL_VAR struct V12 tmp5
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB12 [0011] 1 1 [000..01E) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000077] -----------
Arguments setup:
Inlinee method body:
[000207] ------------ * STMT void (IL 0x010... ???)
[000205] ------------ | /--* CNS_INT int 0
[000206] IA------R--- \--* ASG struct (init)
[000204] D------N---- \--* LCL_VAR struct V11 tmp4
[000215] ------------ * STMT void (IL 0x010... ???)
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000209] L----------- this in rcx +--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V11 tmp4
[000196] ------------ arg1 +--* FIELD ref _obj
[000194] L----------- | \--* ADDR byref
[000195] ------------ | \--* LCL_VAR struct V04 loc3
[000199] ------------ arg2 +--* FIELD int _result
[000197] L----------- | \--* ADDR byref
[000198] ------------ | \--* LCL_VAR struct V04 loc3
[000202] ------------ arg3 +--* FIELD short _token
[000200] L----------- | \--* ADDR byref
[000201] ------------ | \--* LCL_VAR struct V04 loc3
[000203] ------------ arg4 \--* CNS_INT int 0
[000220] ------------ * STMT void (IL 0x010... ???)
[000218] ------------ | /--* CNS_INT int 0
[000219] IA------R--- \--* ASG struct (init)
[000217] D------N---- \--* LCL_VAR struct V12 tmp5
[000227] ------------ * STMT void (IL 0x010... ???)
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569)
[000222] L----------- this in rcx +--* ADDR byref
[000221] ------------ | \--* LCL_VAR struct V12 tmp5
[000225] x----------- arg1 \--* OBJ(16) struct
[000224] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V11 tmp4
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000077] is
[000228] ------------ /--* LCL_VAR struct V12 tmp5
[000231] -A------R--- * ASG struct (copy)
[000230] D----------- \--* LCL_VAR struct V05 loc4
Successfully inlined ValueTask`1:ConfigureAwait(bool):struct:this (30 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:ConfigureAwait(bool):struct:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000215] in BB03:
[000215] ------------ * STMT void (IL 0x010... ???)
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09)
[000209] L----------- this in rcx +--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V11 tmp4
[000196] ------------ arg1 +--* FIELD ref _obj
[000194] L----------- | \--* ADDR byref
[000195] ------------ | \--* LCL_VAR struct V04 loc3
[000199] ------------ arg2 +--* FIELD int _result
[000197] L----------- | \--* ADDR byref
[000198] ------------ | \--* LCL_VAR struct V04 loc3
[000202] ------------ arg3 +--* FIELD short _token
[000200] L----------- | \--* ADDR byref
[000201] ------------ | \--* LCL_VAR struct V04 loc3
[000203] ------------ arg4 \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000209] L----------- * ADDR byref
[000208] ------------ \--* LCL_VAR struct V11 tmp4
Argument #1: has caller local ref
[000196] ------------ * FIELD ref _obj
[000194] L----------- \--* ADDR byref
[000195] ------------ \--* LCL_VAR struct V04 loc3
Argument #2: has caller local ref
[000199] ------------ * FIELD int _result
[000197] L----------- \--* ADDR byref
[000198] ------------ \--* LCL_VAR struct V04 loc3
Argument #3: has caller local ref
[000202] ------------ * FIELD short _token
[000200] L----------- \--* ADDR byref
[000201] ------------ \--* LCL_VAR struct V04 loc3
Argument #4: is a constant
[000203] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000233] ------------ * CAST int <- bool <- int
[000203] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000233] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:.ctor(ref,int,short,bool):this set to 0x00007FFC6B4C3B09:
Invoking compiler for the inlinee method ValueTask`1:.ctor(ref,int,short,bool):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 02 09 00 0a stfld 0xA000902
IL_0007 02 ldarg.0
IL_0008 04 ldarg.2
IL_0009 7d 01 09 00 0a stfld 0xA000901
IL_000e 02 ldarg.0
IL_000f 05 ldarg.3
IL_0010 7d 04 09 00 0a stfld 0xA000904
IL_0015 02 ldarg.0
IL_0016 0e 04 ldarg.s 0x4
IL_0018 7d 03 09 00 0a stfld 0xA000903
IL_001d 2a ret
INLINER impTokenLookupContextHandle for ValueTask`1:.ctor(ref,int,short,bool):this is 0x00007FFC6B4C3B09.
*************** In fgFindBasicBlocks() for ValueTask`1:.ctor(ref,int,short,bool):this
Jump targets:
none
New Basic Block BB13 [0012] created.
BB13 [000..01E)
Basic block list for 'ValueTask`1:.ctor(ref,int,short,bool):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB13 [0012] 1 1 [000..01E) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ValueTask`1:.ctor(ref,int,short,bool):this
impImportBlockPending for BB13
Importing BB13 (PC=000) of 'ValueTask`1:.ctor(ref,int,short,bool):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 13 (V13 tmp6) called for Inlining Arg.
lvaSetClass: setting class for V13 to (00007FFC6B4A7DB8) Object
[ 2] 2 (0x002) stfld 0A000902
[000240] ------------ * STMT void
[000237] ------------ | /--* LCL_VAR ref V13 tmp6
[000239] -A---------- \--* ASG ref
[000238] -------N---- \--* FIELD ref _obj
[000235] L----------- \--* ADDR byref
[000236] ------------ \--* LCL_VAR struct V11 tmp4
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldarg.2
lvaGrabTemp returning 14 (V14 tmp7) called for Inlining Arg.
[ 2] 9 (0x009) stfld 0A000901
[000246] ------------ * STMT void
[000243] ------------ | /--* LCL_VAR int V14 tmp7
[000245] -A---------- \--* ASG int
[000244] -------N---- \--* FIELD int _result
[000241] L----------- \--* ADDR byref
[000242] ------------ \--* LCL_VAR struct V11 tmp4
[ 0] 14 (0x00e) ldarg.0
[ 1] 15 (0x00f) ldarg.3
lvaGrabTemp returning 15 (V15 tmp8) called for Inlining Arg.
[ 2] 16 (0x010) stfld 0A000904
[000252] ------------ * STMT void
[000249] ------------ | /--* LCL_VAR int V15 tmp8
[000251] -A---------- \--* ASG short
[000250] -------N---- \--* FIELD short _token
[000247] L----------- \--* ADDR byref
[000248] ------------ \--* LCL_VAR struct V11 tmp4
[ 0] 21 (0x015) ldarg.0
[ 1] 22 (0x016) ldarg.s 4
[ 2] 24 (0x018) stfld 0A000903
[000258] ------------ * STMT void
[000255] ------------ | /--* CNS_INT int 0
[000257] -A---------- \--* ASG bool
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext
[000253] L----------- \--* ADDR byref
[000254] ------------ \--* LCL_VAR struct V11 tmp4
[ 0] 29 (0x01d) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB13 [0012] 1 1 [000..01E) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000210] -----------
Arguments setup:
[000261] ------------ * STMT void (IL 0x010... ???)
[000196] ------------ | /--* FIELD ref _obj
[000194] L----------- | | \--* ADDR byref
[000195] ------------ | | \--* LCL_VAR struct V04 loc3
[000260] -A---------- \--* ASG ref
[000259] D------N---- \--* LCL_VAR ref V13 tmp6
[000264] ------------ * STMT void (IL 0x010... ???)
[000199] ------------ | /--* FIELD int _result
[000197] L----------- | | \--* ADDR byref
[000198] ------------ | | \--* LCL_VAR struct V04 loc3
[000263] -A---------- \--* ASG int
[000262] D------N---- \--* LCL_VAR int V14 tmp7
[000267] ------------ * STMT void (IL 0x010... ???)
[000202] ------------ | /--* FIELD short _token
[000200] L----------- | | \--* ADDR byref
[000201] ------------ | | \--* LCL_VAR struct V04 loc3
[000266] -A---------- \--* ASG short
[000265] D------N---- \--* LCL_VAR short V15 tmp8
Inlinee method body:
[000240] ------------ * STMT void (IL 0x010... ???)
[000237] ------------ | /--* LCL_VAR ref V13 tmp6
[000239] -A---------- \--* ASG ref
[000238] -------N---- \--* FIELD ref _obj
[000235] L----------- \--* ADDR byref
[000236] ------------ \--* LCL_VAR struct V11 tmp4
[000246] ------------ * STMT void (IL 0x010... ???)
[000243] ------------ | /--* LCL_VAR int V14 tmp7
[000245] -A---------- \--* ASG int
[000244] -------N---- \--* FIELD int _result
[000241] L----------- \--* ADDR byref
[000242] ------------ \--* LCL_VAR struct V11 tmp4
[000252] ------------ * STMT void (IL 0x010... ???)
[000249] ------------ | /--* LCL_VAR int V15 tmp8
[000251] -A---------- \--* ASG short
[000250] -------N---- \--* FIELD short _token
[000247] L----------- \--* ADDR byref
[000248] ------------ \--* LCL_VAR struct V11 tmp4
[000258] ------------ * STMT void (IL 0x010... ???)
[000255] ------------ | /--* CNS_INT int 0
[000257] -A---------- \--* ASG bool
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext
[000253] L----------- \--* ADDR byref
[000254] ------------ \--* LCL_VAR struct V11 tmp4
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ValueTask`1:.ctor(ref,int,short,bool):this (30 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:.ctor(ref,int,short,bool):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000227] in BB03:
[000227] ------------ * STMT void (IL 0x010... ???)
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569)
[000222] L----------- this in rcx +--* ADDR byref
[000221] ------------ | \--* LCL_VAR struct V12 tmp5
[000225] x----------- arg1 \--* OBJ(16) struct
[000224] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V11 tmp4
thisArg: is a constant is byref to a struct local
[000222] L----------- * ADDR byref
[000221] ------------ \--* LCL_VAR struct V12 tmp5
Argument #1:
[000225] x----------- * OBJ(16) struct
[000224] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V11 tmp4
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:.ctor(struct):this set to 0x00007FFC6B4E2569:
Invoking compiler for the inlinee method ConfiguredValueTaskAwaitable`1:.ctor(struct):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 2b 0c 00 0a stfld 0xA000C2B
IL_0007 2a ret
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:.ctor(struct):this is 0x00007FFC6B4E2569.
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaitable`1:.ctor(struct):this
Jump targets:
none
New Basic Block BB14 [0013] created.
BB14 [000..008)
Basic block list for 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..008) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredValueTaskAwaitable`1:.ctor(struct):this
impImportBlockPending for BB14
Importing BB14 (PC=000) of 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 16 (V16 tmp9) called for Inlining Arg.
[ 2] 2 (0x002) stfld 0A000C2B
[000277] ------------ * STMT void
[000272] ------------ | /--* LCL_VAR struct V16 tmp9
[000276] -A------R--- \--* ASG struct (copy)
[000275] ------------ \--* OBJ(16) struct
[000274] ------------ \--* ADDR byref
[000273] ------------ \--* FIELD struct _value
[000270] L----------- \--* ADDR byref
[000271] ------------ \--* LCL_VAR struct V12 tmp5
[ 0] 7 (0x007) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..008) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000223] -----------
Arguments setup:
[000281] ------------ * STMT void (IL 0x010... ???)
[000225] x----------- | /--* OBJ(16) struct
[000224] L----------- | | \--* ADDR byref
[000216] ------------ | | \--* LCL_VAR struct V11 tmp4
[000280] -A------R--- \--* ASG struct (copy)
[000278] D----------- \--* LCL_VAR struct V16 tmp9
Inlinee method body:
[000277] ------------ * STMT void (IL 0x010... ???)
[000272] ------------ | /--* LCL_VAR struct V16 tmp9
[000276] -A------R--- \--* ASG struct (copy)
[000275] ------------ \--* OBJ(16) struct
[000274] ------------ \--* ADDR byref
[000273] ------------ \--* FIELD struct _value
[000270] L----------- \--* ADDR byref
[000271] ------------ \--* LCL_VAR struct V12 tmp5
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ConfiguredValueTaskAwaitable`1:.ctor(struct):this (8 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000080] with [000231]
[000080] --C--------- * RET_EXPR void (inl return from call [000231])
Inserting the inline return expression
[000228] ------------ /--* LCL_VAR struct V12 tmp5
[000231] -A------R--- * ASG struct (copy)
[000230] D----------- \--* LCL_VAR struct V05 loc4
Expanding INLINE_CANDIDATE in statement [000088] in BB03:
[000088] ------------ * STMT void (IL 0x01A...0x021)
[000087] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC6B4E2569)
[000086] L----------- this in rcx +--* ADDR byref
[000085] ------------ | \--* LCL_VAR struct V05 loc4
[000091] L----------- arg1 \--* ADDR byref
[000090] ------------ \--* LCL_VAR struct V03 loc2
thisArg: is a constant is byref to a struct local
[000086] L----------- * ADDR byref
[000085] ------------ \--* LCL_VAR struct V05 loc4
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this set to 0x00007FFC6B4E2569:
Invoking compiler for the inlinee method ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 2b 0c 00 0a ldfld 0xA000C2B
IL_0006 73 2c 0c 00 0a newobj 0xA000C2C
IL_000b 2a ret
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this is 0x00007FFC6B4E2569.
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this
Jump targets:
none
New Basic Block BB15 [0014] created.
BB15 [000..00C)
Basic block list for 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB15 [0014] 1 1 [000..00C) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this
impImportBlockPending for BB15
Importing BB15 (PC=000) of 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000C2B
[ 1] 6 (0x006) newobj
lvaGrabTemp returning 17 (V17 tmp10) called for NewObj constructor temp.
[000290] ------------ * STMT void
[000288] ------------ | /--* CNS_INT int 0
[000289] IA------R--- \--* ASG struct (init)
[000287] D------N---- \--* LCL_VAR struct V17 tmp10
0A000C2C
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000286] ------------ * FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
resulting tree:
[000295] ---XG------- * OBJ(16) struct
[000294] ------------ \--* ADDR byref
[000286] ------------ \--* FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
[000297] ------------ * STMT void
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9)
[000292] L----------- this in rcx +--* ADDR byref
[000291] ------------ | \--* LCL_VAR struct V17 tmp10
[000295] ---XG------- arg1 \--* OBJ(16) struct
[000294] ------------ \--* ADDR byref
[000286] ------------ \--* FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000298] ------------ * LCL_VAR struct V17 tmp10
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB15 [0014] 1 1 [000..00C) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000087] -----------
Arguments setup:
Inlinee method body:
[000290] ------------ * STMT void (IL 0x01A... ???)
[000288] ------------ | /--* CNS_INT int 0
[000289] IA------R--- \--* ASG struct (init)
[000287] D------N---- \--* LCL_VAR struct V17 tmp10
[000297] ------------ * STMT void (IL 0x01A... ???)
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9)
[000292] L----------- this in rcx +--* ADDR byref
[000291] ------------ | \--* LCL_VAR struct V17 tmp10
[000295] ---XG------- arg1 \--* OBJ(16) struct
[000294] ------------ \--* ADDR byref
[000286] ------------ \--* FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000087] is
[000298] ------------ /--* LCL_VAR struct V17 tmp10
[000301] -A------R--- * ASG struct (copy)
[000300] D----------- \--* LCL_VAR struct V03 loc2
Successfully inlined ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this (12 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000297] in BB03:
[000297] ------------ * STMT void (IL 0x01A... ???)
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9)
[000292] L----------- this in rcx +--* ADDR byref
[000291] ------------ | \--* LCL_VAR struct V17 tmp10
[000295] ---XG------- arg1 \--* OBJ(16) struct
[000294] ------------ \--* ADDR byref
[000286] ------------ \--* FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
thisArg: is a constant is byref to a struct local
[000292] L----------- * ADDR byref
[000291] ------------ \--* LCL_VAR struct V17 tmp10
Argument #1: has global refs has caller local ref has side effects
[000295] ---XG------- * OBJ(16) struct
[000294] ------------ \--* ADDR byref
[000286] ------------ \--* FIELD struct _value
[000284] L----------- \--* ADDR byref
[000285] ------------ \--* LCL_VAR struct V05 loc4
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:.ctor(struct):this set to 0x00007FFC6B4B74F9:
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:.ctor(struct):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 2d 0c 00 0a stfld 0xA000C2D
IL_0007 2a ret
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:.ctor(struct):this is 0x00007FFC6B4B74F9.
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:.ctor(struct):this
Jump targets:
none
New Basic Block BB16 [0015] created.
BB16 [000..008)
Basic block list for 'ConfiguredValueTaskAwaiter:.ctor(struct):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB16 [0015] 1 1 [000..008) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredValueTaskAwaiter:.ctor(struct):this
impImportBlockPending for BB16
Importing BB16 (PC=000) of 'ConfiguredValueTaskAwaiter:.ctor(struct):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
lvaGrabTemp returning 18 (V18 tmp11) called for Inlining Arg.
[ 2] 2 (0x002) stfld 0A000C2D
[000311] ------------ * STMT void
[000306] ------------ | /--* LCL_VAR struct V18 tmp11
[000310] -A------R--- \--* ASG struct (copy)
[000309] ------------ \--* OBJ(16) struct
[000308] ------------ \--* ADDR byref
[000307] ------------ \--* FIELD struct _value
[000304] L----------- \--* ADDR byref
[000305] ------------ \--* LCL_VAR struct V17 tmp10
[ 0] 7 (0x007) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB16 [0015] 1 1 [000..008) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000293] -----------
Arguments setup:
[000315] ------------ * STMT void (IL 0x01A... ???)
[000295] ---XG------- | /--* OBJ(16) struct
[000294] ------------ | | \--* ADDR byref
[000286] ------------ | | \--* FIELD struct _value
[000284] L----------- | | \--* ADDR byref
[000285] ------------ | | \--* LCL_VAR struct V05 loc4
[000314] -A-XG---R--- \--* ASG struct (copy)
[000312] D----------- \--* LCL_VAR struct V18 tmp11
Inlinee method body:
[000311] ------------ * STMT void (IL 0x01A... ???)
[000306] ------------ | /--* LCL_VAR struct V18 tmp11
[000310] -A------R--- \--* ASG struct (copy)
[000309] ------------ \--* OBJ(16) struct
[000308] ------------ \--* ADDR byref
[000307] ------------ \--* FIELD struct _value
[000304] L----------- \--* ADDR byref
[000305] ------------ \--* LCL_VAR struct V17 tmp10
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ConfiguredValueTaskAwaiter:.ctor(struct):this (8 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:.ctor(struct):this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000089] with [000301]
[000089] --C--------- * RET_EXPR void (inl return from call [000301])
Inserting the inline return expression
[000298] ------------ /--* LCL_VAR struct V17 tmp10
[000301] -A------R--- * ASG struct (copy)
[000300] D----------- \--* LCL_VAR struct V03 loc2
Expanding INLINE_CANDIDATE in statement [000097] in BB03:
[000097] ------------ * STMT void (IL 0x022...0x029)
[000096] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC6B4B74F9)
[000095] L----------- this in rcx \--* ADDR byref
[000094] ------------ \--* LCL_VAR struct V03 loc2
thisArg: is a constant is byref to a struct local
[000095] L----------- * ADDR byref
[000094] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this set to 0x00007FFC6B4B74F9:
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7c 2d 0c 00 0a ldflda 0xA000C2D
IL_0006 28 2e 0c 00 0a call 0xA000C2E
IL_000b 2a ret
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this is 0x00007FFC6B4B74F9.
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this
Jump targets:
none
New Basic Block BB17 [0016] created.
BB17 [000..00C)
Basic block list for 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB17 [0016] 1 1 [000..00C) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this
impImportBlockPending for BB17
Importing BB17 (PC=000) of 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldflda 0A000C2D
[ 1] 6 (0x006) call 0A000C2E
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000323] ------------ * STMT void
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09)
[000321] ------------ this in rcx \--* ADDR byref
[000320] ------------ \--* FIELD struct _value
[000318] L----------- \--* ADDR byref
[000319] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000324] --C--------- * RET_EXPR int (inl return from call [000322])
Inlinee Return expression (after normalization) =>
[000325] --C--------- * CAST int <- bool <- int
[000324] --C--------- \--* RET_EXPR int (inl return from call [000322])
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB17 [0016] 1 1 [000..00C) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000096] -----------
Arguments setup:
Inlinee method body:
[000323] ------------ * STMT void (IL 0x022... ???)
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09)
[000321] ------------ this in rcx \--* ADDR byref
[000320] ------------ \--* FIELD struct _value
[000318] L----------- \--* ADDR byref
[000319] ------------ \--* LCL_VAR struct V03 loc2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000096] is
[000325] --C--------- * CAST int <- bool <- int
[000324] --C--------- \--* RET_EXPR int (inl return from call [000322])
Successfully inlined ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this (12 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000323] in BB03:
[000323] ------------ * STMT void (IL 0x022... ???)
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09)
[000321] ------------ this in rcx \--* ADDR byref
[000320] ------------ \--* FIELD struct _value
[000318] L----------- \--* ADDR byref
[000319] ------------ \--* LCL_VAR struct V03 loc2
thisArg: has caller local ref is byref to a struct local
[000321] ------------ * ADDR byref
[000320] ------------ \--* FIELD struct _value
[000318] L----------- \--* ADDR byref
[000319] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:get_IsCompleted():bool:this set to 0x00007FFC6B4C3B09:
Invoking compiler for the inlinee method ValueTask`1:get_IsCompleted():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 02 09 00 0a ldfld 0xA000902
IL_0006 0a stloc.0
IL_0007 06 ldloc.0
IL_0008 2d 02 brtrue.s 2 (IL_000c)
IL_000a 17 ldc.i4.1
IL_000b 2a ret
IL_000c 06 ldloc.0
IL_000d 75 ae 02 00 1b isinst 0x1B0002AE
IL_0012 25 dup
IL_0013 0b stloc.1
IL_0014 2c 07 brfalse.s 7 (IL_001d)
IL_0016 07 ldloc.1
IL_0017 6f e5 29 00 06 callvirt 0x60029E5
IL_001c 2a ret
IL_001d 06 ldloc.0
IL_001e 28 53 02 00 2b call 0x2B000253
IL_0023 02 ldarg.0
IL_0024 7b 04 09 00 0a ldfld 0xA000904
IL_0029 6f 0a 09 00 0a callvirt 0xA00090A
IL_002e 16 ldc.i4.0
IL_002f fe 03 cgt.un
IL_0031 2a ret
INLINER impTokenLookupContextHandle for ValueTask`1:get_IsCompleted():bool:this is 0x00007FFC6B4C3B09.
*************** In fgFindBasicBlocks() for ValueTask`1:get_IsCompleted():bool:this
Jump targets:
IL_000c
IL_001d
New Basic Block BB18 [0017] created.
BB18 [000..00A)
New Basic Block BB19 [0018] created.
BB19 [00A..00C)
New Basic Block BB20 [0019] created.
BB20 [00C..016)
New Basic Block BB21 [0020] created.
BB21 [016..01D)
New Basic Block BB22 [0021] created.
BB22 [01D..032)
lvaGrabTemp returning 19 (V19 tmp12) (a long lifetime temp) called for Inline return value spill temp.
Basic block list for 'ValueTask`1:get_IsCompleted():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 1 [000..00A)-> BB20 ( cond )
BB19 [0018] 1 1 [00A..00C) (return)
BB20 [0019] 1 1 [00C..016)-> BB22 ( cond )
BB21 [0020] 1 1 [016..01D) (return)
BB22 [0021] 1 1 [01D..032) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ValueTask`1:get_IsCompleted():bool:this
impImportBlockPending for BB18
Importing BB18 (PC=000) of 'ValueTask`1:get_IsCompleted():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000902
[ 1] 6 (0x006) stloc.0
lvaGrabTemp returning 20 (V20 tmp13) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V20 to (00007FFC6B4A7DB8) Object
[000335] ------------ * STMT void
[000332] ----G------- | /--* FIELD ref _obj
[000328] ----G------- | | \--* ADDR byref
[000329] ----G------- | | \--* FIELD struct _value
[000330] L----------- | | \--* ADDR byref
[000331] ------------ | | \--* LCL_VAR struct V03 loc2
[000334] -A--G------- \--* ASG ref
[000333] D------N---- \--* LCL_VAR ref V20 tmp13
[ 0] 7 (0x007) ldloc.0
[ 1] 8 (0x008) brtrue.s
[000340] ------------ * STMT void
[000339] ------------ \--* JTRUE void
[000337] ------------ | /--* CNS_INT ref null
[000338] ------------ \--* NE int
[000336] ------------ \--* LCL_VAR ref V20 tmp13
impImportBlockPending for BB19
impImportBlockPending for BB20
Importing BB20 (PC=012) of 'ValueTask`1:get_IsCompleted():bool:this'
[ 0] 12 (0x00c) ldloc.0
[ 1] 13 (0x00d) isinst 1B0002AE
Considering optimization of isinst from 00007FFC6B4A7DB8 (Object) to 00007FFC6B4AFBD8 (Task`1)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 18 (0x012) dup
lvaGrabTemp returning 21 (V21 tmp14) called for dup spill.
[000349] ------------ * STMT void
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13
[000348] -AC-G------- \--* ASG ref
[000347] D------N---- \--* LCL_VAR ref V21 tmp14
[ 2] 19 (0x013) stloc.1
lvaGrabTemp returning 22 (V22 tmp15) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V22 to (00007FFC6B4AFBD8) Task`1
[000354] ------------ * STMT void
[000351] ------------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---------- \--* ASG ref
[000352] D------N---- \--* LCL_VAR ref V22 tmp15
[ 1] 20 (0x014) brfalse.s
[000358] ------------ * STMT void
[000357] ------------ \--* JTRUE void
[000355] ------------ | /--* CNS_INT ref null
[000356] ------------ \--* EQ int
[000350] ------------ \--* LCL_VAR ref V21 tmp14
impImportBlockPending for BB21
impImportBlockPending for BB22
Importing BB22 (PC=029) of 'ValueTask`1:get_IsCompleted():bool:this'
[ 0] 29 (0x01d) ldloc.0
[ 1] 30 (0x01e) call 2B000253
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[000365] ------------ * STMT void
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13
[ 1] 35 (0x023) ldarg.0
[ 2] 36 (0x024) ldfld 0A000904
[ 2] 41 (0x029) callvirt 0A00090A
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is int, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is __Canon (attrib 20020000)
base method is IValueTaskSource`1::GetStatus
--- base class is interface
--- no derived method, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'ValueTask`1:get_IsCompleted():bool:this' calling 'IValueTaskSource`1:GetStatus(short):int:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 46 (0x02e) ldc.i4.0 0
[ 2] 47 (0x02f) cgt.un
[ 1] 49 (0x031) ret
Inlinee Return expression (before normalization) =>
[000374] ------------ /--* CNS_INT int 0
[000375] N-C-G----U-- * GT int
[000372] --C-G------- \--* CALLV stub int IValueTaskSource`1.GetStatus
[000366] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000361])
[000371] ----G------- arg1 \--* FIELD short _token
[000367] ----G------- \--* ADDR byref
[000368] ----G------- \--* FIELD struct _value
[000369] L----------- \--* ADDR byref
[000370] ------------ \--* LCL_VAR struct V03 loc2
[000378] ------------ * STMT void
[000374] ------------ | /--* CNS_INT int 0
[000375] N-C-G----U-- | /--* GT int
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000366] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000361])
[000371] ----G------- arg1 | | \--* FIELD short _token
[000367] ----G------- | | \--* ADDR byref
[000368] ----G------- | | \--* FIELD struct _value
[000369] L----------- | | \--* ADDR byref
[000370] ------------ | | \--* LCL_VAR struct V03 loc2
[000377] -AC-G------- \--* ASG bool
[000376] D------N---- \--* LCL_VAR bool V19 tmp12
Inlinee Return expression (after normalization) =>
[000379] ------------ * LCL_VAR int V19 tmp12
Importing BB21 (PC=022) of 'ValueTask`1:get_IsCompleted():bool:this'
[ 0] 22 (0x016) ldloc.1
[ 1] 23 (0x017) callvirt 060029E5
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0
[000383] ------------ * STMT void
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1)
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15
[ 1] 28 (0x01c) ret
Inlinee Return expression (before normalization) =>
[000384] --C--------- * RET_EXPR int (inl return from call [000382])
[000388] ------------ * STMT void
[000385] --C--------- | /--* CAST int <- bool <- int
[000384] --C--------- | | \--* RET_EXPR int (inl return from call [000382])
[000387] -AC--------- \--* ASG bool
[000386] D------N---- \--* LCL_VAR bool V19 tmp12
Inlinee Return expression (after normalization) =>
[000389] ------------ * LCL_VAR int V19 tmp12
Importing BB19 (PC=010) of 'ValueTask`1:get_IsCompleted():bool:this'
[ 0] 10 (0x00a) ldc.i4.1 1
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000391] ------------ * CNS_INT int 1
[000395] ------------ * STMT void
[000392] ------------ | /--* CAST int <- bool <- int
[000391] ------------ | | \--* CNS_INT int 1
[000394] -A---------- \--* ASG bool
[000393] D------N---- \--* LCL_VAR bool V19 tmp12
Inlinee Return expression (after normalization) =>
[000396] ------------ * LCL_VAR int V19 tmp12
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 1 [000..00A)-> BB20 ( cond ) i
BB19 [0018] 1 1 [00A..00C) (return) i
BB20 [0019] 1 1 [00C..016)-> BB22 ( cond ) i
BB21 [0020] 1 1 [016..01D) (return) i
BB22 [0021] 1 1 [01D..032) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000322] -----------
Arguments setup:
Inlinee method body:New Basic Block BB23 [0022] created.
Convert bbJumpKind of BB19 to BBJ_ALWAYS to bottomBlock BB23
Convert bbJumpKind of BB21 to BBJ_ALWAYS to bottomBlock BB23
Convert bbJumpKind of BB22 to BBJ_NONE
fgInlineAppendStatements: nulling out gc ref inlinee locals.
[000400] ------------ * STMT void (IL 0x022... ???)
[000397] ------------ | /--* CNS_INT ref null
[000399] -A---------- \--* ASG ref
[000398] D------N---- \--* LCL_VAR ref V20 tmp13
[000404] ------------ * STMT void (IL 0x022... ???)
[000401] ------------ | /--* CNS_INT ref null
[000403] -A---------- \--* ASG ref
[000402] D------N---- \--* LCL_VAR ref V22 tmp15
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB18 [022..023) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18, stmt 1
[000335] ------------ * STMT void (IL 0x022... ???)
[000332] ----G------- | /--* FIELD ref _obj
[000328] ----G------- | | \--* ADDR byref
[000329] ----G------- | | \--* FIELD struct _value
[000330] L----------- | | \--* ADDR byref
[000331] ------------ | | \--* LCL_VAR struct V03 loc2
[000334] -A--G------- \--* ASG ref
[000333] D------N---- \--* LCL_VAR ref V20 tmp13
***** BB18, stmt 2
[000340] ------------ * STMT void (IL 0x022... ???)
[000339] ------------ \--* JTRUE void
[000337] ------------ | /--* CNS_INT ref null
[000338] ------------ \--* NE int
[000336] ------------ \--* LCL_VAR ref V20 tmp13
------------ BB19 [022..023) -> BB23 (always), preds={} succs={BB23}
***** BB19, stmt 3
[000395] ------------ * STMT void (IL 0x022... ???)
[000392] ------------ | /--* CAST int <- bool <- int
[000391] ------------ | | \--* CNS_INT int 1
[000394] -A---------- \--* ASG bool
[000393] D------N---- \--* LCL_VAR bool V19 tmp12
------------ BB20 [022..023) -> BB22 (cond), preds={} succs={BB21,BB22}
***** BB20, stmt 4
[000349] ------------ * STMT void (IL 0x022... ???)
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13
[000348] -AC-G------- \--* ASG ref
[000347] D------N---- \--* LCL_VAR ref V21 tmp14
***** BB20, stmt 5
[000354] ------------ * STMT void (IL 0x022... ???)
[000351] ------------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---------- \--* ASG ref
[000352] D------N---- \--* LCL_VAR ref V22 tmp15
***** BB20, stmt 6
[000358] ------------ * STMT void (IL 0x022... ???)
[000357] ------------ \--* JTRUE void
[000355] ------------ | /--* CNS_INT ref null
[000356] ------------ \--* EQ int
[000350] ------------ \--* LCL_VAR ref V21 tmp14
------------ BB21 [022..023) -> BB23 (always), preds={} succs={BB23}
***** BB21, stmt 7
[000383] ------------ * STMT void (IL 0x022... ???)
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1)
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15
***** BB21, stmt 8
[000388] ------------ * STMT void (IL 0x022... ???)
[000385] --C--------- | /--* CAST int <- bool <- int
[000384] --C--------- | | \--* RET_EXPR int (inl return from call [000382])
[000387] -AC--------- \--* ASG bool
[000386] D------N---- \--* LCL_VAR bool V19 tmp12
------------ BB22 [022..023), preds={} succs={BB23}
***** BB22, stmt 9
[000365] ------------ * STMT void (IL 0x022... ???)
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13
***** BB22, stmt 10
[000378] ------------ * STMT void (IL 0x022... ???)
[000374] ------------ | /--* CNS_INT int 0
[000375] N-C-G----U-- | /--* GT int
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000366] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000361])
[000371] ----G------- arg1 | | \--* FIELD short _token
[000367] ----G------- | | \--* ADDR byref
[000368] ----G------- | | \--* FIELD struct _value
[000369] L----------- | | \--* ADDR byref
[000370] ------------ | | \--* LCL_VAR struct V03 loc2
[000377] -AC-G------- \--* ASG bool
[000376] D------N---- \--* LCL_VAR bool V19 tmp12
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000322] is
[000396] ------------ * LCL_VAR int V19 tmp12
Successfully inlined ValueTask`1:get_IsCompleted():bool:this (50 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:get_IsCompleted():bool:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000383] in BB21:
[000383] ------------ * STMT void (IL 0x022... ???)
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1)
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15
thisArg: is a local var
[000381] ------------ * LCL_VAR ref V22 tmp15
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsCompleted():bool:this set to 0x00007FFC6B4AFAC1:
Invoking compiler for the inlinee method Task:get_IsCompleted():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 fe 13 volatile.
IL_0003 7b fb 0d 00 04 ldfld 0x4000DFB
IL_0008 0a stloc.0
IL_0009 06 ldloc.0
IL_000a 28 e6 29 00 06 call 0x60029E6
IL_000f 2a ret
INLINER impTokenLookupContextHandle for Task:get_IsCompleted():bool:this is 0x00007FFC6B4AFAC1.
*************** In fgFindBasicBlocks() for Task:get_IsCompleted():bool:this
Jump targets:
none
New Basic Block BB24 [0023] created.
BB24 [000..010)
Basic block list for 'Task:get_IsCompleted():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..010) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:get_IsCompleted():bool:this
impImportBlockPending for BB24
Importing BB24 (PC=000) of 'Task:get_IsCompleted():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) volatile.ldfld 04000DFB
[ 1] 8 (0x008) stloc.0
lvaGrabTemp returning 23 (V23 tmp16) (a long lifetime temp) called for Inline stloc first use temp.
[000410] ------------ * STMT void
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XGO------ \--* ASG int
[000408] D------N---- \--* LCL_VAR int V23 tmp16
[ 0] 9 (0x009) ldloc.0
[ 1] 10 (0x00a) call 060029E6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000414] ------------ * STMT void
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1)
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16
[ 1] 15 (0x00f) ret
Inlinee Return expression (before normalization) =>
[000415] --C--------- * RET_EXPR int (inl return from call [000412])
Inlinee Return expression (after normalization) =>
[000416] --C--------- * CAST int <- bool <- int
[000415] --C--------- \--* RET_EXPR int (inl return from call [000412])
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..010) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000382] -----------
Arguments setup:
Inlinee method body:
[000410] ------------ * STMT void (IL 0x022... ???)
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XGO------ \--* ASG int
[000408] D------N---- \--* LCL_VAR int V23 tmp16
[000414] ------------ * STMT void (IL 0x022... ???)
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1)
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000382] is
[000416] --C--------- * CAST int <- bool <- int
[000415] --C--------- \--* RET_EXPR int (inl return from call [000412])
Successfully inlined Task:get_IsCompleted():bool:this (16 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:get_IsCompleted():bool:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000414] in BB21:
[000414] ------------ * STMT void (IL 0x022... ???)
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1)
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16
Argument #0: is a local var
[000411] ------------ * LCL_VAR int V23 tmp16
INLINER: inlineInfo.tokenLookupContextHandle for Task:IsCompletedMethod(int):bool set to 0x00007FFC6B4AFAC1:
Invoking compiler for the inlinee method Task:IsCompletedMethod(int):bool :
IL to import:
IL_0000 02 ldarg.0
IL_0001 20 00 00 60 01 ldc.i4 0x1600000
IL_0006 5f and
IL_0007 16 ldc.i4.0
IL_0008 fe 03 cgt.un
IL_000a 2a ret
INLINER impTokenLookupContextHandle for Task:IsCompletedMethod(int):bool is 0x00007FFC6B4AFAC1.
*************** In fgFindBasicBlocks() for Task:IsCompletedMethod(int):bool
Jump targets:
none
New Basic Block BB25 [0024] created.
BB25 [000..00B)
Basic block list for 'Task:IsCompletedMethod(int):bool'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB25 [0024] 1 1 [000..00B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:IsCompletedMethod(int):bool
impImportBlockPending for BB25
Importing BB25 (PC=000) of 'Task:IsCompletedMethod(int):bool'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldc.i4 23068672
[ 2] 6 (0x006) and
[ 1] 7 (0x007) ldc.i4.0 0
[ 2] 8 (0x008) cgt.un
[ 1] 10 (0x00a) ret
Inlinee Return expression (before normalization) =>
[000421] ------------ /--* CNS_INT int 0
[000422] N--------U-- * GT int
[000419] ------------ | /--* CNS_INT int 0x1600000
[000420] ------------ \--* AND int
[000411] ------------ \--* LCL_VAR int V23 tmp16
Inlinee Return expression (after normalization) =>
[000421] ------------ /--* CNS_INT int 0
[000422] N--------U-- * GT int
[000419] ------------ | /--* CNS_INT int 0x1600000
[000420] ------------ \--* AND int
[000411] ------------ \--* LCL_VAR int V23 tmp16
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB25 [0024] 1 1 [000..00B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000412] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000412] is
[000421] ------------ /--* CNS_INT int 0
[000422] N--------U-- * GT int
[000419] ------------ | /--* CNS_INT int 0x1600000
[000420] ------------ \--* AND int
[000411] ------------ \--* LCL_VAR int V23 tmp16
Successfully inlined Task:IsCompletedMethod(int):bool (11 IL bytes) (depth 4) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:IsCompletedMethod(int):bool'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000384] with [000416]
[000384] --C--------- * RET_EXPR int (inl return from call [000416])
Inserting the inline return expression
[000416] --C--------- * CAST int <- bool <- int
[000415] --C--------- \--* RET_EXPR int (inl return from call [000422])
Replacing the return expression placeholder [000415] with [000422]
[000415] --C--------- * RET_EXPR int (inl return from call [000422])
Inserting the inline return expression
[000421] ------------ /--* CNS_INT int 0
[000422] N--------U-- * GT int
[000419] ------------ | /--* CNS_INT int 0x1600000
[000420] ------------ \--* AND int
[000411] ------------ \--* LCL_VAR int V23 tmp16
Expanding INLINE_CANDIDATE in statement [000365] in BB22:
[000365] ------------ * STMT void (IL 0x022... ???)
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13
Argument #0: is a local var
[000360] ------------ * LCL_VAR ref V20 tmp13
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEEA8:
Invoking compiler for the inlinee method Unsafe:As(ref):ref :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEEA8.
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref
Jump targets:
none
New Basic Block BB26 [0025] created.
BB26 [000..002)
Basic block list for 'Unsafe:As(ref):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB26 [0025] 1 1 [000..002) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Unsafe:As(ref):ref
impImportBlockPending for BB26
Importing BB26 (PC=000) of 'Unsafe:As(ref):ref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000360] ------------ * LCL_VAR ref V20 tmp13
Inlinee Return expression (after normalization) =>
[000360] ------------ * LCL_VAR ref V20 tmp13
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB26 [0025] 1 1 [000..002) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000361] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000361] is
[000360] ------------ * LCL_VAR ref V20 tmp13
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000366] with [000360]
[000366] --C--------- * RET_EXPR ref (inl return from call [000360])
Inserting the inline return expression
[000360] ------------ * LCL_VAR ref V20 tmp13
**** Late devirt opportunity
[000372] --C-G------- * CALLV stub int IValueTaskSource`1.GetStatus
[000360] ------------ this in rcx +--* LCL_VAR ref V20 tmp13
[000371] ----G------- arg1 \--* FIELD short _token
[000367] ----G------- \--* ADDR byref
[000368] ----G------- \--* FIELD struct _value
[000369] L----------- \--* ADDR byref
[000370] ------------ \--* LCL_VAR struct V03 loc2
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Object (attrib 20000000)
base method is IValueTaskSource`1::GetStatus
--- base class is interface
--- no derived method, sorry
Replacing the return expression placeholder [000098] with [000325]
[000098] --C--------- * RET_EXPR int (inl return from call [000325])
Inserting the inline return expression
[000325] --C--------- * CAST int <- bool <- int
[000324] --C--------- \--* RET_EXPR int (inl return from call [000396])
Replacing the return expression placeholder [000324] with [000396]
[000324] --C--------- * RET_EXPR int (inl return from call [000396])
Inserting the inline return expression
[000396] ------------ * LCL_VAR int V19 tmp12
Expanding INLINE_CANDIDATE in statement [000129] in BB04:
[000129] ------------ * STMT void (IL 0x03B...0x049)
[000126] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted (exactContextHnd=0x00007FFC0D5C6140)
[000122] ---XG------- this in rcx +--* ADDR byref
[000121] ---XG------- | \--* FIELD struct <>t__builder
[000120] ------------ | \--* LCL_VAR byref V00 this
[000124] L----------- arg1 +--* ADDR byref
[000123] ------------ | \--* LCL_VAR struct V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
thisArg: has global refs has side effects
[000122] ---XG------- * ADDR byref
[000121] ---XG------- \--* FIELD struct <>t__builder
[000120] ------------ \--* LCL_VAR byref V00 this
Argument #1: is a constant is byref to a struct local
[000124] L----------- * ADDR byref
[000123] ------------ \--* LCL_VAR struct V03 loc2
Argument #2: is a local var
[000125] ------------ * LCL_VAR byref V00 this
INLINER: inlineInfo.tokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this set to 0x00007FFC0D5C6140:
Invoking compiler for the inlinee method AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 17 ldc.i4.1
IL_0002 7d 23 0c 00 0a stfld 0xA000C23
IL_0007 02 ldarg.0
IL_0008 7c 21 0c 00 0a ldflda 0xA000C21
IL_000d 03 ldarg.1
IL_000e 04 ldarg.2
IL_000f 28 56 03 00 2b call 0x2B000356
IL_0014 2a ret
INLINER impTokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this is 0x00007FFC0D5C6140.
*************** In fgFindBasicBlocks() for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this
weight= 10 : state 3 [ ldarg.0 ]
weight= 28 : state 24 [ ldc.i4.1 ]
weight= 31 : state 111 [ stfld ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 17 : state 110 [ ldflda ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 35 : state 5 [ ldarg.2 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
Inline candidate looks like a wrapper method. Multiplier increased to 1.
Inline candidate is mostly loads and stores. Multiplier increased to 4.
Inline candidate callsite is boring. Multiplier increased to 5.3.
calleeNativeSizeEstimate=245
callsiteNativeSizeEstimate=145
benefit multiplier=5.3
threshold=768
Native estimate for function size is within threshold for inlining 24.5 <= 76.8 (multiplier = 5.3)
Jump targets:
none
New Basic Block BB27 [0026] created.
BB27 [000..015)
Basic block list for 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB27 [0026] 1 1 [000..015) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this
impImportBlockPending for BB27
Importing BB27 (PC=000) of 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 24 (V24 tmp17) called for Inlining Arg.
[ 1] 1 (0x001) ldc.i4.1 1
[ 2] 2 (0x002) stfld 0A000C23
[000431] ------------ * STMT void
[000428] ------------ | /--* CNS_INT int 1
[000430] -A-XG------- \--* ASG bool
[000429] ---XG--N---- \--* FIELD bool _useBuilder
[000427] ------------ \--* LCL_VAR byref V24 tmp17
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldflda 0A000C21
[ 1] 13 (0x00d) ldarg.1
[ 2] 14 (0x00e) ldarg.2
[ 3] 15 (0x00f) call 2B000356
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling' for 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' calling 'AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this'
INLINER: Marking AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this as NOINLINE because of has exception handling
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling'
[000440] ------------ * STMT void
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000434] ---XG------- this in rcx +--* ADDR byref
[000433] ---XG------- | \--* FIELD struct _methodBuilder
[000432] ------------ | \--* LCL_VAR byref V24 tmp17
[000435] L----------- arg1 +--* ADDR byref
[000436] ------------ | \--* LCL_VAR struct V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
[ 0] 20 (0x014) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB27 [0026] 1 1 [000..015) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000126] -----------
Arguments setup:
[000443] ------------ * STMT void (IL 0x03B... ???)
[000122] ---XG------- | /--* ADDR byref
[000121] ---XG------- | | \--* FIELD struct <>t__builder
[000120] ------------ | | \--* LCL_VAR byref V00 this
[000442] -A-XG------- \--* ASG byref
[000441] D------N---- \--* LCL_VAR byref V24 tmp17
Inlinee method body:
[000431] ------------ * STMT void (IL 0x03B... ???)
[000428] ------------ | /--* CNS_INT int 1
[000430] -A-XG------- \--* ASG bool
[000429] ---XG--N---- \--* FIELD bool _useBuilder
[000427] ------------ \--* LCL_VAR byref V24 tmp17
[000440] ------------ * STMT void (IL 0x03B... ???)
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000434] ---XG------- this in rcx +--* ADDR byref
[000433] ---XG------- | \--* FIELD struct _methodBuilder
[000432] ------------ | \--* LCL_VAR byref V24 tmp17
[000435] L----------- arg1 +--* ADDR byref
[000436] ------------ | \--* LCL_VAR struct V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this (21 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000045] in BB06:
[000045] ------------ * STMT void (IL 0x067...0x06E)
[000044] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.GetResult (exactContextHnd=0x00007FFC6B4B74F9)
[000043] L----------- this in rcx \--* ADDR byref
[000042] ------------ \--* LCL_VAR struct V03 loc2
thisArg: is a constant is byref to a struct local
[000043] L----------- * ADDR byref
[000042] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:GetResult():int:this set to 0x00007FFC6B4B74F9:
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:GetResult():int:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7c 2d 0c 00 0a ldflda 0xA000C2D
IL_0006 28 13 09 00 0a call 0xA000913
IL_000b 2a ret
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:GetResult():int:this is 0x00007FFC6B4B74F9.
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:GetResult():int:this
Jump targets:
none
New Basic Block BB28 [0027] created.
BB28 [000..00C)
Basic block list for 'ConfiguredValueTaskAwaiter:GetResult():int:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB28 [0027] 1 1 [000..00C) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredValueTaskAwaiter:GetResult():int:this
impImportBlockPending for BB28
Importing BB28 (PC=000) of 'ConfiguredValueTaskAwaiter:GetResult():int:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldflda 0A000C2D
[ 1] 6 (0x006) call 0A000913
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000451] ------------ * STMT void
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09)
[000449] ------------ this in rcx \--* ADDR byref
[000448] ------------ \--* FIELD struct _value
[000446] L----------- \--* ADDR byref
[000447] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000452] --C--------- * RET_EXPR int (inl return from call [000450])
Inlinee Return expression (after normalization) =>
[000452] --C--------- * RET_EXPR int (inl return from call [000450])
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB28 [0027] 1 1 [000..00C) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000044] -----------
Arguments setup:
Inlinee method body:
[000451] ------------ * STMT void (IL 0x067... ???)
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09)
[000449] ------------ this in rcx \--* ADDR byref
[000448] ------------ \--* FIELD struct _value
[000446] L----------- \--* ADDR byref
[000447] ------------ \--* LCL_VAR struct V03 loc2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000044] is
[000452] --C--------- * RET_EXPR int (inl return from call [000450])
Successfully inlined ConfiguredValueTaskAwaiter:GetResult():int:this (12 IL bytes) (depth 1) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:GetResult():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000451] in BB06:
[000451] ------------ * STMT void (IL 0x067... ???)
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09)
[000449] ------------ this in rcx \--* ADDR byref
[000448] ------------ \--* FIELD struct _value
[000446] L----------- \--* ADDR byref
[000447] ------------ \--* LCL_VAR struct V03 loc2
thisArg: has caller local ref is byref to a struct local
[000449] ------------ * ADDR byref
[000448] ------------ \--* FIELD struct _value
[000446] L----------- \--* ADDR byref
[000447] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:get_Result():int:this set to 0x00007FFC6B4C3B09:
Invoking compiler for the inlinee method ValueTask`1:get_Result():int:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 02 09 00 0a ldfld 0xA000902
IL_0006 0a stloc.0
IL_0007 06 ldloc.0
IL_0008 2d 07 brtrue.s 7 (IL_0011)
IL_000a 02 ldarg.0
IL_000b 7b 01 09 00 0a ldfld 0xA000901
IL_0010 2a ret
IL_0011 06 ldloc.0
IL_0012 75 ae 02 00 1b isinst 0x1B0002AE
IL_0017 25 dup
IL_0018 0b stloc.1
IL_0019 2c 0d brfalse.s 13 (IL_0028)
IL_001b 07 ldloc.1
IL_001c 28 c2 50 00 06 call 0x60050C2
IL_0021 07 ldloc.1
IL_0022 6f 0e 09 00 0a callvirt 0xA00090E
IL_0027 2a ret
IL_0028 06 ldloc.0
IL_0029 28 53 02 00 2b call 0x2B000253
IL_002e 02 ldarg.0
IL_002f 7b 04 09 00 0a ldfld 0xA000904
IL_0034 6f 0b 09 00 0a callvirt 0xA00090B
IL_0039 2a ret
INLINER impTokenLookupContextHandle for ValueTask`1:get_Result():int:this is 0x00007FFC6B4C3B09.
*************** In fgFindBasicBlocks() for ValueTask`1:get_Result():int:this
Jump targets:
IL_0011
IL_0028
New Basic Block BB29 [0028] created.
BB29 [000..00A)
New Basic Block BB30 [0029] created.
BB30 [00A..011)
New Basic Block BB31 [0030] created.
BB31 [011..01B)
New Basic Block BB32 [0031] created.
BB32 [01B..028)
New Basic Block BB33 [0032] created.
BB33 [028..03A)
lvaGrabTemp returning 25 (V25 tmp18) (a long lifetime temp) called for Inline return value spill temp.
Basic block list for 'ValueTask`1:get_Result():int:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB29 [0028] 1 1 [000..00A)-> BB31 ( cond )
BB30 [0029] 1 1 [00A..011) (return)
BB31 [0030] 1 1 [011..01B)-> BB33 ( cond )
BB32 [0031] 1 1 [01B..028) (return)
BB33 [0032] 1 1 [028..03A) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ValueTask`1:get_Result():int:this
impImportBlockPending for BB29
Importing BB29 (PC=000) of 'ValueTask`1:get_Result():int:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000902
[ 1] 6 (0x006) stloc.0
lvaGrabTemp returning 26 (V26 tmp19) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V26 to (00007FFC6B4A7DB8) Object
[000462] ------------ * STMT void
[000459] ----G------- | /--* FIELD ref _obj
[000455] ----G------- | | \--* ADDR byref
[000456] ----G------- | | \--* FIELD struct _value
[000457] L----------- | | \--* ADDR byref
[000458] ------------ | | \--* LCL_VAR struct V03 loc2
[000461] -A--G------- \--* ASG ref
[000460] D------N---- \--* LCL_VAR ref V26 tmp19
[ 0] 7 (0x007) ldloc.0
[ 1] 8 (0x008) brtrue.s
[000467] ------------ * STMT void
[000466] ------------ \--* JTRUE void
[000464] ------------ | /--* CNS_INT ref null
[000465] ------------ \--* NE int
[000463] ------------ \--* LCL_VAR ref V26 tmp19
impImportBlockPending for BB30
impImportBlockPending for BB31
Importing BB31 (PC=017) of 'ValueTask`1:get_Result():int:this'
[ 0] 17 (0x011) ldloc.0
[ 1] 18 (0x012) isinst 1B0002AE
Considering optimization of isinst from 00007FFC6B4A7DB8 (Object) to 00007FFC6B4AFBD8 (Task`1)
Can't optimize since fromClass is inexact
Expanding isinst as call because inline expansion not legal
[ 1] 23 (0x017) dup
lvaGrabTemp returning 27 (V27 tmp20) called for dup spill.
[000476] ------------ * STMT void
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19
[000475] -AC-G------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp20
[ 2] 24 (0x018) stloc.1
lvaGrabTemp returning 28 (V28 tmp21) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V28 to (00007FFC6B4AFBD8) Task`1
[000481] ------------ * STMT void
[000478] ------------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---------- \--* ASG ref
[000479] D------N---- \--* LCL_VAR ref V28 tmp21
[ 1] 25 (0x019) brfalse.s
[000485] ------------ * STMT void
[000484] ------------ \--* JTRUE void
[000482] ------------ | /--* CNS_INT ref null
[000483] ------------ \--* EQ int
[000477] ------------ \--* LCL_VAR ref V27 tmp20
impImportBlockPending for BB32
impImportBlockPending for BB33
Importing BB33 (PC=040) of 'ValueTask`1:get_Result():int:this'
[ 0] 40 (0x028) ldloc.0
[ 1] 41 (0x029) call 2B000253
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[000492] ------------ * STMT void
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19
[ 1] 46 (0x02e) ldarg.0
[ 2] 47 (0x02f) ldfld 0A000904
[ 2] 52 (0x034) callvirt 0A00090B
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is int, structSize is 0
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is __Canon (attrib 20020000)
base method is IValueTaskSource`1::GetResult
--- base class is interface
--- no derived method, sorry
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'ValueTask`1:get_Result():int:this' calling 'IValueTaskSource`1:GetResult(short):int:this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct'
[ 1] 57 (0x039) ret
Inlinee Return expression (before normalization) =>
[000499] --C-G------- * CALLV stub int IValueTaskSource`1.GetResult
[000493] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000488])
[000498] ----G------- arg1 \--* FIELD short _token
[000494] ----G------- \--* ADDR byref
[000495] ----G------- \--* FIELD struct _value
[000496] L----------- \--* ADDR byref
[000497] ------------ \--* LCL_VAR struct V03 loc2
[000503] ------------ * STMT void
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult
[000493] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000488])
[000498] ----G------- arg1 | | \--* FIELD short _token
[000494] ----G------- | | \--* ADDR byref
[000495] ----G------- | | \--* FIELD struct _value
[000496] L----------- | | \--* ADDR byref
[000497] ------------ | | \--* LCL_VAR struct V03 loc2
[000502] -AC-G------- \--* ASG int
[000501] D------N---- \--* LCL_VAR int V25 tmp18
Inlinee Return expression (after normalization) =>
[000504] ------------ * LCL_VAR int V25 tmp18
Importing BB32 (PC=027) of 'ValueTask`1:get_Result():int:this'
[ 0] 27 (0x01b) ldloc.1
[ 1] 28 (0x01c) call 060050C2
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000509] ------------ * STMT void
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209)
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21
[ 0] 33 (0x021) ldloc.1
[ 1] 34 (0x022) callvirt 0A00090E
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0
[000512] ------------ * STMT void
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9)
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
[ 1] 39 (0x027) ret
Inlinee Return expression (before normalization) =>
[000513] --C--------- * RET_EXPR int (inl return from call [000511])
[000516] ------------ * STMT void
[000513] --C--------- | /--* RET_EXPR int (inl return from call [000511])
[000515] -AC--------- \--* ASG int
[000514] D------N---- \--* LCL_VAR int V25 tmp18
Inlinee Return expression (after normalization) =>
[000517] ------------ * LCL_VAR int V25 tmp18
Importing BB30 (PC=010) of 'ValueTask`1:get_Result():int:this'
[ 0] 10 (0x00a) ldarg.0
[ 1] 11 (0x00b) ldfld 0A000901
[ 1] 16 (0x010) ret
Inlinee Return expression (before normalization) =>
[000523] ----G------- * FIELD int _result
[000519] ----G------- \--* ADDR byref
[000520] ----G------- \--* FIELD struct _value
[000521] L----------- \--* ADDR byref
[000522] ------------ \--* LCL_VAR struct V03 loc2
[000526] ------------ * STMT void
[000523] ----G------- | /--* FIELD int _result
[000519] ----G------- | | \--* ADDR byref
[000520] ----G------- | | \--* FIELD struct _value
[000521] L----------- | | \--* ADDR byref
[000522] ------------ | | \--* LCL_VAR struct V03 loc2
[000525] -A--G------- \--* ASG int
[000524] D------N---- \--* LCL_VAR int V25 tmp18
Inlinee Return expression (after normalization) =>
[000527] ------------ * LCL_VAR int V25 tmp18
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB29 [0028] 1 1 [000..00A)-> BB31 ( cond ) i
BB30 [0029] 1 1 [00A..011) (return) i
BB31 [0030] 1 1 [011..01B)-> BB33 ( cond ) i
BB32 [0031] 1 1 [01B..028) (return) i
BB33 [0032] 1 1 [028..03A) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000450] -----------
Arguments setup:
Inlinee method body:New Basic Block BB34 [0033] created.
EH#0: New last block of try: BB34
Convert bbJumpKind of BB30 to BBJ_ALWAYS to bottomBlock BB34
Convert bbJumpKind of BB32 to BBJ_ALWAYS to bottomBlock BB34
Convert bbJumpKind of BB33 to BBJ_NONE
fgInlineAppendStatements: nulling out gc ref inlinee locals.
[000531] ------------ * STMT void (IL 0x067... ???)
[000528] ------------ | /--* CNS_INT ref null
[000530] -A---------- \--* ASG ref
[000529] D------N---- \--* LCL_VAR ref V26 tmp19
[000535] ------------ * STMT void (IL 0x067... ???)
[000532] ------------ | /--* CNS_INT ref null
[000534] -A---------- \--* ASG ref
[000533] D------N---- \--* LCL_VAR ref V28 tmp21
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068)-> BB34 (always) T0 i
BB33 [0032] 1 0 1 [067..068) T0 i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB29 [067..068) -> BB31 (cond), preds={} succs={BB30,BB31}
***** BB29, stmt 1
[000462] ------------ * STMT void (IL 0x067... ???)
[000459] ----G------- | /--* FIELD ref _obj
[000455] ----G------- | | \--* ADDR byref
[000456] ----G------- | | \--* FIELD struct _value
[000457] L----------- | | \--* ADDR byref
[000458] ------------ | | \--* LCL_VAR struct V03 loc2
[000461] -A--G------- \--* ASG ref
[000460] D------N---- \--* LCL_VAR ref V26 tmp19
***** BB29, stmt 2
[000467] ------------ * STMT void (IL 0x067... ???)
[000466] ------------ \--* JTRUE void
[000464] ------------ | /--* CNS_INT ref null
[000465] ------------ \--* NE int
[000463] ------------ \--* LCL_VAR ref V26 tmp19
------------ BB30 [067..068) -> BB34 (always), preds={} succs={BB34}
***** BB30, stmt 3
[000526] ------------ * STMT void (IL 0x067... ???)
[000523] ----G------- | /--* FIELD int _result
[000519] ----G------- | | \--* ADDR byref
[000520] ----G------- | | \--* FIELD struct _value
[000521] L----------- | | \--* ADDR byref
[000522] ------------ | | \--* LCL_VAR struct V03 loc2
[000525] -A--G------- \--* ASG int
[000524] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB31 [067..068) -> BB33 (cond), preds={} succs={BB32,BB33}
***** BB31, stmt 4
[000476] ------------ * STMT void (IL 0x067... ???)
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19
[000475] -AC-G------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp20
***** BB31, stmt 5
[000481] ------------ * STMT void (IL 0x067... ???)
[000478] ------------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---------- \--* ASG ref
[000479] D------N---- \--* LCL_VAR ref V28 tmp21
***** BB31, stmt 6
[000485] ------------ * STMT void (IL 0x067... ???)
[000484] ------------ \--* JTRUE void
[000482] ------------ | /--* CNS_INT ref null
[000483] ------------ \--* EQ int
[000477] ------------ \--* LCL_VAR ref V27 tmp20
------------ BB32 [067..068) -> BB34 (always), preds={} succs={BB34}
***** BB32, stmt 7
[000509] ------------ * STMT void (IL 0x067... ???)
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209)
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21
***** BB32, stmt 8
[000512] ------------ * STMT void (IL 0x067... ???)
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9)
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
***** BB32, stmt 9
[000516] ------------ * STMT void (IL 0x067... ???)
[000513] --C--------- | /--* RET_EXPR int (inl return from call [000511])
[000515] -AC--------- \--* ASG int
[000514] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB33 [067..068), preds={} succs={BB34}
***** BB33, stmt 10
[000492] ------------ * STMT void (IL 0x067... ???)
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19
***** BB33, stmt 11
[000503] ------------ * STMT void (IL 0x067... ???)
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult
[000493] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000488])
[000498] ----G------- arg1 | | \--* FIELD short _token
[000494] ----G------- | | \--* ADDR byref
[000495] ----G------- | | \--* FIELD struct _value
[000496] L----------- | | \--* ADDR byref
[000497] ------------ | | \--* LCL_VAR struct V03 loc2
[000502] -AC-G------- \--* ASG int
[000501] D------N---- \--* LCL_VAR int V25 tmp18
-------------------------------------------------------------------------------------------------------------------
Return expression for call at [000450] is
[000527] ------------ * LCL_VAR int V25 tmp18
Successfully inlined ValueTask`1:get_Result():int:this (58 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
BB06 becomes empty
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:get_Result():int:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000509] in BB32:
[000509] ------------ * STMT void (IL 0x067... ???)
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209)
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21
Argument #0: is a local var
[000506] ------------ * LCL_VAR ref V28 tmp21
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:ValidateEnd(ref) set to 0x00007FFC6B4B3209:
Invoking compiler for the inlinee method TaskAwaiter:ValidateEnd(ref) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 6f c9 29 00 06 callvirt 0x60029C9
IL_0006 2c 06 brfalse.s 6 (IL_000e)
IL_0008 02 ldarg.0
IL_0009 28 c3 50 00 06 call 0x60050C3
IL_000e 2a ret
INLINER impTokenLookupContextHandle for TaskAwaiter:ValidateEnd(ref) is 0x00007FFC6B4B3209.
*************** In fgFindBasicBlocks() for TaskAwaiter:ValidateEnd(ref)
Jump targets:
IL_000e
New Basic Block BB35 [0034] created.
BB35 [000..008)
New Basic Block BB36 [0035] created.
BB36 [008..00E)
New Basic Block BB37 [0036] created.
BB37 [00E..00F)
Basic block list for 'TaskAwaiter:ValidateEnd(ref)'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB35 [0034] 1 1 [000..008)-> BB37 ( cond )
BB36 [0035] 1 1 [008..00E)
BB37 [0036] 2 1 [00E..00F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for TaskAwaiter:ValidateEnd(ref)
impImportBlockPending for BB35
Importing BB35 (PC=000) of 'TaskAwaiter:ValidateEnd(ref)'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) callvirt 060029C9
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0
[000539] ------------ * STMT void
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1)
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
[ 1] 6 (0x006) brfalse.s
[000544] ------------ * STMT void
[000543] --C--------- \--* JTRUE void
[000541] ------------ | /--* CNS_INT int 0
[000542] --C--------- \--* EQ int
[000540] --C--------- \--* RET_EXPR int (inl return from call [000538])
impImportBlockPending for BB36
impImportBlockPending for BB37
Importing BB37 (PC=014) of 'TaskAwaiter:ValidateEnd(ref)'
[ 0] 14 (0x00e) ret
Importing BB36 (PC=008) of 'TaskAwaiter:ValidateEnd(ref)'
[ 0] 8 (0x008) ldarg.0
[ 1] 9 (0x009) call 060050C3
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000550] ------------ * STMT void
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209)
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21
impImportBlockPending for BB37
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB35 [0034] 1 1 [000..008)-> BB37 ( cond ) i
BB36 [0035] 1 1 [008..00E) i
BB37 [0036] 2 1 [00E..00F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000507] -----------
Arguments setup:
Inlinee method body:New Basic Block BB38 [0037] created.
Convert bbJumpKind of BB37 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB35 [067..068) -> BB37 (cond), preds={} succs={BB36,BB37}
***** BB35, stmt 1
[000539] ------------ * STMT void (IL 0x067... ???)
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1)
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
***** BB35, stmt 2
[000544] ------------ * STMT void (IL 0x067... ???)
[000543] --C--------- \--* JTRUE void
[000541] ------------ | /--* CNS_INT int 0
[000542] --C--------- \--* EQ int
[000540] --C--------- \--* RET_EXPR int (inl return from call [000538])
------------ BB36 [067..068), preds={} succs={BB37}
***** BB36, stmt 3
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209)
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21
------------ BB37 [067..068), preds={} succs={BB38}
-------------------------------------------------------------------------------------------------------------------
Successfully inlined TaskAwaiter:ValidateEnd(ref) (15 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
BB32 becomes empty
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'TaskAwaiter:ValidateEnd(ref)'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000539] in BB35:
[000539] ------------ * STMT void (IL 0x067... ???)
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1)
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
thisArg: is a local var
[000506] ------------ * LCL_VAR ref V28 tmp21
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this set to 0x00007FFC6B4AFAC1:
Invoking compiler for the inlinee method Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 fe 13 volatile.
IL_0003 7b fb 0d 00 04 ldfld 0x4000DFB
IL_0008 20 00 00 00 11 ldc.i4 0x11000000
IL_000d 5f and
IL_000e 20 00 00 00 01 ldc.i4 0x1000000
IL_0013 fe 01 ceq
IL_0015 16 ldc.i4.0
IL_0016 fe 01 ceq
IL_0018 2a ret
INLINER impTokenLookupContextHandle for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this is 0x00007FFC6B4AFAC1.
*************** In fgFindBasicBlocks() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
Jump targets:
none
New Basic Block BB39 [0038] created.
BB39 [000..019)
Basic block list for 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [000..019) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
impImportBlockPending for BB39
Importing BB39 (PC=000) of 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) volatile.ldfld 04000DFB
[ 1] 8 (0x008) ldc.i4 285212672
[ 2] 13 (0x00d) and
[ 1] 14 (0x00e) ldc.i4 16777216
[ 2] 19 (0x013) ceq
[ 1] 21 (0x015) ldc.i4.0 0
[ 2] 22 (0x016) ceq
[ 1] 24 (0x018) ret
Inlinee Return expression (before normalization) =>
[000558] ------------ /--* CNS_INT int 0
[000559] ---XGO------ * EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
Inlinee Return expression (after normalization) =>
[000558] ------------ /--* CNS_INT int 0
[000559] ---XGO------ * EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB39 [0038] 1 1 [000..019) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000538] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000538] is
[000558] ------------ /--* CNS_INT int 0
[000559] ---XGO------ * EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
Successfully inlined Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this (25 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000540] with [000559]
[000540] --C--------- * RET_EXPR int (inl return from call [000559])
Inserting the inline return expression
[000558] ------------ /--* CNS_INT int 0
[000559] ---XGO------ * EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
Expanding INLINE_CANDIDATE in statement [000550] in BB36:
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209)
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21
Argument #0: is a local var
[000547] ------------ * LCL_VAR ref V28 tmp21
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) set to 0x00007FFC6B4B3209:
Invoking compiler for the inlinee method TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) :
IL to import:
IL_0000 02 ldarg.0
IL_0001 6f e5 29 00 06 callvirt 0x60029E5
IL_0006 2d 11 brtrue.s 17 (IL_0019)
IL_0008 02 ldarg.0
IL_0009 15 ldc.i4.m1
IL_000a 12 01 ldloca.s 0x1
IL_000c fe 15 38 03 00 02 initobj 0x2000338
IL_0012 07 ldloc.1
IL_0013 6f 1b 2a 00 06 callvirt 0x6002A1B
IL_0018 0a stloc.0
IL_0019 02 ldarg.0
IL_001a 6f c7 29 00 06 callvirt 0x60029C7
IL_001f 26 pop
IL_0020 02 ldarg.0
IL_0021 6f e7 29 00 06 callvirt 0x60029E7
IL_0026 2d 06 brtrue.s 6 (IL_002e)
IL_0028 02 ldarg.0
IL_0029 28 c4 50 00 06 call 0x60050C4
IL_002e 2a ret
INLINER impTokenLookupContextHandle for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) is 0x00007FFC6B4B3209.
*************** In fgFindBasicBlocks() for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)
weight= 10 : state 3 [ ldarg.0 ]
weight= 83 : state 99 [ callvirt ]
weight= 25 : state 45 [ brtrue.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 22 : state 22 [ ldc.i4.m1 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 55 : state 180 [ initobj ]
weight= 9 : state 8 [ ldloc.1 ]
weight= 83 : state 99 [ callvirt ]
weight= 6 : state 11 [ stloc.0 ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 83 : state 99 [ callvirt ]
weight=-24 : state 39 [ pop ]
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= 19 : state 42 [ ret ]
multiplier in methods of promotable struct increased to 3.
Inline candidate looks like a wrapper method. Multiplier increased to 4.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 5.
Inline candidate callsite is boring. Multiplier increased to 6.3.
calleeNativeSizeEstimate=659
callsiteNativeSizeEstimate=85
benefit multiplier=6.3
threshold=535
Native estimate for function size exceeds threshold for inlining 65.9 > 53.5 (multiplier = 6.3)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement [000512] in BB38:
[000512] ------------ * STMT void (IL 0x067... ???)
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9)
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21
thisArg: is a local var
[000510] ------------ * LCL_VAR ref V28 tmp21
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:get_ResultOnSuccess():int:this set to 0x00007FFC6B4AFBD9:
Invoking compiler for the inlinee method Task`1:get_ResultOnSuccess():int:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 94 07 00 0a ldfld 0xA000794
IL_0006 2a ret
INLINER impTokenLookupContextHandle for Task`1:get_ResultOnSuccess():int:this is 0x00007FFC6B4AFBD9.
*************** In fgFindBasicBlocks() for Task`1:get_ResultOnSuccess():int:this
Jump targets:
none
New Basic Block BB40 [0039] created.
BB40 [000..007)
Basic block list for 'Task`1:get_ResultOnSuccess():int:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB40 [0039] 1 1 [000..007) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task`1:get_ResultOnSuccess():int:this
impImportBlockPending for BB40
Importing BB40 (PC=000) of 'Task`1:get_ResultOnSuccess():int:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000794
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[000562] ---XG------- * FIELD int m_result
[000510] ------------ \--* LCL_VAR ref V28 tmp21
Inlinee Return expression (after normalization) =>
[000562] ---XG------- * FIELD int m_result
[000510] ------------ \--* LCL_VAR ref V28 tmp21
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB40 [0039] 1 1 [000..007) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000511] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000511] is
[000562] ---XG------- * FIELD int m_result
[000510] ------------ \--* LCL_VAR ref V28 tmp21
Successfully inlined Task`1:get_ResultOnSuccess():int:this (7 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task`1:get_ResultOnSuccess():int:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000513] with [000562]
[000513] --C--------- * RET_EXPR int (inl return from call [000562])
Inserting the inline return expression
[000562] ---XG------- * FIELD int m_result
[000510] ------------ \--* LCL_VAR ref V28 tmp21
Expanding INLINE_CANDIDATE in statement [000492] in BB33:
[000492] ------------ * STMT void (IL 0x067... ???)
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8)
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19
Argument #0: is a local var
[000487] ------------ * LCL_VAR ref V26 tmp19
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEEA8:
Invoking compiler for the inlinee method Unsafe:As(ref):ref :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEEA8.
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref
Jump targets:
none
New Basic Block BB41 [0040] created.
BB41 [000..002)
Basic block list for 'Unsafe:As(ref):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB41 [0040] 1 1 [000..002) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Unsafe:As(ref):ref
impImportBlockPending for BB41
Importing BB41 (PC=000) of 'Unsafe:As(ref):ref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000487] ------------ * LCL_VAR ref V26 tmp19
Inlinee Return expression (after normalization) =>
[000487] ------------ * LCL_VAR ref V26 tmp19
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB41 [0040] 1 1 [000..002) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000488] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000488] is
[000487] ------------ * LCL_VAR ref V26 tmp19
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000493] with [000487]
[000493] --C--------- * RET_EXPR ref (inl return from call [000487])
Inserting the inline return expression
[000487] ------------ * LCL_VAR ref V26 tmp19
**** Late devirt opportunity
[000499] --C-G------- * CALLV stub int IValueTaskSource`1.GetResult
[000487] ------------ this in rcx +--* LCL_VAR ref V26 tmp19
[000498] ----G------- arg1 \--* FIELD short _token
[000494] ----G------- \--* ADDR byref
[000495] ----G------- \--* FIELD struct _value
[000496] L----------- \--* ADDR byref
[000497] ------------ \--* LCL_VAR struct V03 loc2
impDevirtualizeCall: Trying to devirtualize interface call:
class for 'this' is Object (attrib 20000000)
base method is IValueTaskSource`1::GetResult
--- base class is interface
--- no derived method, sorry
Replacing the return expression placeholder [000046] with [000452]
[000046] --C--------- * RET_EXPR int (inl return from call [000452])
Inserting the inline return expression
[000452] --C--------- * RET_EXPR int (inl return from call [000527])
Replacing the return expression placeholder [000452] with [000527]
[000452] --C--------- * RET_EXPR int (inl return from call [000527])
Inserting the inline return expression
[000527] ------------ * LCL_VAR int V25 tmp18
Expanding INLINE_CANDIDATE in statement [000062] in BB08:
[000062] ------------ * STMT void (IL 0x092...0x099)
[000060] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B3469)
[000058] ---XG------- this in rcx +--* ADDR byref
[000057] ---XG------- | \--* FIELD struct <>t__builder
[000056] ------------ | \--* LCL_VAR byref V00 this
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
Note: candidate is implicit tail call
thisArg: has global refs has side effects
[000058] ---XG------- * ADDR byref
[000057] ---XG------- \--* FIELD struct <>t__builder
[000056] ------------ \--* LCL_VAR byref V00 this
Argument #1: is a local var
[000059] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:SetResult(int):this set to 0x00007FFC6B4B3469:
Invoking compiler for the inlinee method AsyncValueTaskMethodBuilder`1:SetResult(int):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 23 0c 00 0a ldfld 0xA000C23
IL_0006 2c 0d brfalse.s 13 (IL_0015)
IL_0008 02 ldarg.0
IL_0009 7c 21 0c 00 0a ldflda 0xA000C21
IL_000e 03 ldarg.1
IL_000f 28 24 0c 00 0a call 0xA000C24
IL_0014 2a ret
IL_0015 02 ldarg.0
IL_0016 03 ldarg.1
IL_0017 7d 25 0c 00 0a stfld 0xA000C25
IL_001c 02 ldarg.0
IL_001d 17 ldc.i4.1
IL_001e 7d 26 0c 00 0a stfld 0xA000C26
IL_0023 2a ret
INLINER impTokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:SetResult(int):this is 0x00007FFC6B4B3469.
*************** In fgFindBasicBlocks() for AsyncValueTaskMethodBuilder`1:SetResult(int):this
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight= 27 : state 44 [ brfalse.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 17 : state 110 [ ldflda ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
weight= 69 : state 226 [ ldarg.0 -> ldarg.1 -> stfld ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 28 : state 24 [ ldc.i4.1 ]
weight= 31 : state 111 [ stfld ]
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 boring. Multiplier increased to 3.3.
calleeNativeSizeEstimate=356
callsiteNativeSizeEstimate=115
benefit multiplier=3.3
threshold=379
Native estimate for function size is within threshold for inlining 35.6 <= 37.9 (multiplier = 3.3)
Jump targets:
IL_0015
New Basic Block BB42 [0041] created.
BB42 [000..008)
New Basic Block BB43 [0042] created.
BB43 [008..015)
New Basic Block BB44 [0043] created.
BB44 [015..024)
Basic block list for 'AsyncValueTaskMethodBuilder`1:SetResult(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB42 [0041] 1 1 [000..008)-> BB44 ( cond )
BB43 [0042] 1 1 [008..015) (return)
BB44 [0043] 1 1 [015..024) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncValueTaskMethodBuilder`1:SetResult(int):this
impImportBlockPending for BB42
Importing BB42 (PC=000) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 29 (V29 tmp22) called for Inlining Arg.
[ 1] 1 (0x001) ldfld 0A000C23
[ 1] 6 (0x006) brfalse.s
[000572] ------------ * STMT void
[000571] ---XG------- \--* JTRUE void
[000569] ------------ | /--* CNS_INT int 0
[000570] ---XG------- \--* EQ int
[000568] ---XG------- \--* FIELD bool _useBuilder
[000567] ------------ \--* LCL_VAR byref V29 tmp22
impImportBlockPending for BB43
impImportBlockPending for BB44
Importing BB44 (PC=021) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this'
[ 0] 21 (0x015) ldarg.0
[ 1] 22 (0x016) ldarg.1
[ 2] 23 (0x017) stfld 0A000C25
[000577] ------------ * STMT void
[000059] ------------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG------- \--* ASG int
[000575] ---XG--N---- \--* FIELD int _result
[000574] ------------ \--* LCL_VAR byref V29 tmp22
[ 0] 28 (0x01c) ldarg.0
[ 1] 29 (0x01d) ldc.i4.1 1
[ 2] 30 (0x01e) stfld 0A000C26
[000582] ------------ * STMT void
[000579] ------------ | /--* CNS_INT int 1
[000581] -A-XG------- \--* ASG bool
[000580] ---XG--N---- \--* FIELD bool _haveResult
[000578] ------------ \--* LCL_VAR byref V29 tmp22
[ 0] 35 (0x023) ret
Importing BB43 (PC=008) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this'
[ 0] 8 (0x008) ldarg.0
[ 1] 9 (0x009) ldflda 0A000C21
[ 1] 14 (0x00e) ldarg.1
[ 2] 15 (0x00f) call 0A000C24 (Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000588]
[000590] ------------ * STMT void
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471)
[000586] ---XG------- this in rcx +--* ADDR byref
[000585] ---XG------- | \--* FIELD struct _methodBuilder
[000584] ------------ | \--* LCL_VAR byref V29 tmp22
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
[ 0] 20 (0x014) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB42 [0041] 1 1 [000..008)-> BB44 ( cond ) i
BB43 [0042] 1 1 [008..015) (return) i
BB44 [0043] 1 1 [015..024) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000060] -----------
Arguments setup:
[000593] ------------ * STMT void (IL 0x092... ???)
[000058] ---XG------- | /--* ADDR byref
[000057] ---XG------- | | \--* FIELD struct <>t__builder
[000056] ------------ | | \--* LCL_VAR byref V00 this
[000592] -A-XG------- \--* ASG byref
[000591] D------N---- \--* LCL_VAR byref V29 tmp22
Inlinee method body:New Basic Block BB45 [0044] created.
Convert bbJumpKind of BB43 to BBJ_ALWAYS to bottomBlock BB45
Convert bbJumpKind of BB44 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093)-> BB45 (always) i
BB44 [0043] 1 1 [092..093) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB42 [092..093) -> BB44 (cond), preds={} succs={BB43,BB44}
***** BB42, stmt 1
[000572] ------------ * STMT void (IL 0x092... ???)
[000571] ---XG------- \--* JTRUE void
[000569] ------------ | /--* CNS_INT int 0
[000570] ---XG------- \--* EQ int
[000568] ---XG------- \--* FIELD bool _useBuilder
[000567] ------------ \--* LCL_VAR byref V29 tmp22
------------ BB43 [092..093) -> BB45 (always), preds={} succs={BB45}
***** BB43, stmt 2
[000590] ------------ * STMT void (IL 0x092... ???)
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471)
[000586] ---XG------- this in rcx +--* ADDR byref
[000585] ---XG------- | \--* FIELD struct _methodBuilder
[000584] ------------ | \--* LCL_VAR byref V29 tmp22
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
------------ BB44 [092..093), preds={} succs={BB45}
***** BB44, stmt 3
[000577] ------------ * STMT void (IL 0x092... ???)
[000059] ------------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG------- \--* ASG int
[000575] ---XG--N---- \--* FIELD int _result
[000574] ------------ \--* LCL_VAR byref V29 tmp22
***** BB44, stmt 4
[000582] ------------ * STMT void (IL 0x092... ???)
[000579] ------------ | /--* CNS_INT int 1
[000581] -A-XG------- \--* ASG bool
[000580] ---XG--N---- \--* FIELD bool _haveResult
[000578] ------------ \--* LCL_VAR byref V29 tmp22
-------------------------------------------------------------------------------------------------------------------
Successfully inlined AsyncValueTaskMethodBuilder`1:SetResult(int):this (36 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:SetResult(int):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000590] in BB43:
[000590] ------------ * STMT void (IL 0x092... ???)
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471)
[000586] ---XG------- this in rcx +--* ADDR byref
[000585] ---XG------- | \--* FIELD struct _methodBuilder
[000584] ------------ | \--* LCL_VAR byref V29 tmp22
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
Note: candidate is implicit tail call
thisArg: has global refs has side effects
[000586] ---XG------- * ADDR byref
[000585] ---XG------- \--* FIELD struct _methodBuilder
[000584] ------------ \--* LCL_VAR byref V29 tmp22
Argument #1: is a local var
[000587] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for AsyncTaskMethodBuilder`1:SetResult(int):this set to 0x00007FFC6B4B5471:
Invoking compiler for the inlinee method AsyncTaskMethodBuilder`1:SetResult(int):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 05 0c 00 0a ldfld 0xA000C05
IL_0006 2d 0d brtrue.s 13 (IL_0015)
IL_0008 02 ldarg.0
IL_0009 03 ldarg.1
IL_000a 28 06 09 00 0a call 0xA000906
IL_000f 7d 05 0c 00 0a stfld 0xA000C05
IL_0014 2a ret
IL_0015 02 ldarg.0
IL_0016 03 ldarg.1
IL_0017 28 10 0c 00 0a call 0xA000C10
IL_001c 2a ret
INLINER impTokenLookupContextHandle for AsyncTaskMethodBuilder`1:SetResult(int):this is 0x00007FFC6B4B5471.
*************** In fgFindBasicBlocks() for AsyncTaskMethodBuilder`1:SetResult(int):this
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight= 25 : state 45 [ brtrue.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 79 : state 40 [ call ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
multiplier in methods of promotable struct increased to 3.
Inline candidate looks like a wrapper method. Multiplier increased to 4.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 5.
Inline candidate callsite is boring. Multiplier increased to 6.3.
calleeNativeSizeEstimate=335
callsiteNativeSizeEstimate=115
benefit multiplier=6.3
threshold=724
Native estimate for function size is within threshold for inlining 33.5 <= 72.4 (multiplier = 6.3)
Jump targets:
IL_0015
New Basic Block BB46 [0045] created.
BB46 [000..008)
New Basic Block BB47 [0046] created.
BB47 [008..015)
New Basic Block BB48 [0047] created.
BB48 [015..01D)
Basic block list for 'AsyncTaskMethodBuilder`1:SetResult(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB46 [0045] 1 1 [000..008)-> BB48 ( cond )
BB47 [0046] 1 1 [008..015) (return)
BB48 [0047] 1 1 [015..01D) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncTaskMethodBuilder`1:SetResult(int):this
impImportBlockPending for BB46
Importing BB46 (PC=000) of 'AsyncTaskMethodBuilder`1:SetResult(int):this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 30 (V30 tmp23) called for Inlining Arg.
[ 1] 1 (0x001) ldfld 0A000C05
[ 1] 6 (0x006) brtrue.s
[000601] ------------ * STMT void
[000600] ---XG------- \--* JTRUE void
[000598] ------------ | /--* CNS_INT ref null
[000599] ---XG------- \--* NE int
[000597] ---XG------- \--* FIELD ref m_task
[000596] ------------ \--* LCL_VAR byref V30 tmp23
impImportBlockPending for BB47
impImportBlockPending for BB48
Importing BB48 (PC=021) of 'AsyncTaskMethodBuilder`1:SetResult(int):this'
[ 0] 21 (0x015) ldarg.0
[ 1] 22 (0x016) ldarg.1
[ 2] 23 (0x017) call 0A000C10 (Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT)
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000604]
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'AsyncTaskMethodBuilder`1:SetResult(int):this' calling 'AsyncTaskMethodBuilder`1:SetExistingTaskResult(int):this'
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result'
[000606] ------------ * STMT void
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
[ 0] 28 (0x01c) ret
Importing BB47 (PC=008) of 'AsyncTaskMethodBuilder`1:SetResult(int):this'
[ 0] 8 (0x008) ldarg.0
[ 1] 9 (0x009) ldarg.1
[ 2] 10 (0x00a) call 0A000906
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[000612] ------------ * STMT void
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471)
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1
[ 2] 15 (0x00f) stfld 0A000C05
[000616] ------------ * STMT void
[000613] --C--------- | /--* RET_EXPR ref (inl return from call [000610])
[000615] -ACXG------- \--* ASG ref
[000614] ---XG--N---- \--* FIELD ref m_task
[000608] ------------ \--* LCL_VAR byref V30 tmp23
[ 0] 20 (0x014) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB46 [0045] 1 1 [000..008)-> BB48 ( cond ) i
BB47 [0046] 1 1 [008..015) (return) i
BB48 [0047] 1 1 [015..01D) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000588] -----------
Arguments setup:
[000619] ------------ * STMT void (IL 0x092... ???)
[000586] ---XG------- | /--* ADDR byref
[000585] ---XG------- | | \--* FIELD struct _methodBuilder
[000584] ------------ | | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG------- \--* ASG byref
[000617] D------N---- \--* LCL_VAR byref V30 tmp23
Inlinee method body:New Basic Block BB49 [0048] created.
Convert bbJumpKind of BB47 to BBJ_ALWAYS to bottomBlock BB49
Convert bbJumpKind of BB48 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093)-> BB49 (always) i
BB48 [0047] 1 1 [092..093) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB46 [092..093) -> BB48 (cond), preds={} succs={BB47,BB48}
***** BB46, stmt 1
[000601] ------------ * STMT void (IL 0x092... ???)
[000600] ---XG------- \--* JTRUE void
[000598] ------------ | /--* CNS_INT ref null
[000599] ---XG------- \--* NE int
[000597] ---XG------- \--* FIELD ref m_task
[000596] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB47 [092..093) -> BB49 (always), preds={} succs={BB49}
***** BB47, stmt 2
[000612] ------------ * STMT void (IL 0x092... ???)
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471)
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1
***** BB47, stmt 3
[000616] ------------ * STMT void (IL 0x092... ???)
[000613] --C--------- | /--* RET_EXPR ref (inl return from call [000610])
[000615] -ACXG------- \--* ASG ref
[000614] ---XG--N---- \--* FIELD ref m_task
[000608] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB48 [092..093), preds={} succs={BB49}
***** BB48, stmt 4
[000606] ------------ * STMT void (IL 0x092... ???)
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
-------------------------------------------------------------------------------------------------------------------
Successfully inlined AsyncTaskMethodBuilder`1:SetResult(int):this (29 IL bytes) (depth 2) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:SetResult(int):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000612] in BB47:
[000612] ------------ * STMT void (IL 0x092... ???)
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471)
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1
Argument #0: is a local var
[000609] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref set to 0x00007FFC6B4B5471:
Invoking compiler for the inlinee method AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 fe 15 03 00 00 1b initobj 0x1B000003
IL_0008 06 ldloc.0
IL_0009 8c 03 00 00 1b box 0x1B000003
IL_000e 39 40 02 00 00 brfalse 576 (IL_0253)
IL_0013 d0 03 00 00 1b ldtoken 0x1B000003
IL_0018 28 a6 09 00 06 call 0x60009A6
IL_001d d0 ff 00 00 02 ldtoken 0x20000FF
IL_0022 28 a6 09 00 06 call 0x60009A6
IL_0027 28 ad 09 00 06 call 0x60009AD
IL_002c 2c 23 brfalse.s 35 (IL_0051)
IL_002e 02 ldarg.0
IL_002f 8c 03 00 00 1b box 0x1B000003
IL_0034 a5 ff 00 00 02 unbox.any 0x20000FF
IL_0039 0b stloc.1
IL_003a 07 ldloc.1
IL_003b 2d 07 brtrue.s 7 (IL_0044)
IL_003d 7e fe 1c 00 04 ldsfld 0x4001CFE
IL_0042 2b 05 br.s 5 (IL_0049)
IL_0044 7e fd 1c 00 04 ldsfld 0x4001CFD
IL_0049 0c stloc.2
IL_004a 08 ldloc.2
IL_004b 28 51 03 00 2b call 0x2B000351
IL_0050 2a ret
IL_0051 d0 03 00 00 1b ldtoken 0x1B000003
IL_0056 28 a6 09 00 06 call 0x60009A6
IL_005b d0 48 01 00 02 ldtoken 0x2000148
IL_0060 28 a6 09 00 06 call 0x60009A6
IL_0065 28 ad 09 00 06 call 0x60009AD
IL_006a 2c 2e brfalse.s 46 (IL_009a)
IL_006c 02 ldarg.0
IL_006d 8c 03 00 00 1b box 0x1B000003
IL_0072 a5 48 01 00 02 unbox.any 0x2000148
IL_0077 0d stloc.3
IL_0078 09 ldloc.3
IL_0079 1f 09 ldc.i4.s 0x9
IL_007b 3c e1 01 00 00 bge 481 (IL_0261)
IL_0080 09 ldloc.3
IL_0081 15 ldc.i4.m1
IL_0082 3f da 01 00 00 blt 474 (IL_0261)
IL_0087 7e ff 1c 00 04 ldsfld 0x4001CFF
IL_008c 09 ldloc.3
IL_008d 15 ldc.i4.m1
IL_008e 59 sub
IL_008f 9a ldelem.ref
IL_0090 13 04 stloc.s 0x4
IL_0092 11 04 ldloc.s 0x4
IL_0094 28 51 03 00 2b call 0x2B000351
IL_0099 2a ret
IL_009a d0 03 00 00 1b ldtoken 0x1B000003
IL_009f 28 a6 09 00 06 call 0x60009A6
IL_00a4 d0 a5 01 00 02 ldtoken 0x20001A5
IL_00a9 28 a6 09 00 06 call 0x60009A6
IL_00ae 28 ad 09 00 06 call 0x60009AD
IL_00b3 2c 10 brfalse.s 16 (IL_00c5)
IL_00b5 02 ldarg.0
IL_00b6 8c 03 00 00 1b box 0x1B000003
IL_00bb a5 a5 01 00 02 unbox.any 0x20001A5
IL_00c0 39 88 01 00 00 brfalse 392 (IL_024d)
IL_00c5 d0 03 00 00 1b ldtoken 0x1B000003
IL_00ca 28 a6 09 00 06 call 0x60009A6
IL_00cf d0 00 01 00 02 ldtoken 0x2000100
IL_00d4 28 a6 09 00 06 call 0x60009A6
IL_00d9 28 ad 09 00 06 call 0x60009AD
IL_00de 2c 10 brfalse.s 16 (IL_00f0)
IL_00e0 02 ldarg.0
IL_00e1 8c 03 00 00 1b box 0x1B000003
IL_00e6 a5 00 01 00 02 unbox.any 0x2000100
IL_00eb 39 5d 01 00 00 brfalse 349 (IL_024d)
IL_00f0 d0 03 00 00 1b ldtoken 0x1B000003
IL_00f5 28 a6 09 00 06 call 0x60009A6
IL_00fa d0 73 01 00 02 ldtoken 0x2000173
IL_00ff 28 a6 09 00 06 call 0x60009A6
IL_0104 28 ad 09 00 06 call 0x60009AD
IL_0109 2c 10 brfalse.s 16 (IL_011b)
IL_010b 02 ldarg.0
IL_010c 8c 03 00 00 1b box 0x1B000003
IL_0111 a5 73 01 00 02 unbox.any 0x2000173
IL_0116 39 32 01 00 00 brfalse 306 (IL_024d)
IL_011b d0 03 00 00 1b ldtoken 0x1B000003
IL_0120 28 a6 09 00 06 call 0x60009A6
IL_0125 d0 01 01 00 02 ldtoken 0x2000101
IL_012a 28 a6 09 00 06 call 0x60009A6
IL_012f 28 ad 09 00 06 call 0x60009AD
IL_0134 2c 10 brfalse.s 16 (IL_0146)
IL_0136 02 ldarg.0
IL_0137 8c 03 00 00 1b box 0x1B000003
IL_013c a5 01 01 00 02 unbox.any 0x2000101
IL_0141 39 07 01 00 00 brfalse 263 (IL_024d)
IL_0146 d0 03 00 00 1b ldtoken 0x1B000003
IL_014b 28 a6 09 00 06 call 0x60009A6
IL_0150 d0 49 01 00 02 ldtoken 0x2000149
IL_0155 28 a6 09 00 06 call 0x60009A6
IL_015a 28 ad 09 00 06 call 0x60009AD
IL_015f 2c 10 brfalse.s 16 (IL_0171)
IL_0161 02 ldarg.0
IL_0162 8c 03 00 00 1b box 0x1B000003
IL_0167 a5 49 01 00 02 unbox.any 0x2000149
IL_016c 39 dc 00 00 00 brfalse 220 (IL_024d)
IL_0171 d0 03 00 00 1b ldtoken 0x1B000003
IL_0176 28 a6 09 00 06 call 0x60009A6
IL_017b d0 a6 01 00 02 ldtoken 0x20001A6
IL_0180 28 a6 09 00 06 call 0x60009A6
IL_0185 28 ad 09 00 06 call 0x60009AD
IL_018a 2c 10 brfalse.s 16 (IL_019c)
IL_018c 02 ldarg.0
IL_018d 8c 03 00 00 1b box 0x1B000003
IL_0192 a5 a6 01 00 02 unbox.any 0x20001A6
IL_0197 39 b1 00 00 00 brfalse 177 (IL_024d)
IL_019c d0 03 00 00 1b ldtoken 0x1B000003
IL_01a1 28 a6 09 00 06 call 0x60009A6
IL_01a6 d0 47 01 00 02 ldtoken 0x2000147
IL_01ab 28 a6 09 00 06 call 0x60009A6
IL_01b0 28 ad 09 00 06 call 0x60009AD
IL_01b5 2c 10 brfalse.s 16 (IL_01c7)
IL_01b7 02 ldarg.0
IL_01b8 8c 03 00 00 1b box 0x1B000003
IL_01bd a5 47 01 00 02 unbox.any 0x2000147
IL_01c2 39 86 00 00 00 brfalse 134 (IL_024d)
IL_01c7 d0 03 00 00 1b ldtoken 0x1B000003
IL_01cc 28 a6 09 00 06 call 0x60009A6
IL_01d1 d0 a4 01 00 02 ldtoken 0x20001A4
IL_01d6 28 a6 09 00 06 call 0x60009A6
IL_01db 28 ad 09 00 06 call 0x60009AD
IL_01e0 2c 0d brfalse.s 13 (IL_01ef)
IL_01e2 02 ldarg.0
IL_01e3 8c 03 00 00 1b box 0x1B000003
IL_01e8 a5 a4 01 00 02 unbox.any 0x20001A4
IL_01ed 2c 5e brfalse.s 94 (IL_024d)
IL_01ef d0 03 00 00 1b ldtoken 0x1B000003
IL_01f4 28 a6 09 00 06 call 0x60009A6
IL_01f9 d0 4a 01 00 02 ldtoken 0x200014A
IL_01fe 28 a6 09 00 06 call 0x60009A6
IL_0203 28 ad 09 00 06 call 0x60009AD
IL_0208 2c 14 brfalse.s 20 (IL_021e)
IL_020a 16 ldc.i4.0
IL_020b d3 conv.i
IL_020c 02 ldarg.0
IL_020d 8c 03 00 00 1b box 0x1B000003
IL_0212 a5 4a 01 00 02 unbox.any 0x200014A
IL_0217 28 13 15 00 06 call 0x6001513
IL_021c 2d 2f brtrue.s 47 (IL_024d)
IL_021e d0 03 00 00 1b ldtoken 0x1B000003
IL_0223 28 a6 09 00 06 call 0x60009A6
IL_0228 d0 a7 01 00 02 ldtoken 0x20001A7
IL_022d 28 a6 09 00 06 call 0x60009A6
IL_0232 28 ad 09 00 06 call 0x60009AD
IL_0237 2c 28 brfalse.s 40 (IL_0261)
IL_0239 16 ldc.i4.0
IL_023a e0 conv.u
IL_023b 02 ldarg.0
IL_023c 8c 03 00 00 1b box 0x1B000003
IL_0241 a5 a7 01 00 02 unbox.any 0x20001A7
IL_0246 28 c0 19 00 06 call 0x60019C0
IL_024b 2c 14 brfalse.s 20 (IL_0261)
IL_024d 7e 14 0c 00 0a ldsfld 0xA000C14
IL_0252 2a ret
IL_0253 02 ldarg.0
IL_0254 8c 03 00 00 1b box 0x1B000003
IL_0259 2d 06 brtrue.s 6 (IL_0261)
IL_025b 7e 14 0c 00 0a ldsfld 0xA000C14
IL_0260 2a ret
IL_0261 02 ldarg.0
IL_0262 73 15 0c 00 0a newobj 0xA000C15
IL_0267 2a ret
INLINER impTokenLookupContextHandle for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref is 0x00007FFC6B4B5471.
*************** In fgFindBasicBlocks() for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref
Jump targets:
IL_0044
IL_0049
IL_0051
IL_009a
IL_00c5
IL_00f0
IL_011b
IL_0146
IL_0171
IL_019c
IL_01c7
IL_01ef
IL_021e
IL_024d multi
IL_0253
IL_0261 multi
New Basic Block BB50 [0049] created.
BB50 [000..013)
New Basic Block BB51 [0050] created.
BB51 [013..02E)
New Basic Block BB52 [0051] created.
BB52 [02E..03D)
New Basic Block BB53 [0052] created.
BB53 [03D..044)
New Basic Block BB54 [0053] created.
BB54 [044..049)
New Basic Block BB55 [0054] created.
BB55 [049..051)
New Basic Block BB56 [0055] created.
BB56 [051..06C)
New Basic Block BB57 [0056] created.
BB57 [06C..080)
New Basic Block BB58 [0057] created.
BB58 [080..087)
New Basic Block BB59 [0058] created.
BB59 [087..09A)
New Basic Block BB60 [0059] created.
BB60 [09A..0B5)
New Basic Block BB61 [0060] created.
BB61 [0B5..0C5)
New Basic Block BB62 [0061] created.
BB62 [0C5..0E0)
New Basic Block BB63 [0062] created.
BB63 [0E0..0F0)
New Basic Block BB64 [0063] created.
BB64 [0F0..10B)
New Basic Block BB65 [0064] created.
BB65 [10B..11B)
New Basic Block BB66 [0065] created.
BB66 [11B..136)
New Basic Block BB67 [0066] created.
BB67 [136..146)
New Basic Block BB68 [0067] created.
BB68 [146..161)
New Basic Block BB69 [0068] created.
BB69 [161..171)
New Basic Block BB70 [0069] created.
BB70 [171..18C)
New Basic Block BB71 [0070] created.
BB71 [18C..19C)
New Basic Block BB72 [0071] created.
BB72 [19C..1B7)
New Basic Block BB73 [0072] created.
BB73 [1B7..1C7)
New Basic Block BB74 [0073] created.
BB74 [1C7..1E2)
New Basic Block BB75 [0074] created.
BB75 [1E2..1EF)
New Basic Block BB76 [0075] created.
BB76 [1EF..20A)
New Basic Block BB77 [0076] created.
BB77 [20A..21E)
New Basic Block BB78 [0077] created.
BB78 [21E..239)
New Basic Block BB79 [0078] created.
BB79 [239..24D)
New Basic Block BB80 [0079] created.
BB80 [24D..253)
New Basic Block BB81 [0080] created.
BB81 [253..25B)
New Basic Block BB82 [0081] created.
BB82 [25B..261)
New Basic Block BB83 [0082] created.
BB83 [261..268)
lvaGrabTemp returning 31 (V31 tmp24) (a long lifetime temp) called for Inline return value spill temp.
lvaSetClass: setting class for V31 to (00007FFC6B4AFBD8) Task`1
Basic block list for 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB50 [0049] 1 1 [000..013)-> BB81 ( cond )
BB51 [0050] 1 1 [013..02E)-> BB56 ( cond )
BB52 [0051] 1 1 [02E..03D)-> BB54 ( cond )
BB53 [0052] 1 1 [03D..044)-> BB55 (always)
BB54 [0053] 1 1 [044..049)
BB55 [0054] 2 1 [049..051) (return)
BB56 [0055] 1 1 [051..06C)-> BB60 ( cond )
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond )
BB58 [0057] 1 1 [080..087)-> BB83 ( cond )
BB59 [0058] 1 1 [087..09A) (return)
BB60 [0059] 1 1 [09A..0B5)-> BB62 ( cond )
BB61 [0060] 1 1 [0B5..0C5)-> BB80 ( cond )
BB62 [0061] 2 1 [0C5..0E0)-> BB64 ( cond )
BB63 [0062] 1 1 [0E0..0F0)-> BB80 ( cond )
BB64 [0063] 2 1 [0F0..10B)-> BB66 ( cond )
BB65 [0064] 1 1 [10B..11B)-> BB80 ( cond )
BB66 [0065] 2 1 [11B..136)-> BB68 ( cond )
BB67 [0066] 1 1 [136..146)-> BB80 ( cond )
BB68 [0067] 2 1 [146..161)-> BB70 ( cond )
BB69 [0068] 1 1 [161..171)-> BB80 ( cond )
BB70 [0069] 2 1 [171..18C)-> BB72 ( cond )
BB71 [0070] 1 1 [18C..19C)-> BB80 ( cond )
BB72 [0071] 2 1 [19C..1B7)-> BB74 ( cond )
BB73 [0072] 1 1 [1B7..1C7)-> BB80 ( cond )
BB74 [0073] 2 1 [1C7..1E2)-> BB76 ( cond )
BB75 [0074] 1 1 [1E2..1EF)-> BB80 ( cond )
BB76 [0075] 2 1 [1EF..20A)-> BB78 ( cond )
BB77 [0076] 1 1 [20A..21E)-> BB80 ( cond )
BB78 [0077] 2 1 [21E..239)-> BB83 ( cond )
BB79 [0078] 1 1 [239..24D)-> BB83 ( cond )
BB80 [0079] 10 1 [24D..253) (return)
BB81 [0080] 1 1 [253..25B)-> BB83 ( cond )
BB82 [0081] 1 1 [25B..261) (return)
BB83 [0082] 5 1 [261..268) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref
impImportBlockPending for BB50
Importing BB50 (PC=000) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 32 (V32 tmp25) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 1B000003
[000627] ------------ * STMT void
[000624] ------------ | /--* CNS_INT int 0
[000626] IA------R--- \--* ASG struct (init)
[000625] -------N---- \--* BLK(4) struct
[000623] L----------- \--* ADDR byref
[000622] ------------ \--* LCL_VAR int V32 tmp25
[ 0] 8 (0x008) ldloc.0
[ 1] 9 (0x009) box 1B000003
Compiler::impImportAndPushBox -- handling BOX(value class) via inline allocate/copy sequence
lvaGrabTemp returning 33 (V33 tmp26) called for Single-def Box Helper.
lvaSetClass: setting class for V33 to (00007FFC6B4A92C8) Int32 [exact]
[000633] ------------ * STMT void
[000630] ------------ | /--* ALLOCOBJ ref
[000629] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4a92c8 class
[000632] -A---------- \--* ASG ref
[000631] D------N---- \--* LCL_VAR ref V33 tmp26
[000639] ------------ * STMT void
[000628] ------------ | /--* LCL_VAR int V32 tmp25
[000638] -A---------- \--* ASG int
[000637] -------N---- \--* IND int
[000635] ------------ | /--* CNS_INT long 8
[000636] ------------ \--* ADD byref
[000634] ------------ \--* LCL_VAR ref V33 tmp26
[ 1] 14 (0x00e) brfalse
Attempting to optimize BOX(valueType) EQ null [000643]
gtTryRemoveBoxUpstreamEffects: attempting to remove side effects of BOX (valuetype) [000641] (assign/newobj [000633] copy [000639])
Bashing NEWOBJ [000632] to NOP
Bashing COPY [000638] to NOP; no source side effects.
Success: replacing BOX(valueType) EQ null with 0
The block falls through into the next BB51
impImportBlockPending for BB51
Importing BB51 (PC=019) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 19 (0x013) ldtoken
[ 1] 24 (0x018) call 060009A6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 1] 29 (0x01d) ldtoken
[ 2] 34 (0x022) call 060009A6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 2] 39 (0x027) call 060009AD
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
Importing Type.op_*Equality intrinsic
Folding call to Type:op_Equality to a simple compare via EQ
Optimizing compare of types-from-handles to instead compare handles
Asking runtime to compare 00007FFC6B4A92C8 (Int32) and 00007FFC6B4A7468 (Boolean) for equality
Runtime reports comparison is known at jit time: 0
[ 1] 44 (0x02c) brfalse.s
Folding operator with constant nodes into a constant:
[000654] ------------ /--* CNS_INT int 0
[000655] ------------ * EQ int
[000653] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000655] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB56
impImportBlockPending for BB56
Importing BB56 (PC=081) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 81 (0x051) ldtoken
[ 1] 86 (0x056) call 060009A6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 1] 91 (0x05b) ldtoken
[ 2] 96 (0x060) call 060009A6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[ 2] 101 (0x065) call 060009AD
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
Importing Type.op_*Equality intrinsic
Folding call to Type:op_Equality to a simple compare via EQ
Optimizing compare of types-from-handles to instead compare handles
Asking runtime to compare 00007FFC6B4A92C8 (Int32) and 00007FFC6B4A92C8 (Int32) for equality
Runtime reports comparison is known at jit time: 1
[ 1] 106 (0x06a) brfalse.s
Folding operator with constant nodes into a constant:
[000665] ------------ /--* CNS_INT int 0
[000666] ------------ * EQ int
[000664] ------------ \--* CNS_INT int 1
Bashed to int constant:
[000666] ------------ * CNS_INT int 0
The block falls through into the next BB57
impImportBlockPending for BB57
Importing BB57 (PC=108) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 108 (0x06c) ldarg.0
[ 1] 109 (0x06d) box 1B000003
Importing BOX; UNBOX.ANY as NOP
[ 1] 119 (0x077) stloc.3
lvaGrabTemp returning 34 (V34 tmp27) (a long lifetime temp) called for Inline stloc first use temp.
[000670] ------------ * STMT void
[000609] ------------ | /--* LCL_VAR int V02 loc1
[000669] -A---------- \--* ASG int
[000668] D------N---- \--* LCL_VAR int V34 tmp27
[ 0] 120 (0x078) ldloc.3
[ 1] 121 (0x079) ldc.i4.s 9
[ 2] 123 (0x07b) bge
[000675] ------------ * STMT void
[000674] ------------ \--* JTRUE void
[000672] ------------ | /--* CNS_INT int 9
[000673] ------------ \--* GE int
[000671] ------------ \--* LCL_VAR int V34 tmp27
impImportBlockPending for BB58
impImportBlockPending for BB83
Importing BB83 (PC=609) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 609 (0x261) ldarg.0
[ 1] 610 (0x262) newobj
lvaGrabTemp returning 35 (V35 tmp28) called for NewObj constructor temp.
[000682] ------------ * STMT void
[000679] ------------ | /--* ALLOCOBJ ref
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -A---------- \--* ASG ref
[000680] D------N---- \--* LCL_VAR ref V35 tmp28
lvaSetClass: setting class for V35 to (00007FFC6B4AFBD8) Task`1 [exact]
0A000C15
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000686] ------------ * STMT void
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1
[ 1] 615 (0x267) ret
Inlinee Return expression (before normalization) =>
[000687] ------------ * LCL_VAR ref V35 tmp28
[000690] ------------ * STMT void
[000687] ------------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---------- \--* ASG ref
[000688] D------N---- \--* LCL_VAR ref V31 tmp24
Inlinee Return expression (after normalization) =>
[000691] ------------ * LCL_VAR ref V31 tmp24
Importing BB58 (PC=128) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 128 (0x080) ldloc.3
[ 1] 129 (0x081) ldc.i4.m1 -1
[ 2] 130 (0x082) blt
[000697] ------------ * STMT void
[000696] ------------ \--* JTRUE void
[000694] ------------ | /--* CNS_INT int -1
[000695] ------------ \--* LT int
[000693] ------------ \--* LCL_VAR int V34 tmp27
impImportBlockPending for BB59
impImportBlockPending for BB83
Importing BB59 (PC=135) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 135 (0x087) ldsfld 04001CFF
[ 1] 140 (0x08c) ldloc.3
[ 2] 141 (0x08d) ldc.i4.m1 -1
[ 3] 142 (0x08e) sub
[ 2] 143 (0x08f) ldelem.ref
[ 1] 144 (0x090) stloc.s 4
lvaGrabTemp returning 36 (V36 tmp29) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V36 to (00007FFC6B4AFBD8) Task`1
[000713] ------------ * STMT void
[000708] ------------ | /--* CNS_INT int -1
[000709] ------------ | /--* SUB int
[000707] ------------ | | \--* LCL_VAR int V34 tmp27
[000710] R-CXG------- | /--* INDEX ref
[000699] ----G------- | | | /--* FIELD ref Int32Tasks
[000706] --CXG------- | | \--* COMMA ref
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A
[000712] -ACXG------- \--* ASG ref
[000711] D------N---- \--* LCL_VAR ref V36 tmp29
[ 0] 146 (0x092) ldloc.s 4
[ 1] 148 (0x094) call 2B000351
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[000719] ------------ * STMT void
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98)
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29
[ 1] 153 (0x099) ret
Inlinee Return expression (before normalization) =>
[000720] --C--------- * RET_EXPR ref (inl return from call [000715])
[000723] ------------ * STMT void
[000720] --C--------- | /--* RET_EXPR ref (inl return from call [000715])
[000722] -AC--------- \--* ASG ref
[000721] D------N---- \--* LCL_VAR ref V31 tmp24
Inlinee Return expression (after normalization) =>
[000724] ------------ * LCL_VAR ref V31 tmp24
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB50 [0049] 1 1 [000..013) i newobj
BB51 [0050] 1 1 [013..02E)-> BB56 (always) i
BB52 [0051] 1 1 [02E..03D)-> BB54 ( cond )
BB53 [0052] 1 1 [03D..044)-> BB55 (always)
BB54 [0053] 1 1 [044..049)
BB55 [0054] 2 1 [049..051) (return)
BB56 [0055] 1 1 [051..06C) i
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond ) i
BB58 [0057] 1 1 [080..087)-> BB83 ( cond ) i
BB59 [0058] 1 1 [087..09A) (return) i
BB60 [0059] 1 1 [09A..0B5)-> BB62 ( cond )
BB61 [0060] 1 1 [0B5..0C5)-> BB80 ( cond )
BB62 [0061] 2 1 [0C5..0E0)-> BB64 ( cond )
BB63 [0062] 1 1 [0E0..0F0)-> BB80 ( cond )
BB64 [0063] 2 1 [0F0..10B)-> BB66 ( cond )
BB65 [0064] 1 1 [10B..11B)-> BB80 ( cond )
BB66 [0065] 2 1 [11B..136)-> BB68 ( cond )
BB67 [0066] 1 1 [136..146)-> BB80 ( cond )
BB68 [0067] 2 1 [146..161)-> BB70 ( cond )
BB69 [0068] 1 1 [161..171)-> BB80 ( cond )
BB70 [0069] 2 1 [171..18C)-> BB72 ( cond )
BB71 [0070] 1 1 [18C..19C)-> BB80 ( cond )
BB72 [0071] 2 1 [19C..1B7)-> BB74 ( cond )
BB73 [0072] 1 1 [1B7..1C7)-> BB80 ( cond )
BB74 [0073] 2 1 [1C7..1E2)-> BB76 ( cond )
BB75 [0074] 1 1 [1E2..1EF)-> BB80 ( cond )
BB76 [0075] 2 1 [1EF..20A)-> BB78 ( cond )
BB77 [0076] 1 1 [20A..21E)-> BB80 ( cond )
BB78 [0077] 2 1 [21E..239)-> BB83 ( cond )
BB79 [0078] 1 1 [239..24D)-> BB83 ( cond )
BB80 [0079] 10 1 [24D..253) (return)
BB81 [0080] 1 1 [253..25B)-> BB83 ( cond )
BB82 [0081] 1 1 [25B..261) (return)
BB83 [0082] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
BB52 was not imported, marked as removed (1)
BB53 was not imported, marked as removed (2)
BB54 was not imported, marked as removed (3)
BB55 was not imported, marked as removed (4)
BB60 was not imported, marked as removed (5)
BB61 was not imported, marked as removed (6)
BB62 was not imported, marked as removed (7)
BB63 was not imported, marked as removed (8)
BB64 was not imported, marked as removed (9)
BB65 was not imported, marked as removed (10)
BB66 was not imported, marked as removed (11)
BB67 was not imported, marked as removed (12)
BB68 was not imported, marked as removed (13)
BB69 was not imported, marked as removed (14)
BB70 was not imported, marked as removed (15)
BB71 was not imported, marked as removed (16)
BB72 was not imported, marked as removed (17)
BB73 was not imported, marked as removed (18)
BB74 was not imported, marked as removed (19)
BB75 was not imported, marked as removed (20)
BB76 was not imported, marked as removed (21)
BB77 was not imported, marked as removed (22)
BB78 was not imported, marked as removed (23)
BB79 was not imported, marked as removed (24)
BB80 was not imported, marked as removed (25)
BB81 was not imported, marked as removed (26)
BB82 was not imported, marked as removed (27)
Renumbering the basic blocks for fgRemoveEmptyBlocks
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB50 [0049] 1 1 [000..013) i newobj
BB51 [0050] 1 1 [013..02E)-> BB56 (always) i
BB56 [0055] 1 1 [051..06C) i
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond ) i
BB58 [0057] 1 1 [080..087)-> BB83 ( cond ) i
BB59 [0058] 1 1 [087..09A) (return) i
BB83 [0082] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
Renumber BB50 to BB84
Renumber BB51 to BB85
Renumber BB56 to BB86
Renumber BB57 to BB87
Renumber BB58 to BB88
Renumber BB59 to BB89
Renumber BB83 to BB90
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB84 [0049] 1 1 [000..013) i newobj
BB85 [0050] 1 1 [013..02E)-> BB86 (always) i
BB86 [0055] 1 1 [051..06C) i
BB87 [0056] 1 1 [06C..080)-> BB90 ( cond ) i
BB88 [0057] 1 1 [080..087)-> BB90 ( cond ) i
BB89 [0058] 1 1 [087..09A) (return) i
BB90 [0082] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short)
----------- Statements (and blocks) added due to the inlining of call [000610] -----------
Arguments setup:
Inlinee method body:New Basic Block BB91 [0083] created.
Convert bbJumpKind of BB89 to BBJ_ALWAYS to bottomBlock BB91
Convert bbJumpKind of BB90 to BBJ_NONE
fgInlineAppendStatements: nulling out gc ref inlinee locals.
[000728] ------------ * STMT void (IL 0x092... ???)
[000725] ------------ | /--* CNS_INT ref null
[000727] -A---------- \--* ASG ref
[000726] D------N---- \--* LCL_VAR ref V36 tmp29
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB84 [092..093), preds={} succs={BB85}
***** BB84, stmt 1
[000627] ------------ * STMT void (IL 0x092... ???)
[000624] ------------ | /--* CNS_INT int 0
[000626] IA------R--- \--* ASG struct (init)
[000625] -------N---- \--* BLK(4) struct
[000623] L----------- \--* ADDR byref
[000622] ------------ \--* LCL_VAR int V32 tmp25
***** BB84, stmt 2
[000633] ------------ * STMT void (IL 0x092... ???)
[000632] ------------ \--* NOP void
***** BB84, stmt 3
[000639] ------------ * STMT void (IL 0x092... ???)
[000638] ------------ \--* NOP void
------------ BB85 [092..093) -> BB86 (always), preds={} succs={BB86}
------------ BB86 [092..093), preds={} succs={BB87}
------------ BB87 [092..093) -> BB90 (cond), preds={} succs={BB88,BB90}
***** BB87, stmt 4
[000670] ------------ * STMT void (IL 0x092... ???)
[000609] ------------ | /--* LCL_VAR int V02 loc1
[000669] -A---------- \--* ASG int
[000668] D------N---- \--* LCL_VAR int V34 tmp27
***** BB87, stmt 5
[000675] ------------ * STMT void (IL 0x092... ???)
[000674] ------------ \--* JTRUE void
[000672] ------------ | /--* CNS_INT int 9
[000673] ------------ \--* GE int
[000671] ------------ \--* LCL_VAR int V34 tmp27
------------ BB88 [092..093) -> BB90 (cond), preds={} succs={BB89,BB90}
***** BB88, stmt 6
[000697] ------------ * STMT void (IL 0x092... ???)
[000696] ------------ \--* JTRUE void
[000694] ------------ | /--* CNS_INT int -1
[000695] ------------ \--* LT int
[000693] ------------ \--* LCL_VAR int V34 tmp27
------------ BB89 [092..093) -> BB91 (always), preds={} succs={BB91}
***** BB89, stmt 7
[000713] ------------ * STMT void (IL 0x092... ???)
[000708] ------------ | /--* CNS_INT int -1
[000709] ------------ | /--* SUB int
[000707] ------------ | | \--* LCL_VAR int V34 tmp27
[000710] R-CXG------- | /--* INDEX ref
[000699] ----G------- | | | /--* FIELD ref Int32Tasks
[000706] --CXG------- | | \--* COMMA ref
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A
[000712] -ACXG------- \--* ASG ref
[000711] D------N---- \--* LCL_VAR ref V36 tmp29
***** BB89, stmt 8
[000719] ------------ * STMT void (IL 0x092... ???)
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98)
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29
***** BB89, stmt 9
[000723] ------------ * STMT void (IL 0x092... ???)
[000720] --C--------- | /--* RET_EXPR ref (inl return from call [000715])
[000722] -AC--------- \--* ASG ref
[000721] D------N---- \--* LCL_VAR ref V31 tmp24
------------ BB90 [092..093), preds={} succs={BB91}
***** BB90, stmt 10
[000682] ------------ * STMT void (IL 0x092... ???)
[000679] ------------ | /--* ALLOCOBJ ref
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -A---------- \--* ASG ref
[000680] D------N---- \--* LCL_VAR ref V35 tmp28
***** BB90, stmt 11
[000686] ------------ * STMT void (IL 0x092... ???)
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1
***** BB90, stmt 12
[000690] ------------ * STMT void (IL 0x092... ???)
[000687] ------------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---------- \--* ASG ref
[000688] D------N---- \--* LCL_VAR ref V31 tmp24
-------------------------------------------------------------------------------------------------------------------
INLINER: Updating optMethodFlags -- root:0 callee:2 new:2
Return expression for call at [000610] is
[000724] ------------ * LCL_VAR ref V31 tmp24
Successfully inlined AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref (616 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
BB47 becomes empty
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000719] in BB89:
[000719] ------------ * STMT void (IL 0x092... ???)
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98)
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29
Argument #0: is a local var
[000714] ------------ * LCL_VAR ref V36 tmp29
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEF98:
Invoking compiler for the inlinee method Unsafe:As(ref):ref :
IL to import:
IL_0000 02 ldarg.0
IL_0001 2a ret
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEF98.
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref
Jump targets:
none
New Basic Block BB92 [0084] created.
BB92 [000..002)
Basic block list for 'Unsafe:As(ref):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB92 [0084] 1 1 [000..002) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Unsafe:As(ref):ref
impImportBlockPending for BB92
Importing BB92 (PC=000) of 'Unsafe:As(ref):ref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000714] ------------ * LCL_VAR ref V36 tmp29
Inlinee Return expression (after normalization) =>
[000714] ------------ * LCL_VAR ref V36 tmp29
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB92 [0084] 1 1 [000..002) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000715] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000715] is
[000714] ------------ * LCL_VAR ref V36 tmp29
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 4) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000720] with [000714]
[000720] --C--------- * RET_EXPR ref (inl return from call [000714])
Inserting the inline return expression
[000714] ------------ * LCL_VAR ref V36 tmp29
Expanding INLINE_CANDIDATE in statement [000686] in BB90:
[000686] ------------ * STMT void (IL 0x092... ???)
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1
thisArg: is a local var
[000683] ------------ * LCL_VAR ref V35 tmp28
Argument #1: is a local var
[000677] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:.ctor(int):this set to 0x00007FFC6B4AFBD9:
Invoking compiler for the inlinee method Task`1:.ctor(int):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 16 ldc.i4.0
IL_0002 16 ldc.i4.0
IL_0003 12 00 ldloca.s 0x0
IL_0005 fe 15 38 03 00 02 initobj 0x2000338
IL_000b 06 ldloc.0
IL_000c 28 b1 29 00 06 call 0x60029B1
IL_0011 02 ldarg.0
IL_0012 03 ldarg.1
IL_0013 7d 94 07 00 0a stfld 0xA000794
IL_0018 2a ret
INLINER impTokenLookupContextHandle for Task`1:.ctor(int):this is 0x00007FFC6B4AFBD9.
*************** In fgFindBasicBlocks() for Task`1:.ctor(int):this
weight= 10 : state 3 [ ldarg.0 ]
weight= 15 : state 23 [ ldc.i4.0 ]
weight= 15 : state 23 [ ldc.i4.0 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 55 : state 180 [ initobj ]
weight= 12 : state 7 [ ldloc.0 ]
weight= 79 : state 40 [ call ]
weight= 69 : state 226 [ ldarg.0 -> ldarg.1 -> stfld ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
Inline candidate is mostly loads and stores. Multiplier increased to 4.5.
Inline candidate callsite is boring. Multiplier increased to 5.8.
calleeNativeSizeEstimate=335
callsiteNativeSizeEstimate=115
benefit multiplier=5.8
threshold=667
Native estimate for function size is within threshold for inlining 33.5 <= 66.7 (multiplier = 5.8)
Jump targets:
none
New Basic Block BB93 [0085] created.
BB93 [000..019)
Basic block list for 'Task`1:.ctor(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB93 [0085] 1 1 [000..019) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task`1:.ctor(int):this
impImportBlockPending for BB93
Importing BB93 (PC=000) of 'Task`1:.ctor(int):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldc.i4.0 0
[ 2] 2 (0x002) ldc.i4.0 0
[ 3] 3 (0x003) ldloca.s 0
lvaGrabTemp returning 37 (V37 tmp30) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 4] 5 (0x005) initobj 02000338
[000739] ------------ * STMT void
[000737] ------------ | /--* CNS_INT int 0
[000738] IA------R--- \--* ASG struct (init)
[000735] D------N---- \--* LCL_VAR struct V37 tmp30
[ 3] 11 (0x00b) ldloc.0
[ 4] 12 (0x00c) call 060029B1
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
Calling impNormStructVal on:
[000740] ------------ * LCL_VAR struct V37 tmp30
resulting tree:
[000743] x----------- * OBJ(8) struct
[000742] L----------- \--* ADDR byref
[000740] ------------ \--* LCL_VAR struct V37 tmp30
[000747] ------------ * STMT void
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000733] ------------ arg1 +--* CNS_INT int 0
[000734] ------------ arg2 +--* CNS_INT int 0
[000743] x----------- arg3 \--* OBJ(8) struct
[000742] L----------- \--* ADDR byref
[000740] ------------ \--* LCL_VAR struct V37 tmp30
[ 0] 17 (0x011) ldarg.0
[ 1] 18 (0x012) ldarg.1
[ 2] 19 (0x013) stfld 0A000794
[000751] ------------ * STMT void
[000677] ------------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG------- \--* ASG int
[000749] ---XG--N---- \--* FIELD int m_result
[000748] ------------ \--* LCL_VAR ref V35 tmp28
[ 0] 24 (0x018) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB93 [0085] 1 1 [000..019) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000684] -----------
Arguments setup:
Inlinee method body:
[000739] ------------ * STMT void (IL 0x092... ???)
[000737] ------------ | /--* CNS_INT int 0
[000738] IA------R--- \--* ASG struct (init)
[000735] D------N---- \--* LCL_VAR struct V37 tmp30
[000747] ------------ * STMT void (IL 0x092... ???)
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000733] ------------ arg1 +--* CNS_INT int 0
[000734] ------------ arg2 +--* CNS_INT int 0
[000743] x----------- arg3 \--* OBJ(8) struct
[000742] L----------- \--* ADDR byref
[000740] ------------ \--* LCL_VAR struct V37 tmp30
[000751] ------------ * STMT void (IL 0x092... ???)
[000677] ------------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG------- \--* ASG int
[000749] ---XG--N---- \--* FIELD int m_result
[000748] ------------ \--* LCL_VAR ref V35 tmp28
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Task`1:.ctor(int):this (25 IL bytes) (depth 4) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'Task`1:.ctor(int):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000747] in BB90:
[000747] ------------ * STMT void (IL 0x092... ???)
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1)
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28
[000733] ------------ arg1 +--* CNS_INT int 0
[000734] ------------ arg2 +--* CNS_INT int 0
[000743] x----------- arg3 \--* OBJ(8) struct
[000742] L----------- \--* ADDR byref
[000740] ------------ \--* LCL_VAR struct V37 tmp30
thisArg: is a local var
[000683] ------------ * LCL_VAR ref V35 tmp28
Argument #1: is a constant
[000733] ------------ * CNS_INT int 0
Argument #2: is a constant
[000734] ------------ * CNS_INT int 0
Argument #3: has caller local ref
[000743] x----------- * OBJ(8) struct
[000742] L----------- \--* ADDR byref
[000740] ------------ \--* LCL_VAR struct V37 tmp30
Folding operator with constant nodes into a constant:
[000753] ------------ * CAST int <- bool <- int
[000733] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000753] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Task:.ctor(bool,int,struct):this set to 0x00007FFC6B4AFAC1:
Invoking compiler for the inlinee method Task:.ctor(bool,int,struct):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 28 98 01 00 06 call 0x6000198
IL_0006 04 ldarg.2
IL_0007 0a stloc.0
IL_0008 03 ldarg.1
IL_0009 2c 2b brfalse.s 43 (IL_0036)
IL_000b 02 ldarg.0
IL_000c 20 00 00 50 00 ldc.i4 0x500000
IL_0011 06 ldloc.0
IL_0012 60 or
IL_0013 fe 13 volatile.
IL_0015 7d fb 0d 00 04 stfld 0x4000DFB
IL_001a 02 ldarg.0
IL_001b 73 7a 2a 00 06 newobj 0x6002A7A
IL_0020 25 dup
IL_0021 05 ldarg.3
IL_0022 7d 1a 0e 00 04 stfld 0x4000E1A
IL_0027 25 dup
IL_0028 17 ldc.i4.1
IL_0029 fe 13 volatile.
IL_002b 7d 1c 0e 00 04 stfld 0x4000E1C
IL_0030 7d 10 0e 00 04 stfld 0x4000E10
IL_0035 2a ret
IL_0036 02 ldarg.0
IL_0037 20 00 00 00 01 ldc.i4 0x1000000
IL_003c 06 ldloc.0
IL_003d 60 or
IL_003e fe 13 volatile.
IL_0040 7d fb 0d 00 04 stfld 0x4000DFB
IL_0045 2a ret
INLINER impTokenLookupContextHandle for Task:.ctor(bool,int,struct):this is 0x00007FFC6B4AFAC1.
*************** In fgFindBasicBlocks() for Task:.ctor(bool,int,struct):this
weight= 10 : state 3 [ ldarg.0 ]
weight= 79 : state 40 [ call ]
weight= 35 : state 5 [ ldarg.2 ]
weight= 6 : state 11 [ stloc.0 ]
weight= 16 : state 4 [ ldarg.1 ]
weight= 27 : state 44 [ brfalse.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 38 : state 33 [ ldc.i4 ]
weight= 12 : state 7 [ ldloc.0 ]
weight= -7 : state 84 [ or ]
weight=-44 : state 178 [ volatile ]
weight= 31 : state 111 [ stfld ]
weight= 10 : state 3 [ ldarg.0 ]
weight=227 : state 103 [ newobj ]
weight= 11 : state 38 [ dup ]
weight= 28 : state 6 [ ldarg.3 ]
weight= 31 : state 111 [ stfld ]
weight= 11 : state 38 [ dup ]
weight= 28 : state 24 [ ldc.i4.1 ]
weight=-44 : state 178 [ volatile ]
weight= 31 : state 111 [ stfld ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 38 : state 33 [ ldc.i4 ]
weight= 12 : state 7 [ ldloc.0 ]
weight= -7 : state 84 [ or ]
weight=-44 : state 178 [ volatile ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
multiplier in instance constructors increased to 1.5.
Inline candidate has an arg that feeds a constant test. Multiplier increased to 2.5.
Inline candidate has const arg that feeds a conditional. Multiplier increased to 5.5.
Inline candidate callsite is boring. Multiplier increased to 6.8.
calleeNativeSizeEstimate=655
callsiteNativeSizeEstimate=175
benefit multiplier=6.8
threshold=1190
Native estimate for function size is within threshold for inlining 65.5 <= 119 (multiplier = 6.8)
Jump targets:
IL_0036
New Basic Block BB94 [0086] created.
BB94 [000..00B)
New Basic Block BB95 [0087] created.
BB95 [00B..036)
New Basic Block BB96 [0088] created.
BB96 [036..046)
Basic block list for 'Task:.ctor(bool,int,struct):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB94 [0086] 1 1 [000..00B)-> BB96 ( cond )
BB95 [0087] 1 1 [00B..036) (return)
BB96 [0088] 1 1 [036..046) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:.ctor(bool,int,struct):this
impImportBlockPending for BB94
Importing BB94 (PC=000) of 'Task:.ctor(bool,int,struct):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) call 06000198
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000756] ------------ * STMT void
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9)
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28
[ 0] 6 (0x006) ldarg.2
[ 1] 7 (0x007) stloc.0
lvaGrabTemp returning 38 (V38 tmp31) (a long lifetime temp) called for Inline stloc first use temp.
[000760] ------------ * STMT void
[000757] ------------ | /--* CNS_INT int 0
[000759] -A---------- \--* ASG int
[000758] D------N---- \--* LCL_VAR int V38 tmp31
[ 0] 8 (0x008) ldarg.1
[ 1] 9 (0x009) brfalse.s
Folding operator with constant nodes into a constant:
[000762] ------------ /--* CNS_INT int 0
[000763] ------------ * EQ int
[000761] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000763] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB96
impImportBlockPending for BB96
Importing BB96 (PC=054) of 'Task:.ctor(bool,int,struct):this'
[ 0] 54 (0x036) ldarg.0
[ 1] 55 (0x037) ldc.i4 16777216
[ 2] 60 (0x03c) ldloc.0
[ 3] 61 (0x03d) or
[ 2] 62 (0x03e) volatile.stfld 04000DFB
[000771] ------------ * STMT void
[000767] ------------ | /--* LCL_VAR int V38 tmp31
[000768] ------------ | /--* OR int
[000766] ------------ | | \--* CNS_INT int 0x1000000
[000770] -A-XGO------ \--* ASG int
[000769] V--XGO-N---- \--* FIELD int m_stateFlags
[000765] ------------ \--* LCL_VAR ref V35 tmp28
[ 0] 69 (0x045) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB94 [0086] 1 1 [000..00B)-> BB96 (always) i
BB95 [0087] 1 1 [00B..036) (return)
BB96 [0088] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
BB95 was not imported, marked as removed (1)
Renumbering the basic blocks for fgRemoveEmptyBlocks
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB94 [0086] 1 1 [000..00B)-> BB96 (always) i
BB96 [0088] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
Renumber BB94 to BB97
Renumber BB96 to BB98
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB97 [0086] 1 1 [000..00B)-> BB98 (always) i
BB98 [0088] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short)
----------- Statements (and blocks) added due to the inlining of call [000741] -----------
Arguments setup:
Inlinee method body:New Basic Block BB99 [0089] created.
Convert bbJumpKind of BB98 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB97 [092..093) -> BB98 (always), preds={} succs={BB98}
***** BB97, stmt 1
[000756] ------------ * STMT void (IL 0x092... ???)
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9)
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28
***** BB97, stmt 2
[000760] ------------ * STMT void (IL 0x092... ???)
[000757] ------------ | /--* CNS_INT int 0
[000759] -A---------- \--* ASG int
[000758] D------N---- \--* LCL_VAR int V38 tmp31
------------ BB98 [092..093), preds={} succs={BB99}
***** BB98, stmt 3
[000771] ------------ * STMT void (IL 0x092... ???)
[000767] ------------ | /--* LCL_VAR int V38 tmp31
[000768] ------------ | /--* OR int
[000766] ------------ | | \--* CNS_INT int 0x1000000
[000770] -A-XGO------ \--* ASG int
[000769] V--XGO-N---- \--* FIELD int m_stateFlags
[000765] ------------ \--* LCL_VAR ref V35 tmp28
-------------------------------------------------------------------------------------------------------------------
Successfully inlined Task:.ctor(bool,int,struct):this (70 IL bytes) (depth 5) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:.ctor(bool,int,struct):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000756] in BB97:
[000756] ------------ * STMT void (IL 0x092... ???)
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9)
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28
thisArg: is a local var
[000683] ------------ * LCL_VAR ref V35 tmp28
INLINER: inlineInfo.tokenLookupContextHandle for Object:.ctor():this set to 0x00007FFC6B4A7DB9:
Invoking compiler for the inlinee method Object:.ctor():this :
IL to import:
IL_0000 2a ret
INLINER impTokenLookupContextHandle for Object:.ctor():this is 0x00007FFC6B4A7DB9.
*************** In fgFindBasicBlocks() for Object:.ctor():this
Jump targets:
none
New Basic Block BB100 [0090] created.
BB100 [000..001)
Basic block list for 'Object:.ctor():this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB100 [0090] 1 1 [000..001) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Object:.ctor():this
impImportBlockPending for BB100
Importing BB100 (PC=000) of 'Object:.ctor():this'
[ 0] 0 (0x000) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB100 [0090] 1 1 [000..001) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000755] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 6) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Object:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000613] with [000724]
[000613] --C--------- * RET_EXPR ref (inl return from call [000724])
Inserting the inline return expression
[000724] ------------ * LCL_VAR ref V31 tmp24
*************** After fgInline()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
[000005] ------------ * STMT void (IL 0x000...0x006)
[000002] ---XG------- | /--* FIELD int <>1__state
[000001] ------------ | | \--* LCL_VAR byref V00 this
[000004] -A-XG------- \--* ASG int
[000003] D------N---- \--* LCL_VAR int V01 loc0
------------ BB02 [007..00A) -> BB05 (cond), preds={} succs={BB03,BB05}
***** BB02, stmt 2
[000013] ------------ * STMT void (IL 0x007...0x008)
[000012] ------------ \--* JTRUE void
[000010] ------------ | /--* CNS_INT int 0
[000011] ------------ \--* EQ int
[000009] ------------ \--* LCL_VAR int V01 loc0
------------ BB03 [00A..02B), preds={} succs={BB18}
***** BB03, stmt 3
[000155] ------------ * STMT void (IL 0x00A... ???)
[000153] ------------ | /--* CNS_INT int 0
[000154] IA------R--- \--* ASG struct (init)
[000152] D------N---- \--* LCL_VAR struct V10 tmp3
***** BB03, stmt 4
[000172] ------------ * STMT void (IL 0x00A... ???)
[000169] ------------ | /--* CNS_INT int 1
[000171] -A---------- \--* ASG int
[000170] -------N---- \--* FIELD int _result
[000167] L----------- \--* ADDR byref
[000168] ------------ \--* LCL_VAR struct V10 tmp3
***** BB03, stmt 5
[000178] ------------ * STMT void (IL 0x00A... ???)
[000175] ------------ | /--* CNS_INT ref null
[000177] -A---------- \--* ASG ref
[000176] -------N---- \--* FIELD ref _obj
[000173] L----------- \--* ADDR byref
[000174] ------------ \--* LCL_VAR struct V10 tmp3
***** BB03, stmt 6
[000184] ------------ * STMT void (IL 0x00A... ???)
[000181] ------------ | /--* CNS_INT int 1
[000183] -A---------- \--* ASG bool
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext
[000179] L----------- \--* ADDR byref
[000180] ------------ \--* LCL_VAR struct V10 tmp3
***** BB03, stmt 7
[000190] ------------ * STMT void (IL 0x00A... ???)
[000187] ------------ | /--* CNS_INT int 0
[000189] -A---------- \--* ASG short
[000188] -------N---- \--* FIELD short _token
[000185] L----------- \--* ADDR byref
[000186] ------------ \--* LCL_VAR struct V10 tmp3
***** BB03, stmt 8
[000073] ------------ * STMT void (IL ???... ???)
[000161] ------------ | /--* LCL_VAR struct V10 tmp3
[000164] -A------R--- \--* ASG struct (copy)
[000163] D----------- \--* LCL_VAR struct V04 loc3
***** BB03, stmt 9
[000207] ------------ * STMT void (IL 0x010... ???)
[000205] ------------ | /--* CNS_INT int 0
[000206] IA------R--- \--* ASG struct (init)
[000204] D------N---- \--* LCL_VAR struct V11 tmp4
***** BB03, stmt 10
[000261] ------------ * STMT void (IL 0x010... ???)
[000196] ------------ | /--* FIELD ref _obj
[000194] L----------- | | \--* ADDR byref
[000195] ------------ | | \--* LCL_VAR struct V04 loc3
[000260] -A---------- \--* ASG ref
[000259] D------N---- \--* LCL_VAR ref V13 tmp6
***** BB03, stmt 11
[000264] ------------ * STMT void (IL 0x010... ???)
[000199] ------------ | /--* FIELD int _result
[000197] L----------- | | \--* ADDR byref
[000198] ------------ | | \--* LCL_VAR struct V04 loc3
[000263] -A---------- \--* ASG int
[000262] D------N---- \--* LCL_VAR int V14 tmp7
***** BB03, stmt 12
[000267] ------------ * STMT void (IL 0x010... ???)
[000202] ------------ | /--* FIELD short _token
[000200] L----------- | | \--* ADDR byref
[000201] ------------ | | \--* LCL_VAR struct V04 loc3
[000266] -A---------- \--* ASG short
[000265] D------N---- \--* LCL_VAR short V15 tmp8
***** BB03, stmt 13
[000240] ------------ * STMT void (IL 0x010... ???)
[000237] ------------ | /--* LCL_VAR ref V13 tmp6
[000239] -A---------- \--* ASG ref
[000238] -------N---- \--* FIELD ref _obj
[000235] L----------- \--* ADDR byref
[000236] ------------ \--* LCL_VAR struct V11 tmp4
***** BB03, stmt 14
[000246] ------------ * STMT void (IL 0x010... ???)
[000243] ------------ | /--* LCL_VAR int V14 tmp7
[000245] -A---------- \--* ASG int
[000244] -------N---- \--* FIELD int _result
[000241] L----------- \--* ADDR byref
[000242] ------------ \--* LCL_VAR struct V11 tmp4
***** BB03, stmt 15
[000252] ------------ * STMT void (IL 0x010... ???)
[000249] ------------ | /--* LCL_VAR int V15 tmp8
[000251] -A---------- \--* ASG short
[000250] -------N---- \--* FIELD short _token
[000247] L----------- \--* ADDR byref
[000248] ------------ \--* LCL_VAR struct V11 tmp4
***** BB03, stmt 16
[000258] ------------ * STMT void (IL 0x010... ???)
[000255] ------------ | /--* CNS_INT int 0
[000257] -A---------- \--* ASG bool
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext
[000253] L----------- \--* ADDR byref
[000254] ------------ \--* LCL_VAR struct V11 tmp4
***** BB03, stmt 17
[000220] ------------ * STMT void (IL 0x010... ???)
[000218] ------------ | /--* CNS_INT int 0
[000219] IA------R--- \--* ASG struct (init)
[000217] D------N---- \--* LCL_VAR struct V12 tmp5
***** BB03, stmt 18
[000281] ------------ * STMT void (IL 0x010... ???)
[000225] x----------- | /--* OBJ(16) struct
[000224] L----------- | | \--* ADDR byref
[000216] ------------ | | \--* LCL_VAR struct V11 tmp4
[000280] -A------R--- \--* ASG struct (copy)
[000278] D----------- \--* LCL_VAR struct V16 tmp9
***** BB03, stmt 19
[000277] ------------ * STMT void (IL 0x010... ???)
[000272] ------------ | /--* LCL_VAR struct V16 tmp9
[000276] -A------R--- \--* ASG struct (copy)
[000275] ------------ \--* OBJ(16) struct
[000274] ------------ \--* ADDR byref
[000273] ------------ \--* FIELD struct _value
[000270] L----------- \--* ADDR byref
[000271] ------------ \--* LCL_VAR struct V12 tmp5
***** BB03, stmt 20
[000084] ------------ * STMT void (IL ???... ???)
[000228] ------------ | /--* LCL_VAR struct V12 tmp5
[000231] -A------R--- \--* ASG struct (copy)
[000230] D----------- \--* LCL_VAR struct V05 loc4
***** BB03, stmt 21
[000290] ------------ * STMT void (IL 0x01A... ???)
[000288] ------------ | /--* CNS_INT int 0
[000289] IA------R--- \--* ASG struct (init)
[000287] D------N---- \--* LCL_VAR struct V17 tmp10
***** BB03, stmt 22
[000315] ------------ * STMT void (IL 0x01A... ???)
[000295] ---XG------- | /--* OBJ(16) struct
[000294] ------------ | | \--* ADDR byref
[000286] ------------ | | \--* FIELD struct _value
[000284] L----------- | | \--* ADDR byref
[000285] ------------ | | \--* LCL_VAR struct V05 loc4
[000314] -A-XG---R--- \--* ASG struct (copy)
[000312] D----------- \--* LCL_VAR struct V18 tmp11
***** BB03, stmt 23
[000311] ------------ * STMT void (IL 0x01A... ???)
[000306] ------------ | /--* LCL_VAR struct V18 tmp11
[000310] -A------R--- \--* ASG struct (copy)
[000309] ------------ \--* OBJ(16) struct
[000308] ------------ \--* ADDR byref
[000307] ------------ \--* FIELD struct _value
[000304] L----------- \--* ADDR byref
[000305] ------------ \--* LCL_VAR struct V17 tmp10
***** BB03, stmt 24
[000093] ------------ * STMT void (IL ???... ???)
[000298] ------------ | /--* LCL_VAR struct V17 tmp10
[000301] -A------R--- \--* ASG struct (copy)
[000300] D----------- \--* LCL_VAR struct V03 loc2
------------ BB18 [022..023) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18, stmt 25
[000335] ------------ * STMT void (IL 0x022... ???)
[000332] ----G------- | /--* FIELD ref _obj
[000328] ----G------- | | \--* ADDR byref
[000329] ----G------- | | \--* FIELD struct _value
[000330] L----------- | | \--* ADDR byref
[000331] ------------ | | \--* LCL_VAR struct V03 loc2
[000334] -A--G------- \--* ASG ref
[000333] D------N---- \--* LCL_VAR ref V20 tmp13
***** BB18, stmt 26
[000340] ------------ * STMT void (IL 0x022... ???)
[000339] ------------ \--* JTRUE void
[000337] ------------ | /--* CNS_INT ref null
[000338] ------------ \--* NE int
[000336] ------------ \--* LCL_VAR ref V20 tmp13
------------ BB19 [022..023) -> BB23 (always), preds={} succs={BB23}
***** BB19, stmt 27
[000395] ------------ * STMT void (IL 0x022... ???)
[000392] ------------ | /--* CAST int <- bool <- int
[000391] ------------ | | \--* CNS_INT int 1
[000394] -A---------- \--* ASG bool
[000393] D------N---- \--* LCL_VAR bool V19 tmp12
------------ BB20 [022..023) -> BB22 (cond), preds={} succs={BB21,BB22}
***** BB20, stmt 28
[000349] ------------ * STMT void (IL 0x022... ???)
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13
[000348] -AC-G------- \--* ASG ref
[000347] D------N---- \--* LCL_VAR ref V21 tmp14
***** BB20, stmt 29
[000354] ------------ * STMT void (IL 0x022... ???)
[000351] ------------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---------- \--* ASG ref
[000352] D------N---- \--* LCL_VAR ref V22 tmp15
***** BB20, stmt 30
[000358] ------------ * STMT void (IL 0x022... ???)
[000357] ------------ \--* JTRUE void
[000355] ------------ | /--* CNS_INT ref null
[000356] ------------ \--* EQ int
[000350] ------------ \--* LCL_VAR ref V21 tmp14
------------ BB21 [022..023) -> BB23 (always), preds={} succs={BB23}
***** BB21, stmt 31
[000410] ------------ * STMT void (IL 0x022... ???)
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XGO------ \--* ASG int
[000408] D------N---- \--* LCL_VAR int V23 tmp16
***** BB21, stmt 32
[000388] ------------ * STMT void (IL 0x022... ???)
[000385] --C--------- | /--* CAST int <- bool <- int
[000416] --C--------- | | \--* CAST int <- bool <- int
[000421] ------------ | | | /--* CNS_INT int 0
[000422] N--------U-- | | \--* GT int
[000419] ------------ | | | /--* CNS_INT int 0x1600000
[000420] ------------ | | \--* AND int
[000411] ------------ | | \--* LCL_VAR int V23 tmp16
[000387] -AC--------- \--* ASG bool
[000386] D------N---- \--* LCL_VAR bool V19 tmp12
------------ BB22 [022..023), preds={} succs={BB23}
***** BB22, stmt 33
[000378] ------------ * STMT void (IL 0x022... ???)
[000374] ------------ | /--* CNS_INT int 0
[000375] N-C-G----U-- | /--* GT int
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13
[000371] ----G------- arg1 | | \--* FIELD short _token
[000367] ----G------- | | \--* ADDR byref
[000368] ----G------- | | \--* FIELD struct _value
[000369] L----------- | | \--* ADDR byref
[000370] ------------ | | \--* LCL_VAR struct V03 loc2
[000377] -AC-G------- \--* ASG bool
[000376] D------N---- \--* LCL_VAR bool V19 tmp12
------------ BB23 [???..???) -> BB06 (cond), preds={} succs={BB04,BB06}
***** BB23, stmt 34
[000400] ------------ * STMT void (IL 0x022... ???)
[000397] ------------ | /--* CNS_INT ref null
[000399] -A---------- \--* ASG ref
[000398] D------N---- \--* LCL_VAR ref V20 tmp13
***** BB23, stmt 35
[000404] ------------ * STMT void (IL 0x022... ???)
[000401] ------------ | /--* CNS_INT ref null
[000403] -A---------- \--* ASG ref
[000402] D------N---- \--* LCL_VAR ref V22 tmp15
***** BB23, stmt 36
[000102] ------------ * STMT void (IL ???... ???)
[000101] --C--------- \--* JTRUE void
[000099] ------------ | /--* CNS_INT int 0
[000100] --C--------- \--* NE int
[000325] --C--------- \--* CAST int <- bool <- int
[000396] ------------ \--* LCL_VAR int V19 tmp12
------------ BB04 [02B..04B) -> BB09 (always), preds={} succs={BB09}
***** BB04, stmt 37
[000109] ------------ * STMT void (IL 0x02B...0x02E)
[000106] ------------ | /--* CNS_INT int 0
[000108] -A---------- \--* ASG int
[000107] D------N---- \--* LCL_VAR int V01 loc0
***** BB04, stmt 38
[000112] ------------ * STMT void (IL ???...0x02F)
[000105] ------------ | /--* CNS_INT int 0
[000111] -A-XG------- \--* ASG int
[000110] ---XG--N---- \--* FIELD int <>1__state
[000104] ------------ \--* LCL_VAR byref V00 this
***** BB04, stmt 39
[000119] ------------ * STMT void (IL 0x034...0x036)
[000114] ------------ | /--* LCL_VAR struct V03 loc2
[000118] -A-XG---R--- \--* ASG struct (copy)
[000117] ---XG------- \--* OBJ(16) struct
[000116] ---XG------- \--* ADDR byref
[000115] ---XG------- \--* FIELD struct <>u__1
[000113] ------------ \--* LCL_VAR byref V00 this
***** BB04, stmt 40
[000443] ------------ * STMT void (IL 0x03B... ???)
[000122] ---XG------- | /--* ADDR byref
[000121] ---XG------- | | \--* FIELD struct <>t__builder
[000120] ------------ | | \--* LCL_VAR byref V00 this
[000442] -A-XG------- \--* ASG byref
[000441] D------N---- \--* LCL_VAR byref V24 tmp17
***** BB04, stmt 41
[000431] ------------ * STMT void (IL 0x03B... ???)
[000428] ------------ | /--* CNS_INT int 1
[000430] -A-XG------- \--* ASG bool
[000429] ---XG--N---- \--* FIELD bool _useBuilder
[000427] ------------ \--* LCL_VAR byref V24 tmp17
***** BB04, stmt 42
[000440] ------------ * STMT void (IL 0x03B... ???)
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000434] ---XG------- this in rcx +--* ADDR byref
[000433] ---XG------- | \--* FIELD struct _methodBuilder
[000432] ------------ | \--* LCL_VAR byref V24 tmp17
[000435] L----------- arg1 +--* ADDR byref
[000436] ------------ | \--* LCL_VAR struct V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
------------ BB05 [04B..067), preds={} succs={BB06}
***** BB05, stmt 43
[000020] ------------ * STMT void (IL 0x04B...0x051)
[000016] ---XG------- | /--* FIELD struct <>u__1
[000015] ------------ | | \--* LCL_VAR byref V00 this
[000019] -A-XG---R--- \--* ASG struct (copy)
[000017] D----------- \--* LCL_VAR struct V03 loc2
***** BB05, stmt 44
[000027] ------------ * STMT void (IL 0x052...0x059)
[000024] ------------ | /--* CNS_INT int 0
[000026] IA-XG---R--- \--* ASG struct (init)
[000025] ---XG--N---- \--* BLK(16) struct
[000023] ---XG------- \--* ADDR byref
[000022] ---XG------- \--* FIELD struct <>u__1
[000021] ------------ \--* LCL_VAR byref V00 this
***** BB05, stmt 45
[000032] ------------ * STMT void (IL 0x05E...0x061)
[000029] ------------ | /--* CNS_INT int -1
[000031] -A---------- \--* ASG int
[000030] D------N---- \--* LCL_VAR int V08 tmp1
***** BB05, stmt 46
[000037] ------------ * STMT void (IL ???... ???)
[000034] ------------ | /--* LCL_VAR int V08 tmp1
[000036] -A---------- \--* ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
***** BB05, stmt 47
[000040] ------------ * STMT void (IL ???...0x062)
[000033] ------------ | /--* LCL_VAR int V08 tmp1
[000039] -A-XG------- \--* ASG int
[000038] ---XG--N---- \--* FIELD int <>1__state
[000028] ------------ \--* LCL_VAR byref V00 this
------------ BB06 [067..071), preds={} succs={BB29}
------------ BB29 [067..068) -> BB31 (cond), preds={} succs={BB30,BB31}
***** BB29, stmt 48
[000462] ------------ * STMT void (IL 0x067... ???)
[000459] ----G------- | /--* FIELD ref _obj
[000455] ----G------- | | \--* ADDR byref
[000456] ----G------- | | \--* FIELD struct _value
[000457] L----------- | | \--* ADDR byref
[000458] ------------ | | \--* LCL_VAR struct V03 loc2
[000461] -A--G------- \--* ASG ref
[000460] D------N---- \--* LCL_VAR ref V26 tmp19
***** BB29, stmt 49
[000467] ------------ * STMT void (IL 0x067... ???)
[000466] ------------ \--* JTRUE void
[000464] ------------ | /--* CNS_INT ref null
[000465] ------------ \--* NE int
[000463] ------------ \--* LCL_VAR ref V26 tmp19
------------ BB30 [067..068) -> BB34 (always), preds={} succs={BB34}
***** BB30, stmt 50
[000526] ------------ * STMT void (IL 0x067... ???)
[000523] ----G------- | /--* FIELD int _result
[000519] ----G------- | | \--* ADDR byref
[000520] ----G------- | | \--* FIELD struct _value
[000521] L----------- | | \--* ADDR byref
[000522] ------------ | | \--* LCL_VAR struct V03 loc2
[000525] -A--G------- \--* ASG int
[000524] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB31 [067..068) -> BB33 (cond), preds={} succs={BB32,BB33}
***** BB31, stmt 51
[000476] ------------ * STMT void (IL 0x067... ???)
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19
[000475] -AC-G------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp20
***** BB31, stmt 52
[000481] ------------ * STMT void (IL 0x067... ???)
[000478] ------------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---------- \--* ASG ref
[000479] D------N---- \--* LCL_VAR ref V28 tmp21
***** BB31, stmt 53
[000485] ------------ * STMT void (IL 0x067... ???)
[000484] ------------ \--* JTRUE void
[000482] ------------ | /--* CNS_INT ref null
[000483] ------------ \--* EQ int
[000477] ------------ \--* LCL_VAR ref V27 tmp20
------------ BB32 [067..068), preds={} succs={BB35}
------------ BB35 [067..068) -> BB37 (cond), preds={} succs={BB36,BB37}
***** BB35, stmt 54
[000544] ------------ * STMT void (IL 0x067... ???)
[000543] --C--------- \--* JTRUE void
[000541] ------------ | /--* CNS_INT int 0
[000542] --C--------- \--* EQ int
[000558] ------------ | /--* CNS_INT int 0
[000559] ---XGO------ \--* EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
------------ BB36 [067..068), preds={} succs={BB37}
***** BB36, stmt 55
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] --C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21
------------ BB37 [067..068), preds={} succs={BB38}
------------ BB38 [???..???) -> BB34 (always), preds={} succs={BB34}
***** BB38, stmt 56
[000516] ------------ * STMT void (IL 0x067... ???)
[000562] ---XG------- | /--* FIELD int m_result
[000510] ------------ | | \--* LCL_VAR ref V28 tmp21
[000515] -AC--------- \--* ASG int
[000514] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB33 [067..068), preds={} succs={BB34}
***** BB33, stmt 57
[000503] ------------ * STMT void (IL 0x067... ???)
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19
[000498] ----G------- arg1 | | \--* FIELD short _token
[000494] ----G------- | | \--* ADDR byref
[000495] ----G------- | | \--* FIELD struct _value
[000496] L----------- | | \--* ADDR byref
[000497] ------------ | | \--* LCL_VAR struct V03 loc2
[000502] -AC-G------- \--* ASG int
[000501] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB34 [???..???) -> BB08 (always), preds={} succs={BB08}
***** BB34, stmt 58
[000531] ------------ * STMT void (IL 0x067... ???)
[000528] ------------ | /--* CNS_INT ref null
[000530] -A---------- \--* ASG ref
[000529] D------N---- \--* LCL_VAR ref V26 tmp19
***** BB34, stmt 59
[000535] ------------ * STMT void (IL 0x067... ???)
[000532] ------------ | /--* CNS_INT ref null
[000534] -A---------- \--* ASG ref
[000533] D------N---- \--* LCL_VAR ref V28 tmp21
***** BB34, stmt 60
[000049] ------------ * STMT void (IL ???... ???)
[000527] ------------ | /--* LCL_VAR int V25 tmp18
[000048] -AC--------- \--* ASG int
[000047] D------N---- \--* LCL_VAR int V02 loc1
------------ BB07 [071..08A) -> BB09 (cret), preds={} succs={BB09}
***** BB07, stmt 61
[000133] ------------ * STMT void (IL 0x071...0x071)
[000007] -----O------ | /--* CATCH_ARG ref
[000132] -A---O------ \--* ASG ref
[000131] D------N---- \--* LCL_VAR ref V09 tmp2
***** BB07, stmt 62
[000137] ------------ * STMT void (IL ???... ???)
[000134] ------------ | /--* LCL_VAR ref V09 tmp2
[000136] -A---------- \--* ASG ref
[000135] D------N---- \--* LCL_VAR ref V06 loc5
***** BB07, stmt 63
[000142] ------------ * STMT void (IL 0x073...0x076)
[000139] ------------ | /--* CNS_INT int -2
[000141] -A-XG------- \--* ASG int
[000140] ---XG--N---- \--* FIELD int <>1__state
[000138] ------------ \--* LCL_VAR byref V00 this
***** BB07, stmt 64
[000149] ------------ * STMT void (IL 0x07B...0x088)
[000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
[000145] ---XG------- this in rcx +--* ADDR byref
[000144] ---XG------- | \--* FIELD struct <>t__builder
[000143] ------------ | \--* LCL_VAR byref V00 this
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5
------------ BB08 [08A..09E), preds={} succs={BB42}
***** BB08, stmt 65
[000055] ------------ * STMT void (IL 0x08A...0x08D)
[000052] ------------ | /--* CNS_INT int -2
[000054] -A-XG------- \--* ASG int
[000053] ---XG--N---- \--* FIELD int <>1__state
[000051] ------------ \--* LCL_VAR byref V00 this
***** BB08, stmt 66
[000593] ------------ * STMT void (IL 0x092... ???)
[000058] ---XG------- | /--* ADDR byref
[000057] ---XG------- | | \--* FIELD struct <>t__builder
[000056] ------------ | | \--* LCL_VAR byref V00 this
[000592] -A-XG------- \--* ASG byref
[000591] D------N---- \--* LCL_VAR byref V29 tmp22
------------ BB42 [092..093) -> BB44 (cond), preds={} succs={BB43,BB44}
***** BB42, stmt 67
[000572] ------------ * STMT void (IL 0x092... ???)
[000571] ---XG------- \--* JTRUE void
[000569] ------------ | /--* CNS_INT int 0
[000570] ---XG------- \--* EQ int
[000568] ---XG------- \--* FIELD bool _useBuilder
[000567] ------------ \--* LCL_VAR byref V29 tmp22
------------ BB43 [092..093), preds={} succs={BB46}
***** BB43, stmt 68
[000619] ------------ * STMT void (IL 0x092... ???)
[000586] ---XG------- | /--* ADDR byref
[000585] ---XG------- | | \--* FIELD struct _methodBuilder
[000584] ------------ | | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG------- \--* ASG byref
[000617] D------N---- \--* LCL_VAR byref V30 tmp23
------------ BB46 [092..093) -> BB48 (cond), preds={} succs={BB47,BB48}
***** BB46, stmt 69
[000601] ------------ * STMT void (IL 0x092... ???)
[000600] ---XG------- \--* JTRUE void
[000598] ------------ | /--* CNS_INT ref null
[000599] ---XG------- \--* NE int
[000597] ---XG------- \--* FIELD ref m_task
[000596] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB47 [092..093), preds={} succs={BB84}
------------ BB84 [092..093), preds={} succs={BB85}
***** BB84, stmt 70
[000627] ------------ * STMT void (IL 0x092... ???)
[000624] ------------ | /--* CNS_INT int 0
[000626] IA------R--- \--* ASG struct (init)
[000625] -------N---- \--* BLK(4) struct
[000623] L----------- \--* ADDR byref
[000622] ------------ \--* LCL_VAR int V32 tmp25
***** BB84, stmt 71
[000633] ------------ * STMT void (IL 0x092... ???)
[000632] ------------ \--* NOP void
***** BB84, stmt 72
[000639] ------------ * STMT void (IL 0x092... ???)
[000638] ------------ \--* NOP void
------------ BB85 [092..093) -> BB86 (always), preds={} succs={BB86}
------------ BB86 [092..093), preds={} succs={BB87}
------------ BB87 [092..093) -> BB90 (cond), preds={} succs={BB88,BB90}
***** BB87, stmt 73
[000670] ------------ * STMT void (IL 0x092... ???)
[000609] ------------ | /--* LCL_VAR int V02 loc1
[000669] -A---------- \--* ASG int
[000668] D------N---- \--* LCL_VAR int V34 tmp27
***** BB87, stmt 74
[000675] ------------ * STMT void (IL 0x092... ???)
[000674] ------------ \--* JTRUE void
[000672] ------------ | /--* CNS_INT int 9
[000673] ------------ \--* GE int
[000671] ------------ \--* LCL_VAR int V34 tmp27
------------ BB88 [092..093) -> BB90 (cond), preds={} succs={BB89,BB90}
***** BB88, stmt 75
[000697] ------------ * STMT void (IL 0x092... ???)
[000696] ------------ \--* JTRUE void
[000694] ------------ | /--* CNS_INT int -1
[000695] ------------ \--* LT int
[000693] ------------ \--* LCL_VAR int V34 tmp27
------------ BB89 [092..093) -> BB91 (always), preds={} succs={BB91}
***** BB89, stmt 76
[000713] ------------ * STMT void (IL 0x092... ???)
[000708] ------------ | /--* CNS_INT int -1
[000709] ------------ | /--* SUB int
[000707] ------------ | | \--* LCL_VAR int V34 tmp27
[000710] R-CXG------- | /--* INDEX ref
[000699] ----G------- | | | /--* FIELD ref Int32Tasks
[000706] --CXG------- | | \--* COMMA ref
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A
[000712] -ACXG------- \--* ASG ref
[000711] D------N---- \--* LCL_VAR ref V36 tmp29
***** BB89, stmt 77
[000723] ------------ * STMT void (IL 0x092... ???)
[000714] ------------ | /--* LCL_VAR ref V36 tmp29
[000722] -AC--------- \--* ASG ref
[000721] D------N---- \--* LCL_VAR ref V31 tmp24
------------ BB90 [092..093), preds={} succs={BB97}
***** BB90, stmt 78
[000682] ------------ * STMT void (IL 0x092... ???)
[000679] ------------ | /--* ALLOCOBJ ref
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -A---------- \--* ASG ref
[000680] D------N---- \--* LCL_VAR ref V35 tmp28
***** BB90, stmt 79
[000739] ------------ * STMT void (IL 0x092... ???)
[000737] ------------ | /--* CNS_INT int 0
[000738] IA------R--- \--* ASG struct (init)
[000735] D------N---- \--* LCL_VAR struct V37 tmp30
------------ BB97 [092..093) -> BB98 (always), preds={} succs={BB98}
***** BB97, stmt 80
[000760] ------------ * STMT void (IL 0x092... ???)
[000757] ------------ | /--* CNS_INT int 0
[000759] -A---------- \--* ASG int
[000758] D------N---- \--* LCL_VAR int V38 tmp31
------------ BB98 [092..093), preds={} succs={BB99}
***** BB98, stmt 81
[000771] ------------ * STMT void (IL 0x092... ???)
[000767] ------------ | /--* LCL_VAR int V38 tmp31
[000768] ------------ | /--* OR int
[000766] ------------ | | \--* CNS_INT int 0x1000000
[000770] -A-XGO------ \--* ASG int
[000769] V--XGO-N---- \--* FIELD int m_stateFlags
[000765] ------------ \--* LCL_VAR ref V35 tmp28
------------ BB99 [???..???), preds={} succs={BB91}
***** BB99, stmt 82
[000751] ------------ * STMT void (IL 0x092... ???)
[000677] ------------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG------- \--* ASG int
[000749] ---XG--N---- \--* FIELD int m_result
[000748] ------------ \--* LCL_VAR ref V35 tmp28
***** BB99, stmt 83
[000690] ------------ * STMT void (IL 0x092... ???)
[000687] ------------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---------- \--* ASG ref
[000688] D------N---- \--* LCL_VAR ref V31 tmp24
------------ BB91 [???..???) -> BB49 (always), preds={} succs={BB49}
***** BB91, stmt 84
[000728] ------------ * STMT void (IL 0x092... ???)
[000725] ------------ | /--* CNS_INT ref null
[000727] -A---------- \--* ASG ref
[000726] D------N---- \--* LCL_VAR ref V36 tmp29
***** BB91, stmt 85
[000616] ------------ * STMT void (IL 0x092... ???)
[000724] ------------ | /--* LCL_VAR ref V31 tmp24
[000615] -ACXG------- \--* ASG ref
[000614] ---XG--N---- \--* FIELD ref m_task
[000608] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB48 [092..093), preds={} succs={BB49}
***** BB48, stmt 86
[000606] ------------ * STMT void (IL 0x092... ???)
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
------------ BB49 [???..???) -> BB45 (always), preds={} succs={BB45}
------------ BB44 [092..093), preds={} succs={BB45}
***** BB44, stmt 87
[000577] ------------ * STMT void (IL 0x092... ???)
[000059] ------------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG------- \--* ASG int
[000575] ---XG--N---- \--* FIELD int _result
[000574] ------------ \--* LCL_VAR byref V29 tmp22
***** BB44, stmt 88
[000582] ------------ * STMT void (IL 0x092... ???)
[000579] ------------ | /--* CNS_INT int 1
[000581] -A-XG------- \--* ASG bool
[000580] ---XG--N---- \--* FIELD bool _haveResult
[000578] ------------ \--* LCL_VAR byref V29 tmp22
------------ BB45 [???..???), preds={} succs={BB09}
------------ BB09 [09E..09F) (return), preds={} succs={}
***** BB09, stmt 89
[000065] ------------ * STMT void (IL 0x09E...0x09E)
[000064] ------------ \--* RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
**************** Inline Tree
Inlines into 0600001F <ValueTask1>d__1:MoveNext():this
[1 IL=0010 TR=000067 06000003] [below ALWAYS_INLINE size] Program:ValueTask2():struct
[2 IL=0001 TR=000158 06002C45] [aggressive inline attribute] ValueTask`1:.ctor(int):this
[3 IL=0019 TR=000077 06002C57] [aggressive inline attribute] ValueTask`1:ConfigureAwait(bool):struct:this
[4 IL=0019 TR=000210 06002C48] [aggressive inline attribute] ValueTask`1:.ctor(ref,int,short,bool):this
[5 IL=0024 TR=000223 06005070] [aggressive inline attribute] ConfiguredValueTaskAwaitable`1:.ctor(struct):this
[6 IL=0028 TR=000087 06005071] [aggressive inline attribute] ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this
[7 IL=0006 TR=000293 06005072] [aggressive inline attribute] ConfiguredValueTaskAwaiter:.ctor(struct):this
[8 IL=0036 TR=000096 06005073] [aggressive inline attribute] ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this
[9 IL=0006 TR=000322 06002C51] [aggressive inline attribute] ValueTask`1:get_IsCompleted():bool:this
[10 IL=0023 TR=000382 060029E5] [below ALWAYS_INLINE size] Task:get_IsCompleted():bool:this
[11 IL=0010 TR=000412 060029E6] [below ALWAYS_INLINE size] Task:IsCompletedMethod(int):bool
[12 IL=0030 TR=000361 06000125] [aggressive inline attribute] Unsafe:As(ref):ref
[0 IL=0041 TR=000372 06002C61] [FAILED: target not direct] IValueTaskSource`1:GetStatus(short):int:this
[13 IL=0068 TR=000126 0600505D] [profitable inline] AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this
[0 IL=0015 TR=000437 06005017] [FAILED: has exception handling] AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this
[14 IL=0105 TR=000044 06005074] [aggressive inline attribute] ConfiguredValueTaskAwaiter:GetResult():int:this
[15 IL=0006 TR=000450 06002C55] [aggressive inline attribute] ValueTask`1:get_Result():int:this
[16 IL=0028 TR=000507 060050C2] [below ALWAYS_INLINE size] TaskAwaiter:ValidateEnd(ref)
[17 IL=0001 TR=000538 060029C9] [aggressive inline attribute] Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
[0 IL=0009 TR=000548 060050C3] [FAILED: unprofitable inline] TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)
[18 IL=0034 TR=000511 06002929] [below ALWAYS_INLINE size] Task`1:get_ResultOnSuccess():int:this
[19 IL=0041 TR=000488 06000125] [aggressive inline attribute] Unsafe:As(ref):ref
[0 IL=0052 TR=000499 06002C63] [FAILED: target not direct] IValueTaskSource`1:GetResult(short):int:this
[0 IL=0131 TR=000147 0600505A] [FAILED: within catch region] AsyncValueTaskMethodBuilder`1:SetException(ref):this
[20 IL=0153 TR=000060 06005059] [profitable inline] AsyncValueTaskMethodBuilder`1:SetResult(int):this
[21 IL=0015 TR=000588 0600501C] [profitable inline] AsyncTaskMethodBuilder`1:SetResult(int):this
[22 IL=0010 TR=000610 06005023] [aggressive inline attribute] AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref
[23 IL=0148 TR=000715 06000125] [aggressive inline attribute] Unsafe:As(ref):ref
[24 IL=0610 TR=000684 06002916] [profitable inline] Task`1:.ctor(int):this
[25 IL=0012 TR=000741 060029B1] [profitable inline] Task:.ctor(bool,int,struct):this
[26 IL=0001 TR=000755 06000198] [below ALWAYS_INLINE size] Object:.ctor():this
[0 IL=0023 TR=000604 0600501D] [FAILED: noinline per IL/cached result] AsyncTaskMethodBuilder`1:SetExistingTaskResult(int):this
Budget: initialTime=537, finalTime=2441, initialBudget=5370, currentBudget=5684
Budget: increased by 314 because of force inlines
Budget: discretionary inline caused a force inline
Budget: initialSize=3756, finalSize=5017
*************** After fgAddInternal()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
*************** In fgDebugCheckBBlist
*************** In fgRemoveEmptyTry()
*************** Before fgRemoveEmptyTry()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
EH#0 is not a try-finally; skipping.
*************** In fgRemoveEmptyFinally()
*************** Before fgRemoveEmptyFinally()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
EH#0 is not a try-finally; skipping.
*************** In fgMergeFinallyChains()
*************** Before fgMergeFinallyChains()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
Method does not have any try-finallys; no merging.
*************** In fgCloneFinally()
*************** Before fgCloneFinally()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
EH#0 is not a try-finally; skipping.
*************** In fgMarkImplicitByRefs()
*************** In fgPromoteStructs()
lvaTable before fgPromoteStructs
; Initial local variable assignments
;
; V00 this byref this
; V01 loc0 int
; V02 loc1 int
; V03 loc2 struct (16) ld-addr-op
; V04 loc3 struct (16) ld-addr-op
; V05 loc4 struct (16) ld-addr-op
; V06 loc5 ref class-hnd
; V07 OutArgs lclBlk (na)
; V08 tmp1 int
; V09 tmp2 ref class-hnd
; V10 tmp3 struct (16)
; V11 tmp4 struct (16)
; V12 tmp5 struct (16)
; V13 tmp6 ref class-hnd
; V14 tmp7 int
; V15 tmp8 short
; V16 tmp9 struct (16)
; V17 tmp10 struct (16)
; V18 tmp11 struct (16)
; V19 tmp12 bool
; V20 tmp13 ref class-hnd
; V21 tmp14 ref
; V22 tmp15 ref class-hnd
; V23 tmp16 int
; V24 tmp17 byref
; V25 tmp18 int
; V26 tmp19 ref class-hnd
; V27 tmp20 ref
; V28 tmp21 ref class-hnd
; V29 tmp22 byref
; V30 tmp23 byref
; V31 tmp24 ref class-hnd
; V32 tmp25 int ld-addr-op
; V33 tmp26 ref class-hnd exact
; V34 tmp27 int
; V35 tmp28 ref class-hnd exact
; V36 tmp29 ref class-hnd
; V37 tmp30 struct ( 8) ld-addr-op
; V38 tmp31 int
Promoting struct local V04 (ValueTask`1):
lvaGrabTemp returning 39 (V39 tmp32) (a long lifetime temp) called for field V04._obj (fldOffset=0x0).
lvaGrabTemp returning 40 (V40 tmp33) (a long lifetime temp) called for field V04._result (fldOffset=0x8).
lvaGrabTemp returning 41 (V41 tmp34) (a long lifetime temp) called for field V04._token (fldOffset=0xc).
lvaGrabTemp returning 42 (V42 tmp35) (a long lifetime temp) called for field V04._continueOnCapturedContext (fldOffset=0xe).
Promoting struct local V10 (ValueTask`1):
lvaGrabTemp returning 43 (V43 tmp36) (a long lifetime temp) called for field V10._obj (fldOffset=0x0).
lvaGrabTemp returning 44 (V44 tmp37) (a long lifetime temp) called for field V10._result (fldOffset=0x8).
lvaGrabTemp returning 45 (V45 tmp38) (a long lifetime temp) called for field V10._token (fldOffset=0xc).
lvaGrabTemp returning 46 (V46 tmp39) (a long lifetime temp) called for field V10._continueOnCapturedContext (fldOffset=0xe).
Promoting struct local V11 (ValueTask`1):
lvaGrabTemp returning 47 (V47 tmp40) (a long lifetime temp) called for field V11._obj (fldOffset=0x0).
lvaGrabTemp returning 48 (V48 tmp41) (a long lifetime temp) called for field V11._result (fldOffset=0x8).
lvaGrabTemp returning 49 (V49 tmp42) (a long lifetime temp) called for field V11._token (fldOffset=0xc).
lvaGrabTemp returning 50 (V50 tmp43) (a long lifetime temp) called for field V11._continueOnCapturedContext (fldOffset=0xe).
Not promoting promotable struct local V16: #fields = 4, fieldAccessed = 0.
Not promoting promotable struct local V18: #fields = 4, fieldAccessed = 0.
Promoting struct local V37 (CancellationToken):
lvaGrabTemp returning 51 (V51 tmp44) (a long lifetime temp) called for field V37._source (fldOffset=0x0).
lvaTable after fgPromoteStructs
; Initial local variable assignments
;
; V00 this byref this
; V01 loc0 int
; V02 loc1 int
; V03 loc2 struct (16) ld-addr-op
; V04 loc3 struct (16) ld-addr-op
; V05 loc4 struct (16) ld-addr-op
; V06 loc5 ref class-hnd
; V07 OutArgs lclBlk (na)
; V08 tmp1 int
; V09 tmp2 ref class-hnd
; V10 tmp3 struct (16)
; V11 tmp4 struct (16)
; V12 tmp5 struct (16)
; V13 tmp6 ref class-hnd
; V14 tmp7 int
; V15 tmp8 short
; V16 tmp9 struct (16)
; V17 tmp10 struct (16)
; V18 tmp11 struct (16)
; V19 tmp12 bool
; V20 tmp13 ref class-hnd
; V21 tmp14 ref
; V22 tmp15 ref class-hnd
; V23 tmp16 int
; V24 tmp17 byref
; V25 tmp18 int
; V26 tmp19 ref class-hnd
; V27 tmp20 ref
; V28 tmp21 ref class-hnd
; V29 tmp22 byref
; V30 tmp23 byref
; V31 tmp24 ref class-hnd
; V32 tmp25 int ld-addr-op
; V33 tmp26 ref class-hnd exact
; V34 tmp27 int
; V35 tmp28 ref class-hnd exact
; V36 tmp29 ref class-hnd
; V37 tmp30 struct ( 8) ld-addr-op
; V38 tmp31 int
; V39 tmp32 ref V04._obj(offs=0x00) P-INDEP
; V40 tmp33 int V04._result(offs=0x08) P-INDEP
; V41 tmp34 short V04._token(offs=0x0c) P-INDEP
; V42 tmp35 bool V04._continueOnCapturedContext(offs=0x0e) P-INDEP
; V43 tmp36 ref V10._obj(offs=0x00) P-INDEP
; V44 tmp37 int V10._result(offs=0x08) P-INDEP
; V45 tmp38 short V10._token(offs=0x0c) P-INDEP
; V46 tmp39 bool V10._continueOnCapturedContext(offs=0x0e) P-INDEP
; V47 tmp40 ref V11._obj(offs=0x00) P-INDEP
; V48 tmp41 int V11._result(offs=0x08) P-INDEP
; V49 tmp42 short V11._token(offs=0x0c) P-INDEP
; V50 tmp43 bool V11._continueOnCapturedContext(offs=0x0e) P-INDEP
; V51 tmp44 ref V37._source(offs=0x00) P-INDEP
*************** In fgMarkAddressExposedLocals()
Replacing the field in promoted struct with a local var:
[000169] ------------ /--* CNS_INT int 1
[000171] -A---------- * ASG int
[000170] D------N---- \--* LCL_VAR int V44 tmp37
Replacing the field in promoted struct with a local var:
[000175] ------------ /--* CNS_INT ref null
[000177] -A---------- * ASG ref
[000176] D------N---- \--* LCL_VAR ref V43 tmp36
Replacing the field in promoted struct with a local var:
[000181] ------------ /--* CNS_INT int 1
[000183] -A---------- * ASG bool
[000182] D------N---- \--* LCL_VAR bool V46 tmp39
Replacing the field in promoted struct with a local var:
[000187] ------------ /--* CNS_INT int 0
[000189] -A---------- * ASG short
[000188] D------N---- \--* LCL_VAR short V45 tmp38
Replacing the field in promoted struct with a local var:
[000196] ------------ /--* LCL_VAR ref V39 tmp32
[000260] -A---------- * ASG ref
[000259] D------N---- \--* LCL_VAR ref V13 tmp6
Replacing the field in promoted struct with a local var:
[000199] ------------ /--* LCL_VAR int V40 tmp33
[000263] -A---------- * ASG int
[000262] D------N---- \--* LCL_VAR int V14 tmp7
Replacing the field in promoted struct with a local var:
[000202] ------------ /--* LCL_VAR short V41 tmp34
[000266] -A---------- * ASG short
[000265] D------N---- \--* LCL_VAR short V15 tmp8
Replacing the field in promoted struct with a local var:
[000237] ------------ /--* LCL_VAR ref V13 tmp6
[000239] -A---------- * ASG ref
[000238] D------N---- \--* LCL_VAR ref V47 tmp40
Replacing the field in promoted struct with a local var:
[000243] ------------ /--* LCL_VAR int V14 tmp7
[000245] -A---------- * ASG int
[000244] D------N---- \--* LCL_VAR int V48 tmp41
Replacing the field in promoted struct with a local var:
[000249] ------------ /--* LCL_VAR int V15 tmp8
[000251] -A---------- * ASG short
[000250] D------N---- \--* LCL_VAR short V49 tmp42
Replacing the field in promoted struct with a local var:
[000255] ------------ /--* CNS_INT int 0
[000257] -A---------- * ASG bool
[000256] D------N---- \--* LCL_VAR bool V50 tmp43
Local V03 should not be enregistered because: it is address exposed
*************** In fgRetypeImplicitByRefArgs()
*************** In fgMorphBlocks()
Morphing BB01 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB01, stmt 1 (before)
[000002] ---XG------- /--* FIELD int <>1__state
[000001] ------------ | \--* LCL_VAR byref V00 this
[000004] -A-XG------- * ASG int
[000003] D------N---- \--* LCL_VAR int V01 loc0
GenTreeNode creates assertion:
[000004] -A-XG------- * ASG int
In BB01 New Local Subrange Assertion: V01 in [-2147483648..2147483647] index=#01, mask=0000000000000001
fgMorphTree BB01, stmt 1 (after)
[000002] *--XG+------ /--* IND int
[000001] -----+------ | \--* LCL_VAR byref V00 this
[000004] -A-XG+------ * ASG int
[000003] D----+-N---- \--* LCL_VAR int V01 loc0
Morphing BB02 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB02, stmt 2 (before)
[000012] ------------ * JTRUE void
[000010] ------------ | /--* CNS_INT int 0
[000011] ------------ \--* EQ int
[000009] ------------ \--* LCL_VAR int V01 loc0
Morphing BB03 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB03, stmt 3 (before)
[000153] ------------ /--* CNS_INT int 0
[000154] IA------R--- * ASG struct (init)
[000152] D------N---- \--* LCL_VAR struct(P) V10 tmp3
\--* ref V10._obj (offs=0x00) -> V43 tmp36
\--* int V10._result (offs=0x08) -> V44 tmp37
\--* short V10._token (offs=0x0c) -> V45 tmp38
\--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization.
GenTreeNode creates assertion:
[000777] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V43 == null index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000780] -A---------- * ASG int
In BB03 New Local Constant Assertion: V44 == 0 index=#02, mask=0000000000000002
GenTreeNode creates assertion:
[000784] -A---------- * ASG short
In BB03 New Local Constant Assertion: V45 == 0 index=#03, mask=0000000000000004
GenTreeNode creates assertion:
[000788] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V46 == 0 index=#04, mask=0000000000000008
fgMorphInitBlock (after):
[000787] ------------ /--* CNS_INT bool 0
[000788] -A---------- /--* ASG bool
[000786] D------N---- | \--* LCL_VAR bool V46 tmp39
[000789] -A---+------ * COMMA void
[000783] ------------ | /--* CNS_INT short 0
[000784] -A---------- | /--* ASG short
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38
[000785] -A---------- \--* COMMA void
[000779] ------------ | /--* CNS_INT int 0
[000780] -A---------- | /--* ASG int
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37
[000781] -A---------- \--* COMMA void
[000776] ------------ | /--* CNS_INT ref null
[000777] -A---------- \--* ASG ref
[000775] D------N---- \--* LCL_VAR ref V43 tmp36
fgMorphTree BB03, stmt 3 (after)
[000787] ------------ /--* CNS_INT bool 0
[000788] -A---------- /--* ASG bool
[000786] D------N---- | \--* LCL_VAR bool V46 tmp39
[000789] -A---+------ * COMMA void
[000783] ------------ | /--* CNS_INT short 0
[000784] -A---------- | /--* ASG short
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38
[000785] -A---------- \--* COMMA void
[000779] ------------ | /--* CNS_INT int 0
[000780] -A---------- | /--* ASG int
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37
[000781] -A---------- \--* COMMA void
[000776] ------------ | /--* CNS_INT ref null
[000777] -A---------- \--* ASG ref
[000775] D------N---- \--* LCL_VAR ref V43 tmp36
fgMorphTree BB03, stmt 4 (before)
[000169] ------------ /--* CNS_INT int 1
[000171] -A---------- * ASG int
[000170] D------N---- \--* LCL_VAR int V44 tmp37
The assignment [000171] using V44 removes: Constant Assertion: V44 == 0
GenTreeNode creates assertion:
[000171] -A---------- * ASG int
In BB03 New Local Constant Assertion: V44 == 1 index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 5 (before)
[000175] ------------ /--* CNS_INT ref null
[000177] -A---------- * ASG ref
[000176] D------N---- \--* LCL_VAR ref V43 tmp36
The assignment [000177] using V43 removes: Constant Assertion: V43 == null
GenTreeNode creates assertion:
[000177] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V43 == null index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 6 (before)
[000181] ------------ /--* CNS_INT int 1
[000183] -A---------- * ASG bool
[000182] D------N---- \--* LCL_VAR bool V46 tmp39
The assignment [000183] using V46 removes: Constant Assertion: V46 == 0
GenTreeNode creates assertion:
[000183] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V46 == 1 index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 7 (before)
[000187] ------------ /--* CNS_INT int 0
[000189] -A---------- * ASG short
[000188] D------N---- \--* LCL_VAR short V45 tmp38
The assignment [000189] using V45 removes: Constant Assertion: V45 == 0
GenTreeNode creates assertion:
[000189] -A---------- * ASG short
In BB03 New Local Constant Assertion: V45 == 0 index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 8 (before)
[000161] ------------ /--* LCL_VAR struct(P) V10 tmp3
/--* ref V10._obj (offs=0x00) -> V43 tmp36
/--* int V10._result (offs=0x08) -> V44 tmp37
/--* short V10._token (offs=0x0c) -> V45 tmp38
/--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39
[000164] -A------R--- * ASG struct (copy)
[000163] D----------- \--* LCL_VAR struct(P) V04 loc3
\--* ref V04._obj (offs=0x00) -> V39 tmp32
\--* int V04._result (offs=0x08) -> V40 tmp33
\--* short V04._token (offs=0x0c) -> V41 tmp34
\--* bool V04._continueOnCapturedContext (offs=0x0e) -> V42 tmp35
fgMorphCopyBlock:block assignment to morph:
[000161] -----+------ /--* LCL_VAR struct(P) V10 tmp3
/--* ref V10._obj (offs=0x00) -> V43 tmp36
/--* int V10._result (offs=0x08) -> V44 tmp37
/--* short V10._token (offs=0x0c) -> V45 tmp38
/--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39
[000164] -A------R--- * ASG struct (copy)
[000163] D----+-N---- \--* LCL_VAR struct(P) V04 loc3
\--* ref V04._obj (offs=0x00) -> V39 tmp32
\--* int V04._result (offs=0x08) -> V40 tmp33
\--* short V04._token (offs=0x0c) -> V41 tmp34
\--* bool V04._continueOnCapturedContext (offs=0x0e) -> V42 tmp35
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments.
GenTreeNode creates assertion:
[000792] -A---------- * ASG ref
In BB03 New Local Copy Assertion: V39 == V43 index=#05, mask=0000000000000010
GenTreeNode creates assertion:
[000795] -A---------- * ASG int
In BB03 New Local Copy Assertion: V40 == V44 index=#06, mask=0000000000000020
GenTreeNode creates assertion:
[000799] -A---------- * ASG short
In BB03 New Local Copy Assertion: V41 == V45 index=#07, mask=0000000000000040
GenTreeNode creates assertion:
[000803] -A---------- * ASG bool
In BB03 New Local Copy Assertion: V42 == V46 index=#08, mask=0000000000000080
fgMorphCopyBlock (after):
[000802] -------N---- /--* LCL_VAR bool V46 tmp39
[000803] -A---------- /--* ASG bool
[000801] D------N---- | \--* LCL_VAR bool V42 tmp35
[000804] -A---+------ * COMMA void
[000798] -------N---- | /--* LCL_VAR short V45 tmp38
[000799] -A---------- | /--* ASG short
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34
[000800] -A---------- \--* COMMA void
[000794] -------N---- | /--* LCL_VAR int V44 tmp37
[000795] -A---------- | /--* ASG int
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33
[000796] -A---------- \--* COMMA void
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36
[000792] -A---------- \--* ASG ref
[000790] D------N---- \--* LCL_VAR ref V39 tmp32
fgMorphTree BB03, stmt 8 (after)
[000802] -------N---- /--* LCL_VAR bool V46 tmp39
[000803] -A---------- /--* ASG bool
[000801] D------N---- | \--* LCL_VAR bool V42 tmp35
[000804] -A---+------ * COMMA void
[000798] -------N---- | /--* LCL_VAR short V45 tmp38
[000799] -A---------- | /--* ASG short
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34
[000800] -A---------- \--* COMMA void
[000794] -------N---- | /--* LCL_VAR int V44 tmp37
[000795] -A---------- | /--* ASG int
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33
[000796] -A---------- \--* COMMA void
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36
[000792] -A---------- \--* ASG ref
[000790] D------N---- \--* LCL_VAR ref V39 tmp32
fgMorphTree BB03, stmt 9 (before)
[000205] ------------ /--* CNS_INT int 0
[000206] IA------R--- * ASG struct (init)
[000204] D------N---- \--* LCL_VAR struct(P) V11 tmp4
\--* ref V11._obj (offs=0x00) -> V47 tmp40
\--* int V11._result (offs=0x08) -> V48 tmp41
\--* short V11._token (offs=0x0c) -> V49 tmp42
\--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization.
GenTreeNode creates assertion:
[000807] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V47 == null index=#09, mask=0000000000000100
GenTreeNode creates assertion:
[000810] -A---------- * ASG int
In BB03 New Local Constant Assertion: V48 == 0 index=#10, mask=0000000000000200
GenTreeNode creates assertion:
[000814] -A---------- * ASG short
In BB03 New Local Constant Assertion: V49 == 0 index=#11, mask=0000000000000400
GenTreeNode creates assertion:
[000818] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V50 == 0 index=#12, mask=0000000000000800
fgMorphInitBlock (after):
[000817] ------------ /--* CNS_INT bool 0
[000818] -A---------- /--* ASG bool
[000816] D------N---- | \--* LCL_VAR bool V50 tmp43
[000819] -A---+------ * COMMA void
[000813] ------------ | /--* CNS_INT short 0
[000814] -A---------- | /--* ASG short
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42
[000815] -A---------- \--* COMMA void
[000809] ------------ | /--* CNS_INT int 0
[000810] -A---------- | /--* ASG int
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41
[000811] -A---------- \--* COMMA void
[000806] ------------ | /--* CNS_INT ref null
[000807] -A---------- \--* ASG ref
[000805] D------N---- \--* LCL_VAR ref V47 tmp40
fgMorphTree BB03, stmt 9 (after)
[000817] ------------ /--* CNS_INT bool 0
[000818] -A---------- /--* ASG bool
[000816] D------N---- | \--* LCL_VAR bool V50 tmp43
[000819] -A---+------ * COMMA void
[000813] ------------ | /--* CNS_INT short 0
[000814] -A---------- | /--* ASG short
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42
[000815] -A---------- \--* COMMA void
[000809] ------------ | /--* CNS_INT int 0
[000810] -A---------- | /--* ASG int
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41
[000811] -A---------- \--* COMMA void
[000806] ------------ | /--* CNS_INT ref null
[000807] -A---------- \--* ASG ref
[000805] D------N---- \--* LCL_VAR ref V47 tmp40
fgMorphTree BB03, stmt 10 (before)
[000196] ------------ /--* LCL_VAR ref V39 tmp32
[000260] -A---------- * ASG ref
[000259] D------N---- \--* LCL_VAR ref V13 tmp6
Assertion prop in BB03:
Copy Assertion: V39 == V43 index=#05, mask=0000000000000010
[000196] ------------ * LCL_VAR ref V43 tmp36
Assertion prop in BB03:
Constant Assertion: V43 == null index=#02, mask=0000000000000002
[000196] ------------ * CNS_INT ref null
GenTreeNode creates assertion:
[000260] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V13 == null index=#13, mask=0000000000001000
fgMorphTree BB03, stmt 10 (after)
[000196] -----+------ /--* CNS_INT ref null
[000260] -A---+------ * ASG ref
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6
fgMorphTree BB03, stmt 11 (before)
[000199] ------------ /--* LCL_VAR int V40 tmp33
[000263] -A---------- * ASG int
[000262] D------N---- \--* LCL_VAR int V14 tmp7
Assertion prop in BB03:
Copy Assertion: V40 == V44 index=#06, mask=0000000000000020
[000199] ------------ * LCL_VAR int V44 tmp37
Assertion prop in BB03:
Constant Assertion: V44 == 1 index=#01, mask=0000000000000001
[000199] ------------ * CNS_INT int 1
GenTreeNode creates assertion:
[000263] -A---------- * ASG int
In BB03 New Local Constant Assertion: V14 == 1 index=#14, mask=0000000000002000
fgMorphTree BB03, stmt 11 (after)
[000199] -----+------ /--* CNS_INT int 1
[000263] -A---+------ * ASG int
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7
fgMorphTree BB03, stmt 12 (before)
[000202] ------------ /--* LCL_VAR short V41 tmp34
[000266] -A---------- * ASG short
[000265] D------N---- \--* LCL_VAR short V15 tmp8
Assertion prop in BB03:
Copy Assertion: V41 == V45 index=#07, mask=0000000000000040
[000202] ------------ * LCL_VAR short V45 tmp38
Assertion prop in BB03:
Constant Assertion: V45 == 0 index=#04, mask=0000000000000008
[000202] ------------ * CNS_INT int 0
GenTreeNode creates assertion:
[000266] -A---------- * ASG short
In BB03 New Local Constant Assertion: V15 == 0 index=#15, mask=0000000000004000
fgMorphTree BB03, stmt 12 (after)
[000202] -----+------ /--* CNS_INT int 0
[000266] -A---+------ * ASG short
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8
fgMorphTree BB03, stmt 13 (before)
[000237] ------------ /--* LCL_VAR ref V13 tmp6
[000239] -A---------- * ASG ref
[000238] D------N---- \--* LCL_VAR ref V47 tmp40
Assertion prop in BB03:
Constant Assertion: V13 == null index=#13, mask=0000000000001000
[000237] ------------ * CNS_INT ref null
The assignment [000239] using V47 removes: Constant Assertion: V47 == null
GenTreeNode creates assertion:
[000239] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V47 == null index=#15, mask=0000000000004000
fgMorphTree BB03, stmt 13 (after)
[000237] -----+------ /--* CNS_INT ref null
[000239] -A---+------ * ASG ref
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40
fgMorphTree BB03, stmt 14 (before)
[000243] ------------ /--* LCL_VAR int V14 tmp7
[000245] -A---------- * ASG int
[000244] D------N---- \--* LCL_VAR int V48 tmp41
Assertion prop in BB03:
Constant Assertion: V14 == 1 index=#14, mask=0000000000002000
[000243] ------------ * CNS_INT int 1
The assignment [000245] using V48 removes: Constant Assertion: V48 == 0
GenTreeNode creates assertion:
[000245] -A---------- * ASG int
In BB03 New Local Constant Assertion: V48 == 1 index=#15, mask=0000000000004000
fgMorphTree BB03, stmt 14 (after)
[000243] -----+------ /--* CNS_INT int 1
[000245] -A---+------ * ASG int
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41
fgMorphTree BB03, stmt 15 (before)
[000249] ------------ /--* LCL_VAR int V15 tmp8
[000251] -A---------- * ASG short
[000250] D------N---- \--* LCL_VAR short V49 tmp42
The assignment [000251] using V49 removes: Constant Assertion: V49 == 0
GenTreeNode creates assertion:
[000251] -A---------- * ASG short
In BB03 New Local Copy Assertion: V49 == V15 index=#15, mask=0000000000004000
fgMorphTree BB03, stmt 16 (before)
[000255] ------------ /--* CNS_INT int 0
[000257] -A---------- * ASG bool
[000256] D------N---- \--* LCL_VAR bool V50 tmp43
The assignment [000257] using V50 removes: Constant Assertion: V50 == 0
GenTreeNode creates assertion:
[000257] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V50 == 0 index=#15, mask=0000000000004000
fgMorphTree BB03, stmt 17 (before)
[000218] ------------ /--* CNS_INT int 0
[000219] IA------R--- * ASG struct (init)
[000217] D------N---- \--* LCL_VAR struct V12 tmp5
fgMorphInitBlock: this requires an InitBlock.
Local V12 should not be enregistered because: written in a block op
GenTreeNode creates assertion:
[000219] IA------R--- * ASG struct (init)
In BB03 New Local Constant Assertion: V12 == 0 index=#16, mask=0000000000008000
fgMorphTree BB03, stmt 18 (before)
[000225] x----------- /--* OBJ(16) struct
[000224] L----------- | \--* ADDR byref
[000216] ------------ | \--* LCL_VAR struct(P) V11 tmp4
| \--* ref V11._obj (offs=0x00) -> V47 tmp40
| \--* int V11._result (offs=0x08) -> V48 tmp41
| \--* short V11._token (offs=0x0c) -> V49 tmp42
| \--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43
[000280] -A------R--- * ASG struct (copy)
[000278] D----------- \--* LCL_VAR struct V16 tmp9
The assignment [000225] using V47 removes: Constant Assertion: V47 == null
The assignment [000225] using V48 removes: Constant Assertion: V48 == 1
The assignment [000225] using V49 removes: Copy Assertion: V49 == V15
The assignment [000225] using V50 removes: Constant Assertion: V50 == 0
fgMorphCopyBlock:block assignment to morph:
[000225] x----+------ /--* OBJ(16) struct
[000224] L----+------ | \--* ADDR byref
[000216] -----+-N---- | \--* LCL_VAR struct(P) V11 tmp4
| \--* ref V11._obj (offs=0x00) -> V47 tmp40
| \--* int V11._result (offs=0x08) -> V48 tmp41
| \--* short V11._token (offs=0x0c) -> V49 tmp42
| \--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43
[000280] -A------R--- * ASG struct (copy)
[000278] D----+-N---- \--* LCL_VAR struct V16 tmp9
(srcDoFldAsg=true) using field by field assignments.
Local V16 should not be enregistered because: written in a block op
lvaGrabTemp returning 52 (V52 tmp45) called for BlockOp address local.
Local V16 should not be enregistered because: it is address exposed
fgMorphCopyBlock (after):
[000850] -------N---- /--* LCL_VAR bool V50 tmp43
[000851] -A---------- /--* ASG bool
[000849] *------N---- | \--* IND bool
[000847] ------------ | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
[000848] ------------ | \--* ADD byref
[000846] ------------ | \--* LCL_VAR byref V52 tmp45
[000852] -A---+------ * COMMA void
[000843] -------N---- | /--* LCL_VAR short V49 tmp42
[000844] -A---------- | /--* ASG short
[000842] *------N---- | | \--* IND short
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
[000841] ------------ | | \--* ADD byref
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45
[000845] -A---------- \--* COMMA void
[000836] -------N---- | /--* LCL_VAR int V48 tmp41
[000837] -A---------- | /--* ASG int
[000835] *------N---- | | \--* IND int
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
[000834] ------------ | | \--* ADD byref
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45
[000838] -A---------- \--* COMMA void
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40
[000830] -A---------- | /--* ASG ref
[000828] *------N---- | | \--* IND ref
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
[000827] ------------ | | \--* ADD byref
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45
[000831] -A---------- \--* COMMA void
[000821] L----------- | /--* ADDR byref
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
[000824] -A---------- \--* ASG byref
[000823] D------N---- \--* LCL_VAR byref V52 tmp45
fgMorphTree BB03, stmt 18 (after)
[000850] -------N---- /--* LCL_VAR bool V50 tmp43
[000851] -A---------- /--* ASG bool
[000849] *------N---- | \--* IND bool
[000847] ------------ | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
[000848] ------------ | \--* ADD byref
[000846] ------------ | \--* LCL_VAR byref V52 tmp45
[000852] -A---+------ * COMMA void
[000843] -------N---- | /--* LCL_VAR short V49 tmp42
[000844] -A---------- | /--* ASG short
[000842] *------N---- | | \--* IND short
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
[000841] ------------ | | \--* ADD byref
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45
[000845] -A---------- \--* COMMA void
[000836] -------N---- | /--* LCL_VAR int V48 tmp41
[000837] -A---------- | /--* ASG int
[000835] *------N---- | | \--* IND int
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
[000834] ------------ | | \--* ADD byref
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45
[000838] -A---------- \--* COMMA void
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40
[000830] -A---------- | /--* ASG ref
[000828] *------N---- | | \--* IND ref
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
[000827] ------------ | | \--* ADD byref
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45
[000831] -A---------- \--* COMMA void
[000821] L----------- | /--* ADDR byref
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
[000824] -A---------- \--* ASG byref
[000823] D------N---- \--* LCL_VAR byref V52 tmp45
fgMorphTree BB03, stmt 19 (before)
[000272] ------------ /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A------R--- * ASG struct (copy)
[000275] ------------ \--* OBJ(16) struct
[000274] ------------ \--* ADDR byref
[000273] ------------ \--* FIELD struct _value
[000270] L----------- \--* ADDR byref
[000271] ------------ \--* LCL_VAR struct V12 tmp5
Local V12 should not be enregistered because: was accessed as a local field
The assignment [000275] using V12 removes: Constant Assertion: V12 == 0
fgMorphCopyBlock:block assignment to morph:
[000272] ----G+------ /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A--G---R--- * ASG struct (copy)
[000275] x----+------ \--* OBJ(16) struct
[000274] -----+------ \--* ADDR byref
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
with no promoted structs this requires a CopyBlock.
Local V12 should not be enregistered because: written in a block op
Local V16 should not be enregistered because: written in a block op
fgMorphTree BB03, stmt 19 (after)
[000272] ----G+------ /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A--G+--R--- * ASG struct (copy)
[000275] x----+------ \--* BLK(16) struct
[000274] -----+------ \--* ADDR byref
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
fgMorphTree BB03, stmt 20 (before)
[000228] ------------ /--* LCL_VAR struct V12 tmp5
[000231] -A------R--- * ASG struct (copy)
[000230] D----------- \--* LCL_VAR struct V05 loc4
fgMorphCopyBlock:block assignment to morph:
[000228] -----+------ /--* LCL_VAR struct V12 tmp5
[000231] -A------R--- * ASG struct (copy)
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4
with no promoted structs this requires a CopyBlock.
Local V05 should not be enregistered because: written in a block op
Local V12 should not be enregistered because: written in a block op
GenTreeNode creates assertion:
[000231] -A------R--- * ASG struct (copy)
In BB03 New Local Copy Assertion: V05 == V12 index=#12, mask=0000000000000800
fgMorphTree BB03, stmt 21 (before)
[000288] ------------ /--* CNS_INT int 0
[000289] IA------R--- * ASG struct (init)
[000287] D------N---- \--* LCL_VAR struct V17 tmp10
fgMorphInitBlock: this requires an InitBlock.
Local V17 should not be enregistered because: written in a block op
GenTreeNode creates assertion:
[000289] IA------R--- * ASG struct (init)
In BB03 New Local Constant Assertion: V17 == 0 index=#13, mask=0000000000001000
fgMorphTree BB03, stmt 22 (before)
[000295] ---XG------- /--* OBJ(16) struct
[000294] ------------ | \--* ADDR byref
[000286] ------------ | \--* FIELD struct _value
[000284] L----------- | \--* ADDR byref
[000285] ------------ | \--* LCL_VAR struct V05 loc4
[000314] -A-XG---R--- * ASG struct (copy)
[000312] D----------- \--* LCL_VAR struct V18 tmp11
Local V05 should not be enregistered because: was accessed as a local field
The assignment [000295] using V05 removes: Copy Assertion: V05 == V12
fgMorphCopyBlock:block assignment to morph:
[000295] x---G+------ /--* OBJ(16) struct
[000294] -----+------ | \--* ADDR byref
[000285] -----+-N---- | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
[000314] -A--G---R--- * ASG struct (copy)
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11
with no promoted structs this requires a CopyBlock.
Local V18 should not be enregistered because: written in a block op
Local V05 should not be enregistered because: written in a block op
fgMorphTree BB03, stmt 22 (after)
[000295] x---G+------ /--* IND struct
[000294] -----+------ | \--* ADDR byref
[000285] -----+-N---- | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
[000314] -A--G+--R--- * ASG struct (copy)
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11
fgMorphTree BB03, stmt 23 (before)
[000306] ------------ /--* LCL_VAR struct V18 tmp11
[000310] -A------R--- * ASG struct (copy)
[000309] ------------ \--* OBJ(16) struct
[000308] ------------ \--* ADDR byref
[000307] ------------ \--* FIELD struct _value
[000304] L----------- \--* ADDR byref
[000305] ------------ \--* LCL_VAR struct V17 tmp10
Local V17 should not be enregistered because: was accessed as a local field
The assignment [000309] using V17 removes: Constant Assertion: V17 == 0
fgMorphCopyBlock:block assignment to morph:
[000306] -----+------ /--* LCL_VAR struct V18 tmp11
[000310] -A------R--- * ASG struct (copy)
[000309] x----+------ \--* OBJ(16) struct
[000308] -----+------ \--* ADDR byref
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
with no promoted structs this requires a CopyBlock.
Local V17 should not be enregistered because: written in a block op
Local V18 should not be enregistered because: written in a block op
fgMorphTree BB03, stmt 23 (after)
[000306] -----+------ /--* LCL_VAR struct V18 tmp11
[000310] -A---+--R--- * ASG struct (copy)
[000309] x----+------ \--* BLK(16) struct
[000308] -----+------ \--* ADDR byref
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
fgMorphTree BB03, stmt 24 (before)
[000298] ------------ /--* LCL_VAR struct V17 tmp10
[000301] -A------R--- * ASG struct (copy)
[000300] D----------- \--* LCL_VAR struct(AX) V03 loc2
fgMorphCopyBlock:block assignment to morph:
[000298] -----+------ /--* LCL_VAR struct V17 tmp10
[000301] -A--G---R--- * ASG struct (copy)
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
with no promoted structs this requires a CopyBlock.
Local V03 should not be enregistered because: written in a block op
Local V17 should not be enregistered because: written in a block op
Morphing BB18 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB18, stmt 25 (before)
[000332] ----G------- /--* FIELD ref _obj
[000328] ----G------- | \--* ADDR byref
[000329] ----G------- | \--* FIELD struct _value
[000330] L----------- | \--* ADDR byref
[000331] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000334] -A--G------- * ASG ref
[000333] D------N---- \--* LCL_VAR ref V20 tmp13
Local V03 should not be enregistered because: was accessed as a local field
fgMorphTree BB18, stmt 25 (after)
[000331] ----G+------ /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000334] -A--G+------ * ASG ref
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13
fgMorphTree BB18, stmt 26 (before)
[000339] ------------ * JTRUE void
[000337] ------------ | /--* CNS_INT ref null
[000338] ------------ \--* NE int
[000336] ------------ \--* LCL_VAR ref V20 tmp13
Morphing BB19 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB19, stmt 27 (before)
[000392] ------------ /--* CAST int <- bool <- int
[000391] ------------ | \--* CNS_INT int 1
[000394] -A---------- * ASG bool
[000393] D------N---- \--* LCL_VAR bool V19 tmp12
GenTreeNode creates assertion:
[000394] -A---------- * ASG bool
In BB19 New Local Constant Assertion: V19 == 1 index=#01, mask=0000000000000001
fgMorphTree BB19, stmt 27 (after)
[000391] -----+------ /--* CNS_INT int 1
[000394] -A---+------ * ASG bool
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12
Morphing BB20 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB20, stmt 28 (before)
[000346] --C-G------- /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000343] -------N---- arg0 | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000342] ------------ arg1 | \--* LCL_VAR ref V20 tmp13
[000348] -AC-G------- * ASG ref
[000347] D------N---- \--* LCL_VAR ref V21 tmp14
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rdx'):
[000342] -----+------ * LCL_VAR ref V20 tmp13
Replaced with placeholder node:
[000853] ----------L- * ARGPLACE ref
Deferred argument ('rcx'):
[000343] -----+-N---- * CNS_INT(h) long 0x7ffc6b4afbd8 class
Replaced with placeholder node:
[000855] ----------L- * ARGPLACE long
Shuffled argument table: rdx rcx
fgArgTabEntry[arg 1 342.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 343.CNS_INT, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgMorphTree BB20, stmt 28 (after)
[000346] --C-G+------ /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000342] -----+------ arg1 in rdx | +--* LCL_VAR ref V20 tmp13
[000343] -----+-N---- arg0 in rcx | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000348] -AC-G+------ * ASG ref
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14
fgMorphTree BB20, stmt 29 (before)
[000351] ------------ /--* LCL_VAR ref V21 tmp14
[000353] -A---------- * ASG ref
[000352] D------N---- \--* LCL_VAR ref V22 tmp15
GenTreeNode creates assertion:
[000353] -A---------- * ASG ref
In BB20 New Local Copy Assertion: V22 == V21 index=#01, mask=0000000000000001
fgMorphTree BB20, stmt 30 (before)
[000357] ------------ * JTRUE void
[000355] ------------ | /--* CNS_INT ref null
[000356] ------------ \--* EQ int
[000350] ------------ \--* LCL_VAR ref V21 tmp14
Morphing BB21 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB21, stmt 31 (before)
[000407] V--XGO-N---- /--* FIELD int m_stateFlags
[000381] ------------ | \--* LCL_VAR ref V22 tmp15
[000409] -A-XGO------ * ASG int
[000408] D------N---- \--* LCL_VAR int V23 tmp16
GenTreeNode creates assertion:
[000407] V--XGO-N---- * IND int
In BB21 New Local Constant Assertion: V22 != null index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000409] -A-XGO------ * ASG int
In BB21 New Local Subrange Assertion: V23 in [-2147483648..2147483647] index=#02, mask=0000000000000002
fgMorphTree BB21, stmt 31 (after)
[000407] V--XG+-N---- /--* IND int
[000857] -----+------ | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000858] -----+------ | \--* ADD byref
[000381] -----+------ | \--* LCL_VAR ref V22 tmp15
[000409] -A-XG+------ * ASG int
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16
fgMorphTree BB21, stmt 32 (before)
[000385] --C--------- /--* CAST int <- bool <- int
[000416] --C--------- | \--* CAST int <- bool <- int
[000421] ------------ | | /--* CNS_INT int 0
[000422] N--------U-- | \--* GT int
[000419] ------------ | | /--* CNS_INT int 0x1600000
[000420] ------------ | \--* AND int
[000411] ------------ | \--* LCL_VAR int V23 tmp16
[000387] -AC--------- * ASG bool
[000386] D------N---- \--* LCL_VAR bool V19 tmp12
GenTreeNode creates assertion:
[000387] -A---------- * ASG bool
In BB21 New Local Subrange Assertion: V19 in [0..1] index=#03, mask=0000000000000004
fgMorphTree BB21, stmt 32 (after)
[000421] -----+------ /--* CNS_INT int 0
[000422] N----+------ /--* NE int
[000419] -----+------ | | /--* CNS_INT int 0x1600000
[000420] -----+------ | \--* AND int
[000411] -----+------ | \--* LCL_VAR int V23 tmp16
[000387] -A---+------ * ASG bool
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12
Morphing BB22 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB22, stmt 33 (before)
[000374] ------------ /--* CNS_INT int 0
[000375] N-C-G----U-- /--* GT int
[000372] --C-G------- | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] ------------ this in rcx | +--* LCL_VAR ref V20 tmp13
[000371] ----G------- arg1 | \--* FIELD short _token
[000367] ----G------- | \--* ADDR byref
[000368] ----G------- | \--* FIELD struct _value
[000369] L----------- | \--* ADDR byref
[000370] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000377] -AC-G------- * ASG bool
[000376] D------N---- \--* LCL_VAR bool V19 tmp12
Local V03 should not be enregistered because: was accessed as a local field
Local V03 should not be enregistered because: was accessed as a local field
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000360] -----+------ * LCL_VAR ref V20 tmp13
Replaced with placeholder node:
[000863] ----------L- * ARGPLACE ref
Deferred argument ('rdx'):
[000370] ----G+------ * LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
Replaced with placeholder node:
[000865] ----------L- * ARGPLACE short
Deferred argument ('r11'):
[000859] -----+------ * CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
Replaced with placeholder node:
[000867] ----------L- * ARGPLACE long
Shuffled argument table: rcx rdx r11
fgArgTabEntry[arg 0 360.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 2 370.LCL_FLD, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 859.CNS_INT, 1 reg: r11, align=1, lateArgInx=2, processed, isNonStandard]
GenTreeNode creates assertion:
[000372] --CXG------- * CALLV stub int IValueTaskSource`1.GetStatus
In BB22 New Local Constant Assertion: V20 != null index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000377] -ACXG------- * ASG bool
In BB22 New Local Subrange Assertion: V19 in [0..1] index=#02, mask=0000000000000002
fgMorphTree BB22, stmt 33 (after)
[000374] -----+------ /--* CNS_INT int 0
[000375] N-CXG+------ /--* NE int
[000372] --CXG+------ | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] -----+------ this in rcx | +--* LCL_VAR ref V20 tmp13
[000370] ----G+------ arg2 in rdx | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000859] -----+------ arg1 in r11 | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
[000377] -ACXG+------ * ASG bool
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12
Morphing BB23 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB23, stmt 34 (before)
[000397] ------------ /--* CNS_INT ref null
[000399] -A---------- * ASG ref
[000398] D------N---- \--* LCL_VAR ref V20 tmp13
GenTreeNode creates assertion:
[000399] -A---------- * ASG ref
In BB23 New Local Constant Assertion: V20 == null index=#01, mask=0000000000000001
fgMorphTree BB23, stmt 35 (before)
[000401] ------------ /--* CNS_INT ref null
[000403] -A---------- * ASG ref
[000402] D------N---- \--* LCL_VAR ref V22 tmp15
GenTreeNode creates assertion:
[000403] -A---------- * ASG ref
In BB23 New Local Constant Assertion: V22 == null index=#02, mask=0000000000000002
fgMorphTree BB23, stmt 36 (before)
[000101] --C--------- * JTRUE void
[000099] ------------ | /--* CNS_INT int 0
[000100] --C--------- \--* NE int
[000325] --C--------- \--* CAST int <- bool <- int
[000396] ------------ \--* LCL_VAR int V19 tmp12
fgMorphTree BB23, stmt 36 (after)
[000101] -----+------ * JTRUE void
[000099] -----+------ | /--* CNS_INT int 0
[000100] J----+-N---- \--* NE int
[000396] -----+------ \--* LCL_VAR int V19 tmp12
Morphing BB04 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB04, stmt 37 (before)
[000106] ------------ /--* CNS_INT int 0
[000108] -A---------- * ASG int
[000107] D------N---- \--* LCL_VAR int V01 loc0
GenTreeNode creates assertion:
[000108] -A---------- * ASG int
In BB04 New Local Constant Assertion: V01 == 0 index=#01, mask=0000000000000001
fgMorphTree BB04, stmt 38 (before)
[000105] ------------ /--* CNS_INT int 0
[000111] -A-XG------- * ASG int
[000110] ---XG--N---- \--* FIELD int <>1__state
[000104] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 38 (after)
[000105] -----+------ /--* CNS_INT int 0
[000111] -A-XG+------ * ASG int
[000110] *--XG+-N---- \--* IND int
[000104] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 39 (before)
[000114] ------------ /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG---R--- * ASG struct (copy)
[000117] ---XG------- \--* OBJ(16) struct
[000116] ---XG------- \--* ADDR byref
[000115] ---XG------- \--* FIELD struct <>u__1
[000113] ------------ \--* LCL_VAR byref V00 this
fgMorphCopyBlock:block assignment to morph:
[000114] ----G+------ /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG---R--- * ASG struct (copy)
[000117] ---XG+------ \--* OBJ(16) struct
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000870] -----+------ \--* ADD byref
[000113] -----+------ \--* LCL_VAR byref V00 this
with no promoted structs this requires a CopyBlock.
Local V03 should not be enregistered because: written in a block op
fgMorphTree BB04, stmt 39 (after)
[000114] ----G+------ /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG+--R--- * ASG struct (copy)
[000117] ---XG+------ \--* OBJ(16) struct
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000870] -----+------ \--* ADD byref
[000113] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 40 (before)
[000122] ---XG------- /--* ADDR byref
[000121] ---XG------- | \--* FIELD struct <>t__builder
[000120] ------------ | \--* LCL_VAR byref V00 this
[000442] -A-XG------- * ASG byref
[000441] D------N---- \--* LCL_VAR byref V24 tmp17
Before explicit null check morphing:
[000121] ---XG--N---- * FIELD struct <>t__builder
[000120] ------------ \--* LCL_VAR byref V00 this
After adding explicit null check:
[000121] *--XG--N---- * IND struct
[000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000875] ------------ | /--* ADD byref
[000873] ------------ | | \--* LCL_VAR byref V00 this
[000876] ---X-------- \--* COMMA byref
[000872] ---X---N---- \--* NULLCHECK byte
[000871] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 40 (after)
[000874] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000875] -----+------ /--* ADD byref
[000873] -----+------ | \--* LCL_VAR byref V00 this
[000876] ---XG+-N---- /--* COMMA byref
[000872] ---X-+-N---- | \--* NULLCHECK byte
[000871] -----+------ | \--* LCL_VAR byref V00 this
[000442] -A-XG+------ * ASG byref
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17
fgMorphTree BB04, stmt 41 (before)
[000428] ------------ /--* CNS_INT int 1
[000430] -A-XG------- * ASG bool
[000429] ---XG--N---- \--* FIELD bool _useBuilder
[000427] ------------ \--* LCL_VAR byref V24 tmp17
fgMorphTree BB04, stmt 41 (after)
[000428] -----+------ /--* CNS_INT int 1
[000430] -A-XG+------ * ASG bool
[000429] *--XG+-N---- \--* IND bool
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000879] -----+------ \--* ADD byref
[000427] -----+------ \--* LCL_VAR byref V24 tmp17
fgMorphTree BB04, stmt 42 (before)
[000437] --CXG------- * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000434] ---XG------- this in rcx +--* ADDR byref
[000433] ---XG------- | \--* FIELD struct _methodBuilder
[000432] ------------ | \--* LCL_VAR byref V24 tmp17
[000435] L----------- arg1 +--* ADDR byref
[000436] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000125] ------------ arg2 \--* LCL_VAR byref V00 this
Before explicit null check morphing:
[000433] ---XG--N---- * FIELD struct _methodBuilder
[000432] ------------ \--* LCL_VAR byref V24 tmp17
After adding explicit null check:
[000433] *--XG--N---- * IND struct
[000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000884] ------------ | /--* ADD byref
[000882] ------------ | | \--* LCL_VAR byref V24 tmp17
[000885] ---X-------- \--* COMMA byref
[000881] ---X---N---- \--* NULLCHECK byte
[000880] ------------ \--* LCL_VAR byref V24 tmp17
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
( 1, 1) [000883] ------------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
( 5, 4) [000884] ------------ /--* ADD byref
( 3, 2) [000882] ------------ | \--* LCL_VAR byref V24 tmp17
( 9, 7) [000885] ---XG--N---- * COMMA byref
( 4, 3) [000881] ---X---N---- \--* NULLCHECK byte
( 3, 2) [000880] ------------ \--* LCL_VAR byref V24 tmp17
Replaced with placeholder node:
[000887] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
( 3, 3) [000435] L----------- * ADDR long
( 3, 2) [000436] ----G--N---- \--* LCL_VAR struct(AX) V03 loc2
Replaced with placeholder node:
[000889] ----------L- * ARGPLACE long
Deferred argument ('r8'):
[000125] -----+------ * LCL_VAR byref V00 this
Replaced with placeholder node:
[000891] ----------L- * ARGPLACE byref
Shuffled argument table: rcx rdx r8
fgArgTabEntry[arg 0 885.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 435.ADDR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 125.LCL_VAR, 1 reg: r8, align=1, lateArgInx=2, processed]
fgMorphTree BB04, stmt 42 (after)
[000437] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
( 5, 4) [000884] ------------ | /--* ADD byref
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
Morphing BB05 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB05, stmt 43 (before)
[000016] ---XG------- /--* FIELD struct <>u__1
[000015] ------------ | \--* LCL_VAR byref V00 this
[000019] -A-XG---R--- * ASG struct (copy)
[000017] D----------- \--* LCL_VAR struct(AX) V03 loc2
fgMorphCopyBlock:block assignment to morph:
[000016] *--XG+------ /--* IND struct
[000893] -----+------ | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000894] -----+------ | \--* ADD byref
[000015] -----+------ | \--* LCL_VAR byref V00 this
[000019] -A-XG---R--- * ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
with no promoted structs this requires a CopyBlock.
Local V03 should not be enregistered because: written in a block op
fgMorphTree BB05, stmt 43 (after)
[000016] *--XG+------ /--* IND struct
[000893] -----+------ | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000894] -----+------ | \--* ADD byref
[000015] -----+------ | \--* LCL_VAR byref V00 this
[000019] -A-XG+--R--- * ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
fgMorphTree BB05, stmt 44 (before)
[000024] ------------ /--* CNS_INT int 0
[000026] IA-XG---R--- * ASG struct (init)
[000025] ---XG--N---- \--* BLK(16) struct
[000023] ---XG------- \--* ADDR byref
[000022] ---XG------- \--* FIELD struct <>u__1
[000021] ------------ \--* LCL_VAR byref V00 this
fgMorphInitBlock: this requires an InitBlock.
fgMorphTree BB05, stmt 44 (after)
[000024] -----+------ /--* CNS_INT int 0
[000026] IA-XG+--R--- * ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000896] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB05, stmt 45 (before)
[000029] ------------ /--* CNS_INT int -1
[000031] -A---------- * ASG int
[000030] D------N---- \--* LCL_VAR int V08 tmp1
GenTreeNode creates assertion:
[000031] -A---------- * ASG int
In BB05 New Local Constant Assertion: V08 == -1 index=#01, mask=0000000000000001
fgMorphTree BB05, stmt 46 (before)
[000034] ------------ /--* LCL_VAR int V08 tmp1
[000036] -A---------- * ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
Assertion prop in BB05:
Constant Assertion: V08 == -1 index=#01, mask=0000000000000001
[000034] ------------ * CNS_INT int -1
GenTreeNode creates assertion:
[000036] -A---------- * ASG int
In BB05 New Local Constant Assertion: V01 == -1 index=#02, mask=0000000000000002
fgMorphTree BB05, stmt 46 (after)
[000034] -----+------ /--* CNS_INT int -1
[000036] -A---+------ * ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
fgMorphTree BB05, stmt 47 (before)
[000033] ------------ /--* LCL_VAR int V08 tmp1
[000039] -A-XG------- * ASG int
[000038] ---XG--N---- \--* FIELD int <>1__state
[000028] ------------ \--* LCL_VAR byref V00 this
Assertion prop in BB05:
Constant Assertion: V08 == -1 index=#01, mask=0000000000000001
[000033] ------------ * CNS_INT int -1
fgMorphTree BB05, stmt 47 (after)
[000033] -----+------ /--* CNS_INT int -1
[000039] -A-XG+------ * ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
Morphing BB06 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB29 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB29, stmt 48 (before)
[000459] ----G------- /--* FIELD ref _obj
[000455] ----G------- | \--* ADDR byref
[000456] ----G------- | \--* FIELD struct _value
[000457] L----------- | \--* ADDR byref
[000458] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000461] -A--G------- * ASG ref
[000460] D------N---- \--* LCL_VAR ref V26 tmp19
Local V03 should not be enregistered because: was accessed as a local field
fgMorphTree BB29, stmt 48 (after)
[000458] ----G+------ /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000461] -A--G+------ * ASG ref
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19
fgMorphTree BB29, stmt 49 (before)
[000466] ------------ * JTRUE void
[000464] ------------ | /--* CNS_INT ref null
[000465] ------------ \--* NE int
[000463] ------------ \--* LCL_VAR ref V26 tmp19
Morphing BB30 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB30, stmt 50 (before)
[000523] ----G------- /--* FIELD int _result
[000519] ----G------- | \--* ADDR byref
[000520] ----G------- | \--* FIELD struct _value
[000521] L----------- | \--* ADDR byref
[000522] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000525] -A--G------- * ASG int
[000524] D------N---- \--* LCL_VAR int V25 tmp18
Local V03 should not be enregistered because: was accessed as a local field
Local V03 should not be enregistered because: was accessed as a local field
GenTreeNode creates assertion:
[000525] -A--G------- * ASG int
In BB30 New Local Subrange Assertion: V25 in [-2147483648..2147483647] index=#01, mask=0000000000000001
fgMorphTree BB30, stmt 50 (after)
[000522] ----G+------ /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
[000525] -A--G+------ * ASG int
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18
Morphing BB31 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB31, stmt 51 (before)
[000473] --C-G------- /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000470] -------N---- arg0 | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000469] ------------ arg1 | \--* LCL_VAR ref V26 tmp19
[000475] -AC-G------- * ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp20
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rdx'):
[000469] -----+------ * LCL_VAR ref V26 tmp19
Replaced with placeholder node:
[000899] ----------L- * ARGPLACE ref
Deferred argument ('rcx'):
[000470] -----+-N---- * CNS_INT(h) long 0x7ffc6b4afbd8 class
Replaced with placeholder node:
[000901] ----------L- * ARGPLACE long
Shuffled argument table: rdx rcx
fgArgTabEntry[arg 1 469.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 0 470.CNS_INT, 1 reg: rcx, align=1, lateArgInx=1, processed]
fgMorphTree BB31, stmt 51 (after)
[000473] --C-G+------ /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000469] -----+------ arg1 in rdx | +--* LCL_VAR ref V26 tmp19
[000470] -----+-N---- arg0 in rcx | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000475] -AC-G+------ * ASG ref
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20
fgMorphTree BB31, stmt 52 (before)
[000478] ------------ /--* LCL_VAR ref V27 tmp20
[000480] -A---------- * ASG ref
[000479] D------N---- \--* LCL_VAR ref V28 tmp21
GenTreeNode creates assertion:
[000480] -A---------- * ASG ref
In BB31 New Local Copy Assertion: V28 == V27 index=#01, mask=0000000000000001
fgMorphTree BB31, stmt 53 (before)
[000484] ------------ * JTRUE void
[000482] ------------ | /--* CNS_INT ref null
[000483] ------------ \--* EQ int
[000477] ------------ \--* LCL_VAR ref V27 tmp20
Morphing BB32 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB35 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB35, stmt 54 (before)
[000543] --C--------- * JTRUE void
[000541] ------------ | /--* CNS_INT int 0
[000542] --C--------- \--* EQ int
[000558] ------------ | /--* CNS_INT int 0
[000559] ---XGO------ \--* EQ int
[000556] ------------ | /--* CNS_INT int 0x1000000
[000557] ---XGO------ \--* EQ int
[000554] ------------ | /--* CNS_INT int 0x11000000
[000555] ---XGO------ \--* AND int
[000553] V--XGO-N---- \--* FIELD int m_stateFlags
[000506] ------------ \--* LCL_VAR ref V28 tmp21
GenTreeNode creates assertion:
[000553] V--XGO-N---- * IND int
In BB35 New Local Constant Assertion: V28 != null index=#01, mask=0000000000000001
fgMorphTree BB35, stmt 54 (after)
[000543] ---XG+------ * JTRUE void
[000556] -----+------ | /--* CNS_INT int 0x1000000
[000557] J--XG+-N---- \--* EQ int
[000554] -----+------ | /--* CNS_INT int 0x11000000
[000555] ---XG+------ \--* AND int
[000553] V--XG+-N---- \--* IND int
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000904] -----+------ \--* ADD byref
[000506] -----+------ \--* LCL_VAR ref V28 tmp21
Morphing BB36 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB36, stmt 55 (before)
[000548] --C-G------- * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000547] -----+------ * LCL_VAR ref V28 tmp21
Replaced with placeholder node:
[000905] ----------L- * ARGPLACE ref
Shuffled argument table: rcx
fgArgTabEntry[arg 0 547.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB36, stmt 55 (after)
[000548] --CXG+------ * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21
Morphing BB37 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB38 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB38, stmt 56 (before)
[000562] ---XG------- /--* FIELD int m_result
[000510] ------------ | \--* LCL_VAR ref V28 tmp21
[000515] -AC--------- * ASG int
[000514] D------N---- \--* LCL_VAR int V25 tmp18
GenTreeNode creates assertion:
[000562] ---XG------- * IND int
In BB38 New Local Constant Assertion: V28 != null index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000515] -A-XG------- * ASG int
In BB38 New Local Subrange Assertion: V25 in [-2147483648..2147483647] index=#02, mask=0000000000000002
fgMorphTree BB38, stmt 56 (after)
[000562] ---XG+------ /--* IND int
[000907] -----+------ | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000908] -----+------ | \--* ADD byref
[000510] -----+------ | \--* LCL_VAR ref V28 tmp21
[000515] -A-XG+------ * ASG int
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18
Morphing BB33 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB33, stmt 57 (before)
[000499] --C-G------- /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] ------------ this in rcx | +--* LCL_VAR ref V26 tmp19
[000498] ----G------- arg1 | \--* FIELD short _token
[000494] ----G------- | \--* ADDR byref
[000495] ----G------- | \--* FIELD struct _value
[000496] L----------- | \--* ADDR byref
[000497] ------------ | \--* LCL_VAR struct(AX) V03 loc2
[000502] -AC-G------- * ASG int
[000501] D------N---- \--* LCL_VAR int V25 tmp18
Local V03 should not be enregistered because: was accessed as a local field
Local V03 should not be enregistered because: was accessed as a local field
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000487] -----+------ * LCL_VAR ref V26 tmp19
Replaced with placeholder node:
[000913] ----------L- * ARGPLACE ref
Deferred argument ('rdx'):
[000497] ----G+------ * LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
Replaced with placeholder node:
[000915] ----------L- * ARGPLACE short
Deferred argument ('r11'):
[000909] -----+------ * CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
Replaced with placeholder node:
[000917] ----------L- * ARGPLACE long
Shuffled argument table: rcx rdx r11
fgArgTabEntry[arg 0 487.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 2 497.LCL_FLD, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 1 909.CNS_INT, 1 reg: r11, align=1, lateArgInx=2, processed, isNonStandard]
GenTreeNode creates assertion:
[000499] --CXG------- * CALLV stub int IValueTaskSource`1.GetResult
In BB33 New Local Constant Assertion: V26 != null index=#01, mask=0000000000000001
fgMorphTree BB33, stmt 57 (after)
[000499] --CXG+------ /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] -----+------ this in rcx | +--* LCL_VAR ref V26 tmp19
[000497] ----G+------ arg2 in rdx | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000909] -----+------ arg1 in r11 | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
[000502] -ACXG+------ * ASG int
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18
Morphing BB34 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB34, stmt 58 (before)
[000528] ------------ /--* CNS_INT ref null
[000530] -A---------- * ASG ref
[000529] D------N---- \--* LCL_VAR ref V26 tmp19
GenTreeNode creates assertion:
[000530] -A---------- * ASG ref
In BB34 New Local Constant Assertion: V26 == null index=#01, mask=0000000000000001
fgMorphTree BB34, stmt 59 (before)
[000532] ------------ /--* CNS_INT ref null
[000534] -A---------- * ASG ref
[000533] D------N---- \--* LCL_VAR ref V28 tmp21
GenTreeNode creates assertion:
[000534] -A---------- * ASG ref
In BB34 New Local Constant Assertion: V28 == null index=#02, mask=0000000000000002
fgMorphTree BB34, stmt 60 (before)
[000527] ------------ /--* LCL_VAR int V25 tmp18
[000048] -AC--------- * ASG int
[000047] D------N---- \--* LCL_VAR int V02 loc1
GenTreeNode creates assertion:
[000048] -A---------- * ASG int
In BB34 New Local Copy Assertion: V02 == V25 index=#03, mask=0000000000000004
Morphing BB07 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB07, stmt 61 (before)
[000007] -----O------ /--* CATCH_ARG ref
[000132] -A---O------ * ASG ref
[000131] D------N---- \--* LCL_VAR ref V09 tmp2
fgMorphTree BB07, stmt 62 (before)
[000134] ------------ /--* LCL_VAR ref V09 tmp2
[000136] -A---------- * ASG ref
[000135] D------N---- \--* LCL_VAR ref V06 loc5
GenTreeNode creates assertion:
[000136] -A---------- * ASG ref
In BB07 New Local Copy Assertion: V06 == V09 index=#01, mask=0000000000000001
fgMorphTree BB07, stmt 63 (before)
[000139] ------------ /--* CNS_INT int -2
[000141] -A-XG------- * ASG int
[000140] ---XG--N---- \--* FIELD int <>1__state
[000138] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB07, stmt 63 (after)
[000139] -----+------ /--* CNS_INT int -2
[000141] -A-XG+------ * ASG int
[000140] *--XG+-N---- \--* IND int
[000138] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB07, stmt 64 (before)
[000147] --CXG------- * CALL void AsyncValueTaskMethodBuilder`1.SetException
[000145] ---XG------- this in rcx +--* ADDR byref
[000144] ---XG------- | \--* FIELD struct <>t__builder
[000143] ------------ | \--* LCL_VAR byref V00 this
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5
Before explicit null check morphing:
[000144] ---XG--N---- * FIELD struct <>t__builder
[000143] ------------ \--* LCL_VAR byref V00 this
After adding explicit null check:
[000144] *--XG--N---- * IND struct
[000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] ------------ | /--* ADD byref
[000921] ------------ | | \--* LCL_VAR byref V00 this
[000924] ---X-------- \--* COMMA byref
[000920] ---X---N---- \--* NULLCHECK byte
[000919] ------------ \--* LCL_VAR byref V00 this
Assertion prop in BB07:
Copy Assertion: V06 == V09 index=#01, mask=0000000000000001
[000146] ------------ * LCL_VAR ref V09 tmp2
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000922] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] -----+------ /--* ADD byref
[000921] -----+------ | \--* LCL_VAR byref V00 this
[000924] ---XG+-N---- * COMMA byref
[000920] ---X-+-N---- \--* NULLCHECK byte
[000919] -----+------ \--* LCL_VAR byref V00 this
Replaced with placeholder node:
[000926] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
[000146] -----+------ * LCL_VAR ref V09 tmp2
Replaced with placeholder node:
[000928] ----------L- * ARGPLACE ref
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 924.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 146.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgMorphTree BB07, stmt 64 (after)
[000147] --CXG+------ * CALL void AsyncValueTaskMethodBuilder`1.SetException
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] -----+------ | /--* ADD byref
[000921] -----+------ | | \--* LCL_VAR byref V00 this
[000924] ---XG+-N---- this in rcx +--* COMMA byref
[000920] ---X-+-N---- | \--* NULLCHECK byte
[000919] -----+------ | \--* LCL_VAR byref V00 this
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2
Morphing BB08 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB08, stmt 65 (before)
[000052] ------------ /--* CNS_INT int -2
[000054] -A-XG------- * ASG int
[000053] ---XG--N---- \--* FIELD int <>1__state
[000051] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB08, stmt 65 (after)
[000052] -----+------ /--* CNS_INT int -2
[000054] -A-XG+------ * ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB08, stmt 66 (before)
[000058] ---XG------- /--* ADDR byref
[000057] ---XG------- | \--* FIELD struct <>t__builder
[000056] ------------ | \--* LCL_VAR byref V00 this
[000592] -A-XG------- * ASG byref
[000591] D------N---- \--* LCL_VAR byref V29 tmp22
Before explicit null check morphing:
[000057] ---XG--N---- * FIELD struct <>t__builder
[000056] ------------ \--* LCL_VAR byref V00 this
After adding explicit null check:
[000057] *--XG--N---- * IND struct
[000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000934] ------------ | /--* ADD byref
[000932] ------------ | | \--* LCL_VAR byref V00 this
[000935] ---X-------- \--* COMMA byref
[000931] ---X---N---- \--* NULLCHECK byte
[000930] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB08, stmt 66 (after)
[000933] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000934] -----+------ /--* ADD byref
[000932] -----+------ | \--* LCL_VAR byref V00 this
[000935] ---XG+-N---- /--* COMMA byref
[000931] ---X-+-N---- | \--* NULLCHECK byte
[000930] -----+------ | \--* LCL_VAR byref V00 this
[000592] -A-XG+------ * ASG byref
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22
Morphing BB42 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB42, stmt 67 (before)
[000571] ---XG------- * JTRUE void
[000569] ------------ | /--* CNS_INT int 0
[000570] ---XG------- \--* EQ int
[000568] ---XG------- \--* FIELD bool _useBuilder
[000567] ------------ \--* LCL_VAR byref V29 tmp22
fgMorphTree BB42, stmt 67 (after)
[000571] ---XG+------ * JTRUE void
[000569] -----+------ | /--* CNS_INT int 0
[000570] J--XG+-N---- \--* EQ int
[000568] *--XG+------ \--* IND bool
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000938] -----+------ \--* ADD byref
[000567] -----+------ \--* LCL_VAR byref V29 tmp22
Morphing BB43 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB43, stmt 68 (before)
[000586] ---XG------- /--* ADDR byref
[000585] ---XG------- | \--* FIELD struct _methodBuilder
[000584] ------------ | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG------- * ASG byref
[000617] D------N---- \--* LCL_VAR byref V30 tmp23
Before explicit null check morphing:
[000585] ---XG--N---- * FIELD struct _methodBuilder
[000584] ------------ \--* LCL_VAR byref V29 tmp22
After adding explicit null check:
[000585] *--XG--N---- * IND struct
[000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000943] ------------ | /--* ADD byref
[000941] ------------ | | \--* LCL_VAR byref V29 tmp22
[000944] ---X-------- \--* COMMA byref
[000940] ---X---N---- \--* NULLCHECK byte
[000939] ------------ \--* LCL_VAR byref V29 tmp22
fgMorphTree BB43, stmt 68 (after)
[000942] -----+------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000943] -----+------ /--* ADD byref
[000941] -----+------ | \--* LCL_VAR byref V29 tmp22
[000944] ---XG+-N---- /--* COMMA byref
[000940] ---X-+-N---- | \--* NULLCHECK byte
[000939] -----+------ | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG+------ * ASG byref
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23
Morphing BB46 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB46, stmt 69 (before)
[000600] ---XG------- * JTRUE void
[000598] ------------ | /--* CNS_INT ref null
[000599] ---XG------- \--* NE int
[000597] ---XG------- \--* FIELD ref m_task
[000596] ------------ \--* LCL_VAR byref V30 tmp23
fgMorphTree BB46, stmt 69 (after)
[000600] ---XG+------ * JTRUE void
[000598] -----+------ | /--* CNS_INT ref null
[000599] J--XG+-N---- \--* NE int
[000597] *--XG+------ \--* IND ref
[000596] -----+------ \--* LCL_VAR byref V30 tmp23
Morphing BB47 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB84 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB84, stmt 70 (before)
[000624] ------------ /--* CNS_INT int 0
[000626] IA------R--- * ASG struct (init)
[000625] -------N---- \--* BLK(4) struct
[000623] L----------- \--* ADDR byref
[000622] ------------ \--* LCL_VAR int V32 tmp25
fgMorphInitBlock:fgMorphOneAsgBlock (after):
[000624] -----+------ /--* CNS_INT int 0
[000626] -A---------- * ASG int
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25
using oneAsgTree.
GenTreeNode creates assertion:
[000626] -A---------- * ASG int
In BB84 New Local Constant Assertion: V32 == 0 index=#01, mask=0000000000000001
fgMorphTree BB84, stmt 70 (after)
[000624] -----+------ /--* CNS_INT int 0
[000626] -A---+------ * ASG int
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25
fgMorphTree BB84, stmt 71 (before)
[000632] ------------ * NOP void
fgMorphTree BB84, stmt 72 (before)
[000638] ------------ * NOP void
Morphing BB85 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB86 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB87 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB87, stmt 73 (before)
[000609] ------------ /--* LCL_VAR int V02 loc1
[000669] -A---------- * ASG int
[000668] D------N---- \--* LCL_VAR int V34 tmp27
GenTreeNode creates assertion:
[000669] -A---------- * ASG int
In BB87 New Local Copy Assertion: V34 == V02 index=#01, mask=0000000000000001
fgMorphTree BB87, stmt 74 (before)
[000674] ------------ * JTRUE void
[000672] ------------ | /--* CNS_INT int 9
[000673] ------------ \--* GE int
[000671] ------------ \--* LCL_VAR int V34 tmp27
Assertion prop in BB87:
Copy Assertion: V34 == V02 index=#01, mask=0000000000000001
[000671] ------------ * LCL_VAR int V02 loc1
fgMorphTree BB87, stmt 74 (after)
[000674] -----+------ * JTRUE void
[000672] -----+------ | /--* CNS_INT int 9
[000673] J----+-N---- \--* GE int
[000671] -----+------ \--* LCL_VAR int V02 loc1
Morphing BB88 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB88, stmt 75 (before)
[000696] ------------ * JTRUE void
[000694] ------------ | /--* CNS_INT int -1
[000695] ------------ \--* LT int
[000693] ------------ \--* LCL_VAR int V34 tmp27
Morphing BB89 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB89, stmt 76 (before)
[000708] ------------ /--* CNS_INT int -1
[000709] ------------ /--* SUB int
[000707] ------------ | \--* LCL_VAR int V34 tmp27
[000710] R-CXG------- /--* INDEX ref
[000699] ----G------- | | /--* FIELD ref Int32Tasks
[000706] --CXG------- | \--* COMMA ref
[000705] H-CXG------- | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] ------------ arg0 | +--* CNS_INT long 0x7ffc0d5c3020
[000702] ------------ arg1 | \--* CNS_INT int 0x70A
[000712] -ACXG------- * ASG ref
[000711] D------N---- \--* LCL_VAR ref V36 tmp29
lvaGrabTemp returning 53 (V53 tmp46) called for arr expr.
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000701] -----+------ * CNS_INT long 0x7ffc0d5c3020
Replaced with placeholder node:
[000963] ----------L- * ARGPLACE long
Deferred argument ('rdx'):
[000702] -----+------ * CNS_INT int 0x70A
Replaced with placeholder node:
[000965] ----------L- * ARGPLACE int
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 701.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 702.CNS_INT, 1 reg: rdx, align=1, lateArgInx=1, processed]
GenTreeNode creates assertion:
[000953] ---X-------- * ARR_LENGTH int
In BB89 New Local Constant Assertion: V53 != null index=#01, mask=0000000000000001
fgMorphTree BB89, stmt 76 (after)
[000710] a---G+------ /--* IND ref
[000959] -----+------ | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000960] -----+------ | \--* ADD byref
[000956] -----+-N---- | | /--* CNS_INT long 3
[000957] -----+------ | | /--* LSH long
[000955] -----+------ | | | \--* CAST long <- int
[000952] -----+------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000950] -----+------ | | | \--* ADD int
[000951] i----+------ | | | \--* LCL_VAR int V34 tmp27
[000958] -----+------ | \--* ADD byref
[000949] -----+------ | \--* LCL_VAR ref V53 tmp46
[000961] ---XG+------ /--* COMMA ref
[000954] ---X-+------ | \--* ARR_BOUNDS_CHECK_Rng void
[000708] -----+------ | | /--* CNS_INT int 1
[000709] -----+------ | +--* ADD int
[000707] -----+------ | | \--* LCL_VAR int V34 tmp27
[000953] ---X-+------ | \--* ARR_LENGTH int
[000948] -----+------ | \--* LCL_VAR ref V53 tmp46
[000962] -ACXG+------ /--* COMMA ref
[000699] x---G+------ | | /--* IND ref
[000967] -----+------ | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
[000706] --CXG+------ | | /--* COMMA ref
[000705] H-CXG+------ | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] -----+------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] -----+------ arg1 in rdx | | | \--* CNS_INT int 0x70A
[000947] -ACXG+------ | \--* ASG ref
[000946] D----+-N---- | \--* LCL_VAR ref V53 tmp46
[000712] -ACXG+------ * ASG ref
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29
fgMorphTree BB89, stmt 77 (before)
[000714] ------------ /--* LCL_VAR ref V36 tmp29
[000722] -AC--------- * ASG ref
[000721] D------N---- \--* LCL_VAR ref V31 tmp24
GenTreeNode creates assertion:
[000722] -A---------- * ASG ref
In BB89 New Local Copy Assertion: V31 == V36 index=#02, mask=0000000000000002
Morphing BB90 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB90, stmt 78 (before)
[000679] ------------ /--* ALLOCOBJ ref
[000678] ------------ | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -A---------- * ASG ref
[000680] D------N---- \--* LCL_VAR ref V35 tmp28
fgMorphTree BB90, stmt 79 (before)
[000737] ------------ /--* CNS_INT int 0
[000738] IA------R--- * ASG struct (init)
[000735] D------N---- \--* LCL_VAR struct(P) V37 tmp30
\--* ref V37._source (offs=0x00) -> V51 tmp44
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization.
GenTreeNode creates assertion:
[000970] -A---------- * ASG ref
In BB90 New Local Constant Assertion: V51 == null index=#01, mask=0000000000000001
fgMorphInitBlock (after):
[000969] ------------ /--* CNS_INT ref null
[000970] -A---+------ * ASG ref
[000968] D------N---- \--* LCL_VAR ref V51 tmp44
The assignment [000970] using V51 removes: Constant Assertion: V51 == null
GenTreeNode creates assertion:
[000970] -A---+------ * ASG ref
In BB90 New Local Constant Assertion: V51 == null index=#01, mask=0000000000000001
fgMorphTree BB90, stmt 79 (after)
[000969] ------------ /--* CNS_INT ref null
[000970] -A---+------ * ASG ref
[000968] D------N---- \--* LCL_VAR ref V51 tmp44
Morphing BB97 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB97, stmt 80 (before)
[000757] ------------ /--* CNS_INT int 0
[000759] -A---------- * ASG int
[000758] D------N---- \--* LCL_VAR int V38 tmp31
GenTreeNode creates assertion:
[000759] -A---------- * ASG int
In BB97 New Local Constant Assertion: V38 == 0 index=#01, mask=0000000000000001
Morphing BB98 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB98, stmt 81 (before)
[000767] ------------ /--* LCL_VAR int V38 tmp31
[000768] ------------ /--* OR int
[000766] ------------ | \--* CNS_INT int 0x1000000
[000770] -A-XGO------ * ASG int
[000769] V--XGO-N---- \--* FIELD int m_stateFlags
[000765] ------------ \--* LCL_VAR ref V35 tmp28
GenTreeNode creates assertion:
[000769] V--XGO-N---- * IND int
In BB98 New Local Constant Assertion: V35 != null index=#01, mask=0000000000000001
fgMorphTree BB98, stmt 81 (after)
[000766] -----+------ /--* CNS_INT int 0x1000000
[000768] -----+------ /--* OR int
[000767] -----+------ | \--* LCL_VAR int V38 tmp31
[000770] -A-XG+------ * ASG int
[000769] V--XG+-N---- \--* IND int
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000972] -----+------ \--* ADD byref
[000765] -----+------ \--* LCL_VAR ref V35 tmp28
Morphing BB99 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB99, stmt 82 (before)
[000677] ------------ /--* LCL_VAR int V02 loc1
[000750] -A-XG------- * ASG int
[000749] ---XG--N---- \--* FIELD int m_result
[000748] ------------ \--* LCL_VAR ref V35 tmp28
GenTreeNode creates assertion:
[000749] ---XG--N---- * IND int
In BB99 New Local Constant Assertion: V35 != null index=#01, mask=0000000000000001
fgMorphTree BB99, stmt 82 (after)
[000677] -----+------ /--* LCL_VAR int V02 loc1
[000750] -A-XG+------ * ASG int
[000749] ---XG+-N---- \--* IND int
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000974] -----+------ \--* ADD byref
[000748] -----+------ \--* LCL_VAR ref V35 tmp28
fgMorphTree BB99, stmt 83 (before)
[000687] ------------ /--* LCL_VAR ref V35 tmp28
[000689] -A---------- * ASG ref
[000688] D------N---- \--* LCL_VAR ref V31 tmp24
GenTreeNode creates assertion:
[000689] -A---------- * ASG ref
In BB99 New Local Copy Assertion: V31 == V35 index=#02, mask=0000000000000002
Morphing BB91 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB91, stmt 84 (before)
[000725] ------------ /--* CNS_INT ref null
[000727] -A---------- * ASG ref
[000726] D------N---- \--* LCL_VAR ref V36 tmp29
GenTreeNode creates assertion:
[000727] -A---------- * ASG ref
In BB91 New Local Constant Assertion: V36 == null index=#01, mask=0000000000000001
fgMorphTree BB91, stmt 85 (before)
[000724] ------------ /--* LCL_VAR ref V31 tmp24
[000615] -ACXG------- * ASG ref
[000614] ---XG--N---- \--* FIELD ref m_task
[000608] ------------ \--* LCL_VAR byref V30 tmp23
fgMorphTree BB91, stmt 85 (after)
[000724] -----+------ /--* LCL_VAR ref V31 tmp24
[000615] -A-XG+------ * ASG ref
[000614] *--XG+-N---- \--* IND ref
[000608] -----+------ \--* LCL_VAR byref V30 tmp23
Morphing BB48 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB48, stmt 86 (before)
[000604] --C-G------- * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1
Rejecting tail call late for call [000604]: Local address taken
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000603] -----+------ * LCL_VAR byref V30 tmp23
Replaced with placeholder node:
[000975] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
[000587] -----+------ * LCL_VAR int V02 loc1
Replaced with placeholder node:
[000977] ----------L- * ARGPLACE int
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 603.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 587.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgMorphTree BB48, stmt 86 (after)
[000604] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
Morphing BB49 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB44 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB44, stmt 87 (before)
[000059] ------------ /--* LCL_VAR int V02 loc1
[000576] -A-XG------- * ASG int
[000575] ---XG--N---- \--* FIELD int _result
[000574] ------------ \--* LCL_VAR byref V29 tmp22
fgMorphTree BB44, stmt 87 (after)
[000059] -----+------ /--* LCL_VAR int V02 loc1
[000576] -A-XG+------ * ASG int
[000575] *--XG+-N---- \--* IND int
[000574] -----+------ \--* LCL_VAR byref V29 tmp22
fgMorphTree BB44, stmt 88 (before)
[000579] ------------ /--* CNS_INT int 1
[000581] -A-XG------- * ASG bool
[000580] ---XG--N---- \--* FIELD bool _haveResult
[000578] ------------ \--* LCL_VAR byref V29 tmp22
fgMorphTree BB44, stmt 88 (after)
[000579] -----+------ /--* CNS_INT int 1
[000581] -A-XG+------ * ASG bool
[000580] *--XG+-N---- \--* IND bool
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
[000980] -----+------ \--* ADD byref
[000578] -----+------ \--* LCL_VAR byref V29 tmp22
Morphing BB45 of '<ValueTask1>d__1:MoveNext():this'
Morphing BB09 of '<ValueTask1>d__1:MoveNext():this'
fgMorphTree BB09, stmt 89 (before)
[000064] ------------ * RETURN void
Method has EH, marking method as fully interruptible
Renumbering the basic blocks for fgComputePred
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i
BB22 [0021] 1 0 1 [022..023) T0 i gcsafe
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i gcsafe
BB05 [0004] 1 0 1 [04B..067) T0 i
BB06 [0005] 2 0 1 [067..071) T0 i
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i
BB32 [0031] 1 0 1 [067..068) T0 i
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i
BB36 [0035] 1 0 0.50 [067..068) T0 i gcsafe
BB37 [0036] 2 0 1 [067..068) T0 i
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal
BB33 [0032] 1 0 1 [067..068) T0 i gcsafe
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target gcsafe
BB08 [0007] 1 1 [08A..09E) i
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i
BB43 [0042] 1 1 [092..093) i
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i
BB47 [0046] 1 1 [092..093) i
BB84 [0049] 1 1 [092..093) i newobj
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i
BB86 [0055] 1 0.50 [092..093) i
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i
BB89 [0058] 1 1 [092..093)-> BB91 (always) i
BB90 [0082] 5 1 [092..093) i newobj
BB97 [0086] 1 1 [092..093)-> BB98 (always) i
BB98 [0088] 1 1 [092..093) i
BB99 [0089] 1 1 [???..???) internal newobj
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal
BB48 [0047] 1 1 [092..093) i gcsafe
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal
BB44 [0043] 1 1 [092..093) i
BB45 [0044] 1 1 [???..???) internal
BB09 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A)
Renumber BB18 to BB04
Renumber BB19 to BB05
Renumber BB20 to BB06
Renumber BB21 to BB07
Renumber BB22 to BB08
Renumber BB23 to BB09
Renumber BB04 to BB10
Renumber BB05 to BB11
Renumber BB06 to BB12
Renumber BB29 to BB13
Renumber BB30 to BB14
Renumber BB31 to BB15
Renumber BB32 to BB16
Renumber BB35 to BB17
Renumber BB36 to BB18
Renumber BB37 to BB19
Renumber BB38 to BB20
Renumber BB33 to BB21
Renumber BB34 to BB22
Renumber BB07 to BB23
Renumber BB08 to BB24
Renumber BB42 to BB25
Renumber BB43 to BB26
Renumber BB46 to BB27
Renumber BB47 to BB28
Renumber BB84 to BB29
Renumber BB85 to BB30
Renumber BB86 to BB31
Renumber BB87 to BB32
Renumber BB88 to BB33
Renumber BB89 to BB34
Renumber BB90 to BB35
Renumber BB97 to BB36
Renumber BB98 to BB37
Renumber BB99 to BB38
Renumber BB91 to BB39
Renumber BB48 to BB40
Renumber BB49 to BB41
Renumber BB44 to BB42
Renumber BB45 to BB43
Renumber BB09 to BB44
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB04 [0017] 1 0 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 0.50 [022..023)-> BB08 ( cond ) T0 i
BB07 [0020] 1 0 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 1 [022..023) T0 i gcsafe
BB09 [0022] 1 0 1 [???..???)-> BB12 ( cond ) T0 internal
BB10 [0003] 1 0 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 1 [04B..067) T0 i
BB12 [0005] 2 0 1 [067..071) T0 i
BB13 [0028] 1 0 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 0.50 [067..068)-> BB21 ( cond ) T0 i
BB16 [0031] 1 0 1 [067..068) T0 i
BB17 [0034] 1 0 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 1 [067..068) T0 i
BB20 [0037] 1 0 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 1 [067..068) T0 i gcsafe
BB22 [0033] 1 0 1 [???..???)-> BB24 (always) T0 } internal
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 1 [08A..09E) i
BB25 [0041] 1 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 1 [092..093) i
BB27 [0045] 1 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 1 [092..093) i
BB29 [0049] 1 1 [092..093) i newobj
BB30 [0050] 1 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 0.50 [092..093) i
BB32 [0056] 1 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 1 [092..093)-> BB39 (always) i
BB35 [0082] 5 1 [092..093) i newobj
BB36 [0086] 1 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 1 [092..093) i
BB38 [0089] 1 1 [???..???) internal newobj
BB39 [0083] 1 1 [???..???)-> BB41 (always) internal
BB40 [0047] 1 1 [092..093) i gcsafe
BB41 [0048] 1 1 [???..???)-> BB43 (always) internal
BB42 [0043] 1 1 [092..093) i
BB43 [0044] 1 1 [???..???) internal
BB44 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
New BlockSet epoch 2, # of blocks (including unused BB00): 45, bitset array size: 1 (short)
*************** In fgComputePreds()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i
BB02 [0001] 1 0 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..02B) T0 i
BB04 [0017] 1 0 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 0.50 [022..023)-> BB08 ( cond ) T0 i
BB07 [0020] 1 0 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 1 [022..023) T0 i gcsafe
BB09 [0022] 1 0 1 [???..???)-> BB12 ( cond ) T0 internal
BB10 [0003] 1 0 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 1 [04B..067) T0 i
BB12 [0005] 2 0 1 [067..071) T0 i
BB13 [0028] 1 0 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 0.50 [067..068)-> BB21 ( cond ) T0 i
BB16 [0031] 1 0 1 [067..068) T0 i
BB17 [0034] 1 0 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 1 [067..068) T0 i
BB20 [0037] 1 0 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 1 [067..068) T0 i gcsafe
BB22 [0033] 1 0 1 [???..???)-> BB24 (always) T0 } internal
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 1 [08A..09E) i
BB25 [0041] 1 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 1 [092..093) i
BB27 [0045] 1 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 1 [092..093) i
BB29 [0049] 1 1 [092..093) i newobj
BB30 [0050] 1 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 0.50 [092..093) i
BB32 [0056] 1 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 1 [092..093)-> BB39 (always) i
BB35 [0082] 5 1 [092..093) i newobj
BB36 [0086] 1 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 1 [092..093) i
BB38 [0089] 1 1 [???..???) internal newobj
BB39 [0083] 1 1 [???..???)-> BB41 (always) internal
BB40 [0047] 1 1 [092..093) i gcsafe
BB41 [0048] 1 1 [???..???)-> BB43 (always) internal
BB42 [0043] 1 1 [092..093) i
BB43 [0044] 1 1 [???..???) internal
BB44 [0008] 3 1 [09E..09F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** After fgComputePreds()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 1 [092..093) i
BB29 [0049] 1 BB28 1 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgComputeEdgeWeights()
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 1 [092..093) i
BB29 [0049] 1 BB28 1 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() adjusted the weight of some blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 0.50 [092..093) i
BB29 [0049] 1 BB28 0.50 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights
*************** In fgCreateFunclets()
Relocating handler range BB23..BB23 (EH#0) to end of BBlist
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 0.50 [092..093) i
BB29 [0049] 1 BB28 0.50 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
Relocated block [BB23..BB23] inserted after BB44 at the end of method
Create funclets: moved region
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
After fgCreateFunclets()
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 0.50 [092..093) i
BB29 [0049] 1 BB28 0.50 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
*************** In fgDebugCheckBBlist
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068) T0 i
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E) i label target
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i
BB26 [0042] 1 BB25 1 [092..093) i
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB27 0.50 [092..093) i
BB29 [0049] 1 BB28 0.50 [092..093) i newobj
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i
BB31 [0055] 1 BB30 0.50 [092..093) i label target
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i
BB37 [0088] 1 BB36 1 [092..093) i label target
BB38 [0089] 1 BB37 1 [???..???) internal newobj
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target
BB42 [0043] 1 BB25 1 [092..093) i label target
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB03 and BB04:
*************** In fgDebugCheckBBlist
Compacting blocks BB12 and BB13:
*************** In fgDebugCheckBBlist
Compacting blocks BB16 and BB17:
*************** In fgDebugCheckBBlist
Compacting blocks BB19 and BB20:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB22 -> BB24) (converted BB22 to fall-through)
Compacting blocks BB24 and BB25:
*************** In fgDebugCheckBBlist
Compacting blocks BB26 and BB27:
*************** In fgDebugCheckBBlist
Compacting blocks BB28 and BB29:
*************** In fgDebugCheckBBlist
Compacting blocks BB28 and BB30:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB28 -> BB31) (converted BB28 to fall-through)
Compacting blocks BB28 and BB31:
*************** In fgDebugCheckBBlist
Compacting blocks BB28 and BB32:
*************** In fgDebugCheckBBlist
Compacting blocks BB35 and BB36:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB35 -> BB37) (converted BB35 to fall-through)
Compacting blocks BB35 and BB37:
*************** In fgDebugCheckBBlist
Compacting blocks BB35 and BB38:
*************** In fgDebugCheckBBlist
Optimizing a jump to an unconditional jump (BB39 -> BB41 -> BB43)
Compacting blocks BB40 and BB41:
*************** In fgDebugCheckBBlist
Compacting blocks BB43 and BB44:
Second block has multiple incoming edges
*************** In fgDebugCheckBBlist
After updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe
BB42 [0043] 1 BB24 1 [092..093) i label target
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
*************** In fgDebugCheckBBlist
*************** In fgExpandRarelyRunBlocks()
*************** In fgReorderBlocks()
Initial BasicBlocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe
BB42 [0043] 1 BB24 1 [092..093) i label target
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgUpdateFlowGraph()
Before updating the flow graph:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe
BB42 [0043] 1 BB24 1 [092..093) i label target
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeReachability
*************** In fgDebugCheckBBlist
Renumbering the basic blocks for fgComputeReachability pass #1
*************** Before renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe
BB42 [0043] 1 BB24 1 [092..093) i label target
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A)
Renumber BB05 to BB04
Renumber BB06 to BB05
Renumber BB07 to BB06
Renumber BB08 to BB07
Renumber BB09 to BB08
Renumber BB10 to BB09
Renumber BB11 to BB10
Renumber BB12 to BB11
Renumber BB14 to BB12
Renumber BB15 to BB13
Renumber BB16 to BB14
Renumber BB18 to BB15
Renumber BB19 to BB16
Renumber BB21 to BB17
Renumber BB22 to BB18
Renumber BB24 to BB19
Renumber BB26 to BB20
Renumber BB28 to BB21
Renumber BB33 to BB22
Renumber BB34 to BB23
Renumber BB35 to BB24
Renumber BB39 to BB25
Renumber BB40 to BB26
Renumber BB42 to BB27
Renumber BB43 to BB28
Renumber BB23 to BB29
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB18 [007..071), Handler at BB29..BB29 [071..08A)
New BlockSet epoch 3, # of blocks (including unused BB00): 30, bitset array size: 1 (short)
Enter blocks: BB01 BB29
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB02 BB03
BB04 : BB01 BB02 BB03 BB04
BB05 : BB01 BB02 BB03 BB05
BB06 : BB01 BB02 BB03 BB05 BB06
BB07 : BB01 BB02 BB03 BB05 BB07
BB08 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08
BB09 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09
BB10 : BB01 BB02 BB10
BB11 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11
BB12 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12
BB13 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13
BB14 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14
BB15 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14 BB15
BB16 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14 BB15 BB16
BB17 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB17
BB18 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18
BB19 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19
BB20 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20
BB21 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21
BB22 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22
BB23 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23
BB24 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB24
BB25 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23 BB24 BB25
BB26 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB26
BB27 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB27
BB28 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23 BB24 BB25 BB26 BB27 BB28 BB29
BB29 : BB29
After computing reachability:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgComputeDoms
*************** In fgDebugCheckBBlist
Dominator computation start blocks (those blocks with no incoming edges):
BB01 BB29
------------------------------------------------
BBnum Dominated by
------------------------------------------------
BB29: BB29
BB01: BB01
BB02: BB02 BB01
BB03: BB03 BB02 BB01
BB04: BB04 BB03 BB02 BB01
BB05: BB05 BB03 BB02 BB01
BB06: BB06 BB05 BB03 BB02 BB01
BB07: BB07 BB05 BB03 BB02 BB01
BB08: BB08 BB03 BB02 BB01
BB09: BB09 BB08 BB03 BB02 BB01
BB10: BB10 BB02 BB01
BB11: BB11 BB02 BB01
BB12: BB12 BB11 BB02 BB01
BB13: BB13 BB11 BB02 BB01
BB14: BB14 BB13 BB11 BB02 BB01
BB15: BB15 BB14 BB13 BB11 BB02 BB01
BB16: BB16 BB14 BB13 BB11 BB02 BB01
BB17: BB17 BB13 BB11 BB02 BB01
BB18: BB18 BB11 BB02 BB01
BB19: BB19 BB18 BB11 BB02 BB01
BB20: BB20 BB19 BB18 BB11 BB02 BB01
BB21: BB21 BB20 BB19 BB18 BB11 BB02 BB01
BB22: BB22 BB21 BB20 BB19 BB18 BB11 BB02 BB01
BB23: BB23 BB22 BB21 BB20 BB19 BB18 BB11 BB02 BB01
BB24: BB24 BB21 BB20 BB19 BB18 BB11 BB02 BB01
BB25: BB25 BB21 BB20 BB19 BB18 BB11 BB02 BB01
BB26: BB26 BB20 BB19 BB18 BB11 BB02 BB01
BB27: BB27 BB19 BB18 BB11 BB02 BB01
BB28: BB28
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB02
BB02 : BB11 BB10 BB03
BB03 : BB08 BB05 BB04
BB05 : BB07 BB06
BB08 : BB09
BB11 : BB18 BB13 BB12
BB13 : BB17 BB14
BB14 : BB16 BB15
BB18 : BB19
BB19 : BB27 BB20
BB20 : BB26 BB21
BB21 : BB25 BB24 BB22
BB22 : BB23
*************** In Allocate Objects
Trees before Allocate Objects
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
[000005] ------------ * STMT void (IL 0x000...0x006)
[000002] *--XG+------ | /--* IND int
[000001] -----+------ | | \--* LCL_VAR byref V00 this
[000004] -A-XG+------ \--* ASG int
[000003] D----+-N---- \--* LCL_VAR int V01 loc0
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10}
***** BB02, stmt 2
[000013] ------------ * STMT void (IL 0x007...0x008)
[000012] -----+------ \--* JTRUE void
[000010] -----+------ | /--* CNS_INT int 0
[000011] J----+-N---- \--* EQ int
[000009] -----+------ \--* LCL_VAR int V01 loc0
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05}
***** BB03, stmt 3
[000155] ------------ * STMT void (IL 0x00A... ???)
[000787] ------------ | /--* CNS_INT bool 0
[000788] -A---------- | /--* ASG bool
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39
[000789] -A---+------ \--* COMMA void
[000783] ------------ | /--* CNS_INT short 0
[000784] -A---------- | /--* ASG short
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38
[000785] -A---------- \--* COMMA void
[000779] ------------ | /--* CNS_INT int 0
[000780] -A---------- | /--* ASG int
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37
[000781] -A---------- \--* COMMA void
[000776] ------------ | /--* CNS_INT ref null
[000777] -A---------- \--* ASG ref
[000775] D------N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 4
[000172] ------------ * STMT void (IL 0x00A... ???)
[000169] -----+------ | /--* CNS_INT int 1
[000171] -A---+------ \--* ASG int
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37
***** BB03, stmt 5
[000178] ------------ * STMT void (IL 0x00A... ???)
[000175] -----+------ | /--* CNS_INT ref null
[000177] -A---+------ \--* ASG ref
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 6
[000184] ------------ * STMT void (IL 0x00A... ???)
[000181] -----+------ | /--* CNS_INT int 1
[000183] -A---+------ \--* ASG bool
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39
***** BB03, stmt 7
[000190] ------------ * STMT void (IL 0x00A... ???)
[000187] -----+------ | /--* CNS_INT int 0
[000189] -A---+------ \--* ASG short
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38
***** BB03, stmt 8
[000073] ------------ * STMT void (IL ???... ???)
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39
[000803] -A---------- | /--* ASG bool
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35
[000804] -A---+------ \--* COMMA void
[000798] -------N---- | /--* LCL_VAR short V45 tmp38
[000799] -A---------- | /--* ASG short
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34
[000800] -A---------- \--* COMMA void
[000794] -------N---- | /--* LCL_VAR int V44 tmp37
[000795] -A---------- | /--* ASG int
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33
[000796] -A---------- \--* COMMA void
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36
[000792] -A---------- \--* ASG ref
[000790] D------N---- \--* LCL_VAR ref V39 tmp32
***** BB03, stmt 9
[000207] ------------ * STMT void (IL 0x010... ???)
[000817] ------------ | /--* CNS_INT bool 0
[000818] -A---------- | /--* ASG bool
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43
[000819] -A---+------ \--* COMMA void
[000813] ------------ | /--* CNS_INT short 0
[000814] -A---------- | /--* ASG short
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42
[000815] -A---------- \--* COMMA void
[000809] ------------ | /--* CNS_INT int 0
[000810] -A---------- | /--* ASG int
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41
[000811] -A---------- \--* COMMA void
[000806] ------------ | /--* CNS_INT ref null
[000807] -A---------- \--* ASG ref
[000805] D------N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 10
[000261] ------------ * STMT void (IL 0x010... ???)
[000196] -----+------ | /--* CNS_INT ref null
[000260] -A---+------ \--* ASG ref
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6
***** BB03, stmt 11
[000264] ------------ * STMT void (IL 0x010... ???)
[000199] -----+------ | /--* CNS_INT int 1
[000263] -A---+------ \--* ASG int
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7
***** BB03, stmt 12
[000267] ------------ * STMT void (IL 0x010... ???)
[000202] -----+------ | /--* CNS_INT int 0
[000266] -A---+------ \--* ASG short
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8
***** BB03, stmt 13
[000240] ------------ * STMT void (IL 0x010... ???)
[000237] -----+------ | /--* CNS_INT ref null
[000239] -A---+------ \--* ASG ref
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 14
[000246] ------------ * STMT void (IL 0x010... ???)
[000243] -----+------ | /--* CNS_INT int 1
[000245] -A---+------ \--* ASG int
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41
***** BB03, stmt 15
[000252] ------------ * STMT void (IL 0x010... ???)
[000249] -----+------ | /--* LCL_VAR int V15 tmp8
[000251] -A---+------ \--* ASG short
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42
***** BB03, stmt 16
[000258] ------------ * STMT void (IL 0x010... ???)
[000255] -----+------ | /--* CNS_INT int 0
[000257] -A---+------ \--* ASG bool
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43
***** BB03, stmt 17
[000220] ------------ * STMT void (IL 0x010... ???)
[000218] -----+------ | /--* CNS_INT int 0
[000219] IA---+--R--- \--* ASG struct (init)
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5
***** BB03, stmt 18
[000281] ------------ * STMT void (IL 0x010... ???)
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43
[000851] -A---------- | /--* ASG bool
[000849] *------N---- | | \--* IND bool
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
[000848] ------------ | | \--* ADD byref
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45
[000852] -A---+------ \--* COMMA void
[000843] -------N---- | /--* LCL_VAR short V49 tmp42
[000844] -A---------- | /--* ASG short
[000842] *------N---- | | \--* IND short
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
[000841] ------------ | | \--* ADD byref
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45
[000845] -A---------- \--* COMMA void
[000836] -------N---- | /--* LCL_VAR int V48 tmp41
[000837] -A---------- | /--* ASG int
[000835] *------N---- | | \--* IND int
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
[000834] ------------ | | \--* ADD byref
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45
[000838] -A---------- \--* COMMA void
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40
[000830] -A---------- | /--* ASG ref
[000828] *------N---- | | \--* IND ref
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
[000827] ------------ | | \--* ADD byref
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45
[000831] -A---------- \--* COMMA void
[000821] L----------- | /--* ADDR byref
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
[000824] -A---------- \--* ASG byref
[000823] D------N---- \--* LCL_VAR byref V52 tmp45
***** BB03, stmt 19
[000277] ------------ * STMT void (IL 0x010... ???)
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A--G+--R--- \--* ASG struct (copy)
[000275] x----+------ \--* BLK(16) struct
[000274] -----+------ \--* ADDR byref
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
***** BB03, stmt 20
[000084] ------------ * STMT void (IL ???... ???)
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5
[000231] -A---+--R--- \--* ASG struct (copy)
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4
***** BB03, stmt 21
[000290] ------------ * STMT void (IL 0x01A... ???)
[000288] -----+------ | /--* CNS_INT int 0
[000289] IA---+--R--- \--* ASG struct (init)
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10
***** BB03, stmt 22
[000315] ------------ * STMT void (IL 0x01A... ???)
[000295] x---G+------ | /--* IND struct
[000294] -----+------ | | \--* ADDR byref
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
[000314] -A--G+--R--- \--* ASG struct (copy)
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11
***** BB03, stmt 23
[000311] ------------ * STMT void (IL 0x01A... ???)
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11
[000310] -A---+--R--- \--* ASG struct (copy)
[000309] x----+------ \--* BLK(16) struct
[000308] -----+------ \--* ADDR byref
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
***** BB03, stmt 24
[000093] ------------ * STMT void (IL ???... ???)
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10
[000301] -A--G+--R--- \--* ASG struct (copy)
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB03, stmt 25
[000335] ------------ * STMT void (IL 0x022... ???)
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000334] -A--G+------ \--* ASG ref
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13
***** BB03, stmt 26
[000340] ------------ * STMT void (IL 0x022... ???)
[000339] -----+------ \--* JTRUE void
[000337] -----+------ | /--* CNS_INT ref null
[000338] J----+-N---- \--* NE int
[000336] -----+------ \--* LCL_VAR ref V20 tmp13
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08}
***** BB04, stmt 27
[000395] ------------ * STMT void (IL 0x022... ???)
[000391] -----+------ | /--* CNS_INT int 1
[000394] -A---+------ \--* ASG bool
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 28
[000349] ------------ * STMT void (IL 0x022... ???)
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000348] -AC-G+------ \--* ASG ref
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14
***** BB05, stmt 29
[000354] ------------ * STMT void (IL 0x022... ???)
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---+------ \--* ASG ref
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15
***** BB05, stmt 30
[000358] ------------ * STMT void (IL 0x022... ???)
[000357] -----+------ \--* JTRUE void
[000355] -----+------ | /--* CNS_INT ref null
[000356] J----+-N---- \--* EQ int
[000350] -----+------ \--* LCL_VAR ref V21 tmp14
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08}
***** BB06, stmt 31
[000410] ------------ * STMT void (IL 0x022... ???)
[000407] V--XG+-N---- | /--* IND int
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000858] -----+------ | | \--* ADD byref
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XG+------ \--* ASG int
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16
***** BB06, stmt 32
[000388] ------------ * STMT void (IL 0x022... ???)
[000421] -----+------ | /--* CNS_INT int 0
[000422] N----+------ | /--* NE int
[000419] -----+------ | | | /--* CNS_INT int 0x1600000
[000420] -----+------ | | \--* AND int
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16
[000387] -A---+------ \--* ASG bool
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB07 [022..023), preds={BB05} succs={BB08}
***** BB07, stmt 33
[000378] ------------ * STMT void (IL 0x022... ???)
[000374] -----+------ | /--* CNS_INT int 0
[000375] N-CXG+------ | /--* NE int
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
[000377] -ACXG+------ \--* ASG bool
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11}
***** BB08, stmt 34
[000400] ------------ * STMT void (IL 0x022... ???)
[000397] -----+------ | /--* CNS_INT ref null
[000399] -A---+------ \--* ASG ref
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13
***** BB08, stmt 35
[000404] ------------ * STMT void (IL 0x022... ???)
[000401] -----+------ | /--* CNS_INT ref null
[000403] -A---+------ \--* ASG ref
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15
***** BB08, stmt 36
[000102] ------------ * STMT void (IL ???... ???)
[000101] -----+------ \--* JTRUE void
[000099] -----+------ | /--* CNS_INT int 0
[000100] J----+-N---- \--* NE int
[000396] -----+------ \--* LCL_VAR int V19 tmp12
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28}
***** BB09, stmt 37
[000109] ------------ * STMT void (IL 0x02B...0x02E)
[000106] -----+------ | /--* CNS_INT int 0
[000108] -A---+------ \--* ASG int
[000107] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB09, stmt 38
[000112] ------------ * STMT void (IL ???...0x02F)
[000105] -----+------ | /--* CNS_INT int 0
[000111] -A-XG+------ \--* ASG int
[000110] *--XG+-N---- \--* IND int
[000104] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 39
[000119] ------------ * STMT void (IL 0x034...0x036)
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG+--R--- \--* ASG struct (copy)
[000117] ---XG+------ \--* OBJ(16) struct
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000870] -----+------ \--* ADD byref
[000113] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 40
[000443] ------------ * STMT void (IL 0x03B... ???)
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000875] -----+------ | /--* ADD byref
[000873] -----+------ | | \--* LCL_VAR byref V00 this
[000876] ---XG+-N---- | /--* COMMA byref
[000872] ---X-+-N---- | | \--* NULLCHECK byte
[000871] -----+------ | | \--* LCL_VAR byref V00 this
[000442] -A-XG+------ \--* ASG byref
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 41
[000431] ------------ * STMT void (IL 0x03B... ???)
[000428] -----+------ | /--* CNS_INT int 1
[000430] -A-XG+------ \--* ASG bool
[000429] *--XG+-N---- \--* IND bool
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000879] -----+------ \--* ADD byref
[000427] -----+------ \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 42
[000440] ------------ * STMT void (IL 0x03B... ???)
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
( 5, 4) [000884] ------------ | /--* ADD byref
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB10 [04B..067), preds={BB02} succs={BB11}
***** BB10, stmt 43
[000020] ------------ * STMT void (IL 0x04B...0x051)
[000016] *--XG+------ | /--* IND struct
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000894] -----+------ | | \--* ADD byref
[000015] -----+------ | | \--* LCL_VAR byref V00 this
[000019] -A-XG+--R--- \--* ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB10, stmt 44
[000027] ------------ * STMT void (IL 0x052...0x059)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000896] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
***** BB10, stmt 45
[000032] ------------ * STMT void (IL 0x05E...0x061)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1
***** BB10, stmt 46
[000037] ------------ * STMT void (IL ???... ???)
[000034] -----+------ | /--* CNS_INT int -1
[000036] -A---+------ \--* ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB10, stmt 47
[000040] ------------ * STMT void (IL ???...0x062)
[000033] -----+------ | /--* CNS_INT int -1
[000039] -A-XG+------ \--* ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13}
***** BB11, stmt 48
[000462] ------------ * STMT void (IL 0x067... ???)
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000461] -A--G+------ \--* ASG ref
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19
***** BB11, stmt 49
[000467] ------------ * STMT void (IL 0x067... ???)
[000466] -----+------ \--* JTRUE void
[000464] -----+------ | /--* CNS_INT ref null
[000465] J----+-N---- \--* NE int
[000463] -----+------ \--* LCL_VAR ref V26 tmp19
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18}
***** BB12, stmt 50
[000526] ------------ * STMT void (IL 0x067... ???)
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
[000525] -A--G+------ \--* ASG int
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17}
***** BB13, stmt 51
[000476] ------------ * STMT void (IL 0x067... ???)
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000475] -AC-G+------ \--* ASG ref
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20
***** BB13, stmt 52
[000481] ------------ * STMT void (IL 0x067... ???)
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---+------ \--* ASG ref
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21
***** BB13, stmt 53
[000485] ------------ * STMT void (IL 0x067... ???)
[000484] -----+------ \--* JTRUE void
[000482] -----+------ | /--* CNS_INT ref null
[000483] J----+-N---- \--* EQ int
[000477] -----+------ \--* LCL_VAR ref V27 tmp20
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16}
***** BB14, stmt 54
[000544] ------------ * STMT void (IL 0x067... ???)
[000543] ---XG+------ \--* JTRUE void
[000556] -----+------ | /--* CNS_INT int 0x1000000
[000557] J--XG+-N---- \--* EQ int
[000554] -----+------ | /--* CNS_INT int 0x11000000
[000555] ---XG+------ \--* AND int
[000553] V--XG+-N---- \--* IND int
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000904] -----+------ \--* ADD byref
[000506] -----+------ \--* LCL_VAR ref V28 tmp21
------------ BB15 [067..068), preds={BB14} succs={BB16}
***** BB15, stmt 55
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18}
***** BB16, stmt 56
[000516] ------------ * STMT void (IL 0x067... ???)
[000562] ---XG+------ | /--* IND int
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000908] -----+------ | | \--* ADD byref
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21
[000515] -A-XG+------ \--* ASG int
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB17 [067..068), preds={BB13} succs={BB18}
***** BB17, stmt 57
[000503] ------------ * STMT void (IL 0x067... ???)
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
[000502] -ACXG+------ \--* ASG int
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19}
***** BB18, stmt 58
[000531] ------------ * STMT void (IL 0x067... ???)
[000528] -----+------ | /--* CNS_INT ref null
[000530] -A---+------ \--* ASG ref
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19
***** BB18, stmt 59
[000535] ------------ * STMT void (IL 0x067... ???)
[000532] -----+------ | /--* CNS_INT ref null
[000534] -A---+------ \--* ASG ref
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21
***** BB18, stmt 60
[000049] ------------ * STMT void (IL ???... ???)
[000527] -----+------ | /--* LCL_VAR int V25 tmp18
[000048] -A---+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27}
***** BB19, stmt 61
[000055] ------------ * STMT void (IL 0x08A...0x08D)
[000052] -----+------ | /--* CNS_INT int -2
[000054] -A-XG+------ \--* ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
***** BB19, stmt 62
[000593] ------------ * STMT void (IL 0x092... ???)
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000934] -----+------ | /--* ADD byref
[000932] -----+------ | | \--* LCL_VAR byref V00 this
[000935] ---XG+-N---- | /--* COMMA byref
[000931] ---X-+-N---- | | \--* NULLCHECK byte
[000930] -----+------ | | \--* LCL_VAR byref V00 this
[000592] -A-XG+------ \--* ASG byref
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22
***** BB19, stmt 63
[000572] ------------ * STMT void (IL 0x092... ???)
[000571] ---XG+------ \--* JTRUE void
[000569] -----+------ | /--* CNS_INT int 0
[000570] J--XG+-N---- \--* EQ int
[000568] *--XG+------ \--* IND bool
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000938] -----+------ \--* ADD byref
[000567] -----+------ \--* LCL_VAR byref V29 tmp22
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26}
***** BB20, stmt 64
[000619] ------------ * STMT void (IL 0x092... ???)
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000943] -----+------ | /--* ADD byref
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000944] ---XG+-N---- | /--* COMMA byref
[000940] ---X-+-N---- | | \--* NULLCHECK byte
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG+------ \--* ASG byref
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23
***** BB20, stmt 65
[000601] ------------ * STMT void (IL 0x092... ???)
[000600] ---XG+------ \--* JTRUE void
[000598] -----+------ | /--* CNS_INT ref null
[000599] J--XG+-N---- \--* NE int
[000597] *--XG+------ \--* IND ref
[000596] -----+------ \--* LCL_VAR byref V30 tmp23
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24}
***** BB21, stmt 66
[000627] ------------ * STMT void (IL 0x092... ???)
[000624] -----+------ | /--* CNS_INT int 0
[000626] -A---+------ \--* ASG int
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25
***** BB21, stmt 67
[000670] ------------ * STMT void (IL 0x092... ???)
[000609] -----+------ | /--* LCL_VAR int V02 loc1
[000669] -A---+------ \--* ASG int
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27
***** BB21, stmt 68
[000675] ------------ * STMT void (IL 0x092... ???)
[000674] -----+------ \--* JTRUE void
[000672] -----+------ | /--* CNS_INT int 9
[000673] J----+-N---- \--* GE int
[000671] -----+------ \--* LCL_VAR int V02 loc1
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24}
***** BB22, stmt 69
[000697] ------------ * STMT void (IL 0x092... ???)
[000696] -----+------ \--* JTRUE void
[000694] -----+------ | /--* CNS_INT int -1
[000695] J----+-N---- \--* LT int
[000693] -----+------ \--* LCL_VAR int V34 tmp27
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25}
***** BB23, stmt 70
[000713] ------------ * STMT void (IL 0x092... ???)
[000710] a---G+------ | /--* IND ref
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000960] -----+------ | | \--* ADD byref
[000956] -----+-N---- | | | /--* CNS_INT long 3
[000957] -----+------ | | | /--* LSH long
[000955] -----+------ | | | | \--* CAST long <- int
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000950] -----+------ | | | | \--* ADD int
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27
[000958] -----+------ | | \--* ADD byref
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000961] ---XG+------ | /--* COMMA ref
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000708] -----+------ | | | /--* CNS_INT int 1
[000709] -----+------ | | +--* ADD int
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27
[000953] ---X-+------ | | \--* ARR_LENGTH int
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000962] -ACXG+------ | /--* COMMA ref
[000699] x---G+------ | | | /--* IND ref
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
[000706] --CXG+------ | | | /--* COMMA ref
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000947] -ACXG+------ | | \--* ASG ref
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46
[000712] -ACXG+------ \--* ASG ref
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29
***** BB23, stmt 71
[000723] ------------ * STMT void (IL 0x092... ???)
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29
[000722] -A---+------ \--* ASG ref
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25}
***** BB24, stmt 72
[000682] ------------ * STMT void (IL 0x092... ???)
[000679] -----+------ | /--* ALLOCOBJ ref
[000678] -----+------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -A---+------ \--* ASG ref
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 73
[000739] ------------ * STMT void (IL 0x092... ???)
[000969] ------------ | /--* CNS_INT ref null
[000970] -A---+------ \--* ASG ref
[000968] D------N---- \--* LCL_VAR ref V51 tmp44
***** BB24, stmt 74
[000760] ------------ * STMT void (IL 0x092... ???)
[000757] -----+------ | /--* CNS_INT int 0
[000759] -A---+------ \--* ASG int
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31
***** BB24, stmt 75
[000771] ------------ * STMT void (IL 0x092... ???)
[000766] -----+------ | /--* CNS_INT int 0x1000000
[000768] -----+------ | /--* OR int
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31
[000770] -A-XG+------ \--* ASG int
[000769] V--XG+-N---- \--* IND int
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000972] -----+------ \--* ADD byref
[000765] -----+------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 76
[000751] ------------ * STMT void (IL 0x092... ???)
[000677] -----+------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG+------ \--* ASG int
[000749] ---XG+-N---- \--* IND int
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000974] -----+------ \--* ADD byref
[000748] -----+------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 77
[000690] ------------ * STMT void (IL 0x092... ???)
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---+------ \--* ASG ref
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28}
***** BB25, stmt 78
[000728] ------------ * STMT void (IL 0x092... ???)
[000725] -----+------ | /--* CNS_INT ref null
[000727] -A---+------ \--* ASG ref
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29
***** BB25, stmt 79
[000616] ------------ * STMT void (IL 0x092... ???)
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24
[000615] -A-XG+------ \--* ASG ref
[000614] *--XG+-N---- \--* IND ref
[000608] -----+------ \--* LCL_VAR byref V30 tmp23
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28}
***** BB26, stmt 80
[000606] ------------ * STMT void (IL 0x092... ???)
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB27 [092..093), preds={BB19} succs={BB28}
***** BB27, stmt 81
[000577] ------------ * STMT void (IL 0x092... ???)
[000059] -----+------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG+------ \--* ASG int
[000575] *--XG+-N---- \--* IND int
[000574] -----+------ \--* LCL_VAR byref V29 tmp22
***** BB27, stmt 82
[000582] ------------ * STMT void (IL 0x092... ???)
[000579] -----+------ | /--* CNS_INT int 1
[000581] -A-XG+------ \--* ASG bool
[000580] *--XG+-N---- \--* IND bool
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
[000980] -----+------ \--* ADD byref
[000578] -----+------ \--* LCL_VAR byref V29 tmp22
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={}
***** BB28, stmt 83
[000065] ------------ * STMT void (IL 0x09E...0x09E)
[000064] -----+------ \--* RETURN void
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28}
***** BB29, stmt 84
[000133] ------------ * STMT void (IL 0x071...0x071)
[000007] -----+------ | /--* CATCH_ARG ref
[000132] -A---+------ \--* ASG ref
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2
***** BB29, stmt 85
[000137] ------------ * STMT void (IL ???... ???)
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2
[000136] -A---+------ \--* ASG ref
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5
***** BB29, stmt 86
[000142] ------------ * STMT void (IL 0x073...0x076)
[000139] -----+------ | /--* CNS_INT int -2
[000141] -A-XG+------ \--* ASG int
[000140] *--XG+-N---- \--* IND int
[000138] -----+------ \--* LCL_VAR byref V00 this
***** BB29, stmt 87
[000149] ------------ * STMT void (IL 0x07B...0x088)
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] -----+------ | /--* ADD byref
[000921] -----+------ | | \--* LCL_VAR byref V00 this
[000924] ---XG+-N---- this in rcx +--* COMMA byref
[000920] ---X-+-N---- | \--* NULLCHECK byte
[000919] -----+------ | \--* LCL_VAR byref V00 this
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2
-------------------------------------------------------------------------------------------------------------------
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000678] -----+------ * CNS_INT(h) long 0x7ffc6b4afbd8 token
Replaced with placeholder node:
[000982] ----------L- * ARGPLACE long
Shuffled argument table: rcx
fgArgTabEntry[arg 0 678.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed]
*************** Exiting Allocate Objects
Trees after Allocate Objects
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
[000005] ------------ * STMT void (IL 0x000...0x006)
[000002] *--XG+------ | /--* IND int
[000001] -----+------ | | \--* LCL_VAR byref V00 this
[000004] -A-XG+------ \--* ASG int
[000003] D----+-N---- \--* LCL_VAR int V01 loc0
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10}
***** BB02, stmt 2
[000013] ------------ * STMT void (IL 0x007...0x008)
[000012] -----+------ \--* JTRUE void
[000010] -----+------ | /--* CNS_INT int 0
[000011] J----+-N---- \--* EQ int
[000009] -----+------ \--* LCL_VAR int V01 loc0
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05}
***** BB03, stmt 3
[000155] ------------ * STMT void (IL 0x00A... ???)
[000787] ------------ | /--* CNS_INT bool 0
[000788] -A---------- | /--* ASG bool
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39
[000789] -A---+------ \--* COMMA void
[000783] ------------ | /--* CNS_INT short 0
[000784] -A---------- | /--* ASG short
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38
[000785] -A---------- \--* COMMA void
[000779] ------------ | /--* CNS_INT int 0
[000780] -A---------- | /--* ASG int
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37
[000781] -A---------- \--* COMMA void
[000776] ------------ | /--* CNS_INT ref null
[000777] -A---------- \--* ASG ref
[000775] D------N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 4
[000172] ------------ * STMT void (IL 0x00A... ???)
[000169] -----+------ | /--* CNS_INT int 1
[000171] -A---+------ \--* ASG int
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37
***** BB03, stmt 5
[000178] ------------ * STMT void (IL 0x00A... ???)
[000175] -----+------ | /--* CNS_INT ref null
[000177] -A---+------ \--* ASG ref
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 6
[000184] ------------ * STMT void (IL 0x00A... ???)
[000181] -----+------ | /--* CNS_INT int 1
[000183] -A---+------ \--* ASG bool
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39
***** BB03, stmt 7
[000190] ------------ * STMT void (IL 0x00A... ???)
[000187] -----+------ | /--* CNS_INT int 0
[000189] -A---+------ \--* ASG short
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38
***** BB03, stmt 8
[000073] ------------ * STMT void (IL ???... ???)
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39
[000803] -A---------- | /--* ASG bool
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35
[000804] -A---+------ \--* COMMA void
[000798] -------N---- | /--* LCL_VAR short V45 tmp38
[000799] -A---------- | /--* ASG short
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34
[000800] -A---------- \--* COMMA void
[000794] -------N---- | /--* LCL_VAR int V44 tmp37
[000795] -A---------- | /--* ASG int
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33
[000796] -A---------- \--* COMMA void
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36
[000792] -A---------- \--* ASG ref
[000790] D------N---- \--* LCL_VAR ref V39 tmp32
***** BB03, stmt 9
[000207] ------------ * STMT void (IL 0x010... ???)
[000817] ------------ | /--* CNS_INT bool 0
[000818] -A---------- | /--* ASG bool
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43
[000819] -A---+------ \--* COMMA void
[000813] ------------ | /--* CNS_INT short 0
[000814] -A---------- | /--* ASG short
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42
[000815] -A---------- \--* COMMA void
[000809] ------------ | /--* CNS_INT int 0
[000810] -A---------- | /--* ASG int
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41
[000811] -A---------- \--* COMMA void
[000806] ------------ | /--* CNS_INT ref null
[000807] -A---------- \--* ASG ref
[000805] D------N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 10
[000261] ------------ * STMT void (IL 0x010... ???)
[000196] -----+------ | /--* CNS_INT ref null
[000260] -A---+------ \--* ASG ref
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6
***** BB03, stmt 11
[000264] ------------ * STMT void (IL 0x010... ???)
[000199] -----+------ | /--* CNS_INT int 1
[000263] -A---+------ \--* ASG int
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7
***** BB03, stmt 12
[000267] ------------ * STMT void (IL 0x010... ???)
[000202] -----+------ | /--* CNS_INT int 0
[000266] -A---+------ \--* ASG short
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8
***** BB03, stmt 13
[000240] ------------ * STMT void (IL 0x010... ???)
[000237] -----+------ | /--* CNS_INT ref null
[000239] -A---+------ \--* ASG ref
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 14
[000246] ------------ * STMT void (IL 0x010... ???)
[000243] -----+------ | /--* CNS_INT int 1
[000245] -A---+------ \--* ASG int
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41
***** BB03, stmt 15
[000252] ------------ * STMT void (IL 0x010... ???)
[000249] -----+------ | /--* LCL_VAR int V15 tmp8
[000251] -A---+------ \--* ASG short
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42
***** BB03, stmt 16
[000258] ------------ * STMT void (IL 0x010... ???)
[000255] -----+------ | /--* CNS_INT int 0
[000257] -A---+------ \--* ASG bool
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43
***** BB03, stmt 17
[000220] ------------ * STMT void (IL 0x010... ???)
[000218] -----+------ | /--* CNS_INT int 0
[000219] IA---+--R--- \--* ASG struct (init)
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5
***** BB03, stmt 18
[000281] ------------ * STMT void (IL 0x010... ???)
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43
[000851] -A---------- | /--* ASG bool
[000849] *------N---- | | \--* IND bool
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
[000848] ------------ | | \--* ADD byref
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45
[000852] -A---+------ \--* COMMA void
[000843] -------N---- | /--* LCL_VAR short V49 tmp42
[000844] -A---------- | /--* ASG short
[000842] *------N---- | | \--* IND short
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
[000841] ------------ | | \--* ADD byref
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45
[000845] -A---------- \--* COMMA void
[000836] -------N---- | /--* LCL_VAR int V48 tmp41
[000837] -A---------- | /--* ASG int
[000835] *------N---- | | \--* IND int
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
[000834] ------------ | | \--* ADD byref
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45
[000838] -A---------- \--* COMMA void
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40
[000830] -A---------- | /--* ASG ref
[000828] *------N---- | | \--* IND ref
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
[000827] ------------ | | \--* ADD byref
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45
[000831] -A---------- \--* COMMA void
[000821] L----------- | /--* ADDR byref
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
[000824] -A---------- \--* ASG byref
[000823] D------N---- \--* LCL_VAR byref V52 tmp45
***** BB03, stmt 19
[000277] ------------ * STMT void (IL 0x010... ???)
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A--G+--R--- \--* ASG struct (copy)
[000275] x----+------ \--* BLK(16) struct
[000274] -----+------ \--* ADDR byref
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
***** BB03, stmt 20
[000084] ------------ * STMT void (IL ???... ???)
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5
[000231] -A---+--R--- \--* ASG struct (copy)
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4
***** BB03, stmt 21
[000290] ------------ * STMT void (IL 0x01A... ???)
[000288] -----+------ | /--* CNS_INT int 0
[000289] IA---+--R--- \--* ASG struct (init)
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10
***** BB03, stmt 22
[000315] ------------ * STMT void (IL 0x01A... ???)
[000295] x---G+------ | /--* IND struct
[000294] -----+------ | | \--* ADDR byref
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
[000314] -A--G+--R--- \--* ASG struct (copy)
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11
***** BB03, stmt 23
[000311] ------------ * STMT void (IL 0x01A... ???)
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11
[000310] -A---+--R--- \--* ASG struct (copy)
[000309] x----+------ \--* BLK(16) struct
[000308] -----+------ \--* ADDR byref
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
***** BB03, stmt 24
[000093] ------------ * STMT void (IL ???... ???)
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10
[000301] -A--G+--R--- \--* ASG struct (copy)
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB03, stmt 25
[000335] ------------ * STMT void (IL 0x022... ???)
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000334] -A--G+------ \--* ASG ref
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13
***** BB03, stmt 26
[000340] ------------ * STMT void (IL 0x022... ???)
[000339] -----+------ \--* JTRUE void
[000337] -----+------ | /--* CNS_INT ref null
[000338] J----+-N---- \--* NE int
[000336] -----+------ \--* LCL_VAR ref V20 tmp13
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08}
***** BB04, stmt 27
[000395] ------------ * STMT void (IL 0x022... ???)
[000391] -----+------ | /--* CNS_INT int 1
[000394] -A---+------ \--* ASG bool
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 28
[000349] ------------ * STMT void (IL 0x022... ???)
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000348] -AC-G+------ \--* ASG ref
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14
***** BB05, stmt 29
[000354] ------------ * STMT void (IL 0x022... ???)
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---+------ \--* ASG ref
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15
***** BB05, stmt 30
[000358] ------------ * STMT void (IL 0x022... ???)
[000357] -----+------ \--* JTRUE void
[000355] -----+------ | /--* CNS_INT ref null
[000356] J----+-N---- \--* EQ int
[000350] -----+------ \--* LCL_VAR ref V21 tmp14
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08}
***** BB06, stmt 31
[000410] ------------ * STMT void (IL 0x022... ???)
[000407] V--XG+-N---- | /--* IND int
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000858] -----+------ | | \--* ADD byref
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XG+------ \--* ASG int
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16
***** BB06, stmt 32
[000388] ------------ * STMT void (IL 0x022... ???)
[000421] -----+------ | /--* CNS_INT int 0
[000422] N----+------ | /--* NE int
[000419] -----+------ | | | /--* CNS_INT int 0x1600000
[000420] -----+------ | | \--* AND int
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16
[000387] -A---+------ \--* ASG bool
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB07 [022..023), preds={BB05} succs={BB08}
***** BB07, stmt 33
[000378] ------------ * STMT void (IL 0x022... ???)
[000374] -----+------ | /--* CNS_INT int 0
[000375] N-CXG+------ | /--* NE int
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
[000377] -ACXG+------ \--* ASG bool
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11}
***** BB08, stmt 34
[000400] ------------ * STMT void (IL 0x022... ???)
[000397] -----+------ | /--* CNS_INT ref null
[000399] -A---+------ \--* ASG ref
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13
***** BB08, stmt 35
[000404] ------------ * STMT void (IL 0x022... ???)
[000401] -----+------ | /--* CNS_INT ref null
[000403] -A---+------ \--* ASG ref
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15
***** BB08, stmt 36
[000102] ------------ * STMT void (IL ???... ???)
[000101] -----+------ \--* JTRUE void
[000099] -----+------ | /--* CNS_INT int 0
[000100] J----+-N---- \--* NE int
[000396] -----+------ \--* LCL_VAR int V19 tmp12
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28}
***** BB09, stmt 37
[000109] ------------ * STMT void (IL 0x02B...0x02E)
[000106] -----+------ | /--* CNS_INT int 0
[000108] -A---+------ \--* ASG int
[000107] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB09, stmt 38
[000112] ------------ * STMT void (IL ???...0x02F)
[000105] -----+------ | /--* CNS_INT int 0
[000111] -A-XG+------ \--* ASG int
[000110] *--XG+-N---- \--* IND int
[000104] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 39
[000119] ------------ * STMT void (IL 0x034...0x036)
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG+--R--- \--* ASG struct (copy)
[000117] ---XG+------ \--* OBJ(16) struct
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000870] -----+------ \--* ADD byref
[000113] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 40
[000443] ------------ * STMT void (IL 0x03B... ???)
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000875] -----+------ | /--* ADD byref
[000873] -----+------ | | \--* LCL_VAR byref V00 this
[000876] ---XG+-N---- | /--* COMMA byref
[000872] ---X-+-N---- | | \--* NULLCHECK byte
[000871] -----+------ | | \--* LCL_VAR byref V00 this
[000442] -A-XG+------ \--* ASG byref
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 41
[000431] ------------ * STMT void (IL 0x03B... ???)
[000428] -----+------ | /--* CNS_INT int 1
[000430] -A-XG+------ \--* ASG bool
[000429] *--XG+-N---- \--* IND bool
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000879] -----+------ \--* ADD byref
[000427] -----+------ \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 42
[000440] ------------ * STMT void (IL 0x03B... ???)
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
( 5, 4) [000884] ------------ | /--* ADD byref
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB10 [04B..067), preds={BB02} succs={BB11}
***** BB10, stmt 43
[000020] ------------ * STMT void (IL 0x04B...0x051)
[000016] *--XG+------ | /--* IND struct
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000894] -----+------ | | \--* ADD byref
[000015] -----+------ | | \--* LCL_VAR byref V00 this
[000019] -A-XG+--R--- \--* ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB10, stmt 44
[000027] ------------ * STMT void (IL 0x052...0x059)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000896] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
***** BB10, stmt 45
[000032] ------------ * STMT void (IL 0x05E...0x061)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1
***** BB10, stmt 46
[000037] ------------ * STMT void (IL ???... ???)
[000034] -----+------ | /--* CNS_INT int -1
[000036] -A---+------ \--* ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB10, stmt 47
[000040] ------------ * STMT void (IL ???...0x062)
[000033] -----+------ | /--* CNS_INT int -1
[000039] -A-XG+------ \--* ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13}
***** BB11, stmt 48
[000462] ------------ * STMT void (IL 0x067... ???)
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000461] -A--G+------ \--* ASG ref
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19
***** BB11, stmt 49
[000467] ------------ * STMT void (IL 0x067... ???)
[000466] -----+------ \--* JTRUE void
[000464] -----+------ | /--* CNS_INT ref null
[000465] J----+-N---- \--* NE int
[000463] -----+------ \--* LCL_VAR ref V26 tmp19
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18}
***** BB12, stmt 50
[000526] ------------ * STMT void (IL 0x067... ???)
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
[000525] -A--G+------ \--* ASG int
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17}
***** BB13, stmt 51
[000476] ------------ * STMT void (IL 0x067... ???)
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000475] -AC-G+------ \--* ASG ref
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20
***** BB13, stmt 52
[000481] ------------ * STMT void (IL 0x067... ???)
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---+------ \--* ASG ref
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21
***** BB13, stmt 53
[000485] ------------ * STMT void (IL 0x067... ???)
[000484] -----+------ \--* JTRUE void
[000482] -----+------ | /--* CNS_INT ref null
[000483] J----+-N---- \--* EQ int
[000477] -----+------ \--* LCL_VAR ref V27 tmp20
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16}
***** BB14, stmt 54
[000544] ------------ * STMT void (IL 0x067... ???)
[000543] ---XG+------ \--* JTRUE void
[000556] -----+------ | /--* CNS_INT int 0x1000000
[000557] J--XG+-N---- \--* EQ int
[000554] -----+------ | /--* CNS_INT int 0x11000000
[000555] ---XG+------ \--* AND int
[000553] V--XG+-N---- \--* IND int
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000904] -----+------ \--* ADD byref
[000506] -----+------ \--* LCL_VAR ref V28 tmp21
------------ BB15 [067..068), preds={BB14} succs={BB16}
***** BB15, stmt 55
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18}
***** BB16, stmt 56
[000516] ------------ * STMT void (IL 0x067... ???)
[000562] ---XG+------ | /--* IND int
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000908] -----+------ | | \--* ADD byref
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21
[000515] -A-XG+------ \--* ASG int
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB17 [067..068), preds={BB13} succs={BB18}
***** BB17, stmt 57
[000503] ------------ * STMT void (IL 0x067... ???)
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
[000502] -ACXG+------ \--* ASG int
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19}
***** BB18, stmt 58
[000531] ------------ * STMT void (IL 0x067... ???)
[000528] -----+------ | /--* CNS_INT ref null
[000530] -A---+------ \--* ASG ref
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19
***** BB18, stmt 59
[000535] ------------ * STMT void (IL 0x067... ???)
[000532] -----+------ | /--* CNS_INT ref null
[000534] -A---+------ \--* ASG ref
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21
***** BB18, stmt 60
[000049] ------------ * STMT void (IL ???... ???)
[000527] -----+------ | /--* LCL_VAR int V25 tmp18
[000048] -A---+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27}
***** BB19, stmt 61
[000055] ------------ * STMT void (IL 0x08A...0x08D)
[000052] -----+------ | /--* CNS_INT int -2
[000054] -A-XG+------ \--* ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
***** BB19, stmt 62
[000593] ------------ * STMT void (IL 0x092... ???)
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000934] -----+------ | /--* ADD byref
[000932] -----+------ | | \--* LCL_VAR byref V00 this
[000935] ---XG+-N---- | /--* COMMA byref
[000931] ---X-+-N---- | | \--* NULLCHECK byte
[000930] -----+------ | | \--* LCL_VAR byref V00 this
[000592] -A-XG+------ \--* ASG byref
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22
***** BB19, stmt 63
[000572] ------------ * STMT void (IL 0x092... ???)
[000571] ---XG+------ \--* JTRUE void
[000569] -----+------ | /--* CNS_INT int 0
[000570] J--XG+-N---- \--* EQ int
[000568] *--XG+------ \--* IND bool
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000938] -----+------ \--* ADD byref
[000567] -----+------ \--* LCL_VAR byref V29 tmp22
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26}
***** BB20, stmt 64
[000619] ------------ * STMT void (IL 0x092... ???)
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000943] -----+------ | /--* ADD byref
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000944] ---XG+-N---- | /--* COMMA byref
[000940] ---X-+-N---- | | \--* NULLCHECK byte
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG+------ \--* ASG byref
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23
***** BB20, stmt 65
[000601] ------------ * STMT void (IL 0x092... ???)
[000600] ---XG+------ \--* JTRUE void
[000598] -----+------ | /--* CNS_INT ref null
[000599] J--XG+-N---- \--* NE int
[000597] *--XG+------ \--* IND ref
[000596] -----+------ \--* LCL_VAR byref V30 tmp23
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24}
***** BB21, stmt 66
[000627] ------------ * STMT void (IL 0x092... ???)
[000624] -----+------ | /--* CNS_INT int 0
[000626] -A---+------ \--* ASG int
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25
***** BB21, stmt 67
[000670] ------------ * STMT void (IL 0x092... ???)
[000609] -----+------ | /--* LCL_VAR int V02 loc1
[000669] -A---+------ \--* ASG int
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27
***** BB21, stmt 68
[000675] ------------ * STMT void (IL 0x092... ???)
[000674] -----+------ \--* JTRUE void
[000672] -----+------ | /--* CNS_INT int 9
[000673] J----+-N---- \--* GE int
[000671] -----+------ \--* LCL_VAR int V02 loc1
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24}
***** BB22, stmt 69
[000697] ------------ * STMT void (IL 0x092... ???)
[000696] -----+------ \--* JTRUE void
[000694] -----+------ | /--* CNS_INT int -1
[000695] J----+-N---- \--* LT int
[000693] -----+------ \--* LCL_VAR int V34 tmp27
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25}
***** BB23, stmt 70
[000713] ------------ * STMT void (IL 0x092... ???)
[000710] a---G+------ | /--* IND ref
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000960] -----+------ | | \--* ADD byref
[000956] -----+-N---- | | | /--* CNS_INT long 3
[000957] -----+------ | | | /--* LSH long
[000955] -----+------ | | | | \--* CAST long <- int
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000950] -----+------ | | | | \--* ADD int
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27
[000958] -----+------ | | \--* ADD byref
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000961] ---XG+------ | /--* COMMA ref
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000708] -----+------ | | | /--* CNS_INT int 1
[000709] -----+------ | | +--* ADD int
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27
[000953] ---X-+------ | | \--* ARR_LENGTH int
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000962] -ACXG+------ | /--* COMMA ref
[000699] x---G+------ | | | /--* IND ref
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
[000706] --CXG+------ | | | /--* COMMA ref
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000947] -ACXG+------ | | \--* ASG ref
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46
[000712] -ACXG+------ \--* ASG ref
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29
***** BB23, stmt 71
[000723] ------------ * STMT void (IL 0x092... ???)
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29
[000722] -A---+------ \--* ASG ref
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25}
***** BB24, stmt 72
[000682] ------------ * STMT void (IL 0x092... ???)
[000679] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000678] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -AC--+------ \--* ASG ref
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 73
[000739] ------------ * STMT void (IL 0x092... ???)
[000969] ------------ | /--* CNS_INT ref null
[000970] -A---+------ \--* ASG ref
[000968] D------N---- \--* LCL_VAR ref V51 tmp44
***** BB24, stmt 74
[000760] ------------ * STMT void (IL 0x092... ???)
[000757] -----+------ | /--* CNS_INT int 0
[000759] -A---+------ \--* ASG int
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31
***** BB24, stmt 75
[000771] ------------ * STMT void (IL 0x092... ???)
[000766] -----+------ | /--* CNS_INT int 0x1000000
[000768] -----+------ | /--* OR int
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31
[000770] -A-XG+------ \--* ASG int
[000769] V--XG+-N---- \--* IND int
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000972] -----+------ \--* ADD byref
[000765] -----+------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 76
[000751] ------------ * STMT void (IL 0x092... ???)
[000677] -----+------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG+------ \--* ASG int
[000749] ---XG+-N---- \--* IND int
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000974] -----+------ \--* ADD byref
[000748] -----+------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 77
[000690] ------------ * STMT void (IL 0x092... ???)
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---+------ \--* ASG ref
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28}
***** BB25, stmt 78
[000728] ------------ * STMT void (IL 0x092... ???)
[000725] -----+------ | /--* CNS_INT ref null
[000727] -A---+------ \--* ASG ref
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29
***** BB25, stmt 79
[000616] ------------ * STMT void (IL 0x092... ???)
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24
[000615] -A-XG+------ \--* ASG ref
[000614] *--XG+-N---- \--* IND ref
[000608] -----+------ \--* LCL_VAR byref V30 tmp23
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28}
***** BB26, stmt 80
[000606] ------------ * STMT void (IL 0x092... ???)
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB27 [092..093), preds={BB19} succs={BB28}
***** BB27, stmt 81
[000577] ------------ * STMT void (IL 0x092... ???)
[000059] -----+------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG+------ \--* ASG int
[000575] *--XG+-N---- \--* IND int
[000574] -----+------ \--* LCL_VAR byref V29 tmp22
***** BB27, stmt 82
[000582] ------------ * STMT void (IL 0x092... ???)
[000579] -----+------ | /--* CNS_INT int 1
[000581] -A-XG+------ \--* ASG bool
[000580] *--XG+-N---- \--* IND bool
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
[000980] -----+------ \--* ADD byref
[000578] -----+------ \--* LCL_VAR byref V29 tmp22
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={}
***** BB28, stmt 83
[000065] ------------ * STMT void (IL 0x09E...0x09E)
[000064] -----+------ \--* RETURN void
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28}
***** BB29, stmt 84
[000133] ------------ * STMT void (IL 0x071...0x071)
[000007] -----+------ | /--* CATCH_ARG ref
[000132] -A---+------ \--* ASG ref
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2
***** BB29, stmt 85
[000137] ------------ * STMT void (IL ???... ???)
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2
[000136] -A---+------ \--* ASG ref
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5
***** BB29, stmt 86
[000142] ------------ * STMT void (IL 0x073...0x076)
[000139] -----+------ | /--* CNS_INT int -2
[000141] -A-XG+------ \--* ASG int
[000140] *--XG+-N---- \--* IND int
[000138] -----+------ \--* LCL_VAR byref V00 this
***** BB29, stmt 87
[000149] ------------ * STMT void (IL 0x07B...0x088)
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] -----+------ | /--* ADD byref
[000921] -----+------ | | \--* LCL_VAR byref V00 this
[000924] ---XG+-N---- this in rcx +--* COMMA byref
[000920] ---X-+-N---- | \--* NULLCHECK byte
[000919] -----+------ | \--* LCL_VAR byref V00 this
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optOptimizeLoops()
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
lvaGrabTemp returning 54 (V54 tmp47) (a long lifetime temp) called for PSPSym.
Local V54 should not be enregistered because: it is address exposed
*** marking local variables in block BB01 (weight=1 )
[000005] ------------ * STMT void (IL 0x000...0x006)
[000002] *--XG+------ | /--* IND int
[000001] -----+------ | | \--* LCL_VAR byref V00 this
[000004] -A-XG+------ \--* ASG int
[000003] D----+-N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 1, refCntWtd = 1
New refCnts for V00: refCnt = 1, refCntWtd = 1
*** marking local variables in block BB02 (weight=1 )
[000013] ------------ * STMT void (IL 0x007...0x008)
[000012] -----+------ \--* JTRUE void
[000010] -----+------ | /--* CNS_INT int 0
[000011] J----+-N---- \--* EQ int
[000009] -----+------ \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB03 (weight=1 )
[000155] ------------ * STMT void (IL 0x00A... ???)
[000787] ------------ | /--* CNS_INT bool 0
[000788] -A---------- | /--* ASG bool
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39
[000789] -A---+------ \--* COMMA void
[000783] ------------ | /--* CNS_INT short 0
[000784] -A---------- | /--* ASG short
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38
[000785] -A---------- \--* COMMA void
[000779] ------------ | /--* CNS_INT int 0
[000780] -A---------- | /--* ASG int
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37
[000781] -A---------- \--* COMMA void
[000776] ------------ | /--* CNS_INT ref null
[000777] -A---------- \--* ASG ref
[000775] D------N---- \--* LCL_VAR ref V43 tmp36
New refCnts for V43: refCnt = 1, refCntWtd = 1
New refCnts for V44: refCnt = 1, refCntWtd = 1
New refCnts for V45: refCnt = 1, refCntWtd = 1
New refCnts for V46: refCnt = 1, refCntWtd = 1
[000172] ------------ * STMT void (IL 0x00A... ???)
[000169] -----+------ | /--* CNS_INT int 1
[000171] -A---+------ \--* ASG int
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37
New refCnts for V44: refCnt = 2, refCntWtd = 2
[000178] ------------ * STMT void (IL 0x00A... ???)
[000175] -----+------ | /--* CNS_INT ref null
[000177] -A---+------ \--* ASG ref
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36
New refCnts for V43: refCnt = 2, refCntWtd = 2
[000184] ------------ * STMT void (IL 0x00A... ???)
[000181] -----+------ | /--* CNS_INT int 1
[000183] -A---+------ \--* ASG bool
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39
New refCnts for V46: refCnt = 2, refCntWtd = 2
[000190] ------------ * STMT void (IL 0x00A... ???)
[000187] -----+------ | /--* CNS_INT int 0
[000189] -A---+------ \--* ASG short
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38
New refCnts for V45: refCnt = 2, refCntWtd = 2
[000073] ------------ * STMT void (IL ???... ???)
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39
[000803] -A---------- | /--* ASG bool
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35
[000804] -A---+------ \--* COMMA void
[000798] -------N---- | /--* LCL_VAR short V45 tmp38
[000799] -A---------- | /--* ASG short
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34
[000800] -A---------- \--* COMMA void
[000794] -------N---- | /--* LCL_VAR int V44 tmp37
[000795] -A---------- | /--* ASG int
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33
[000796] -A---------- \--* COMMA void
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36
[000792] -A---------- \--* ASG ref
[000790] D------N---- \--* LCL_VAR ref V39 tmp32
New refCnts for V39: refCnt = 1, refCntWtd = 1
New refCnts for V43: refCnt = 3, refCntWtd = 3
New refCnts for V40: refCnt = 1, refCntWtd = 1
New refCnts for V44: refCnt = 3, refCntWtd = 3
New refCnts for V41: refCnt = 1, refCntWtd = 1
New refCnts for V45: refCnt = 3, refCntWtd = 3
New refCnts for V42: refCnt = 1, refCntWtd = 1
New refCnts for V46: refCnt = 3, refCntWtd = 3
[000207] ------------ * STMT void (IL 0x010... ???)
[000817] ------------ | /--* CNS_INT bool 0
[000818] -A---------- | /--* ASG bool
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43
[000819] -A---+------ \--* COMMA void
[000813] ------------ | /--* CNS_INT short 0
[000814] -A---------- | /--* ASG short
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42
[000815] -A---------- \--* COMMA void
[000809] ------------ | /--* CNS_INT int 0
[000810] -A---------- | /--* ASG int
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41
[000811] -A---------- \--* COMMA void
[000806] ------------ | /--* CNS_INT ref null
[000807] -A---------- \--* ASG ref
[000805] D------N---- \--* LCL_VAR ref V47 tmp40
New refCnts for V47: refCnt = 1, refCntWtd = 1
New refCnts for V48: refCnt = 1, refCntWtd = 1
New refCnts for V49: refCnt = 1, refCntWtd = 1
New refCnts for V50: refCnt = 1, refCntWtd = 1
[000261] ------------ * STMT void (IL 0x010... ???)
[000196] -----+------ | /--* CNS_INT ref null
[000260] -A---+------ \--* ASG ref
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6
New refCnts for V13: refCnt = 1, refCntWtd = 2
[000264] ------------ * STMT void (IL 0x010... ???)
[000199] -----+------ | /--* CNS_INT int 1
[000263] -A---+------ \--* ASG int
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7
New refCnts for V14: refCnt = 1, refCntWtd = 2
[000267] ------------ * STMT void (IL 0x010... ???)
[000202] -----+------ | /--* CNS_INT int 0
[000266] -A---+------ \--* ASG short
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8
New refCnts for V15: refCnt = 1, refCntWtd = 2
[000240] ------------ * STMT void (IL 0x010... ???)
[000237] -----+------ | /--* CNS_INT ref null
[000239] -A---+------ \--* ASG ref
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40
New refCnts for V47: refCnt = 2, refCntWtd = 2
[000246] ------------ * STMT void (IL 0x010... ???)
[000243] -----+------ | /--* CNS_INT int 1
[000245] -A---+------ \--* ASG int
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41
New refCnts for V48: refCnt = 2, refCntWtd = 2
[000252] ------------ * STMT void (IL 0x010... ???)
[000249] -----+------ | /--* LCL_VAR int V15 tmp8
[000251] -A---+------ \--* ASG short
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42
New refCnts for V49: refCnt = 2, refCntWtd = 2
New refCnts for V15: refCnt = 2, refCntWtd = 4
[000258] ------------ * STMT void (IL 0x010... ???)
[000255] -----+------ | /--* CNS_INT int 0
[000257] -A---+------ \--* ASG bool
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43
New refCnts for V50: refCnt = 2, refCntWtd = 2
[000220] ------------ * STMT void (IL 0x010... ???)
[000218] -----+------ | /--* CNS_INT int 0
[000219] IA---+--R--- \--* ASG struct (init)
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5
New refCnts for V12: refCnt = 1, refCntWtd = 2
[000281] ------------ * STMT void (IL 0x010... ???)
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43
[000851] -A---------- | /--* ASG bool
[000849] *------N---- | | \--* IND bool
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
[000848] ------------ | | \--* ADD byref
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45
[000852] -A---+------ \--* COMMA void
[000843] -------N---- | /--* LCL_VAR short V49 tmp42
[000844] -A---------- | /--* ASG short
[000842] *------N---- | | \--* IND short
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
[000841] ------------ | | \--* ADD byref
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45
[000845] -A---------- \--* COMMA void
[000836] -------N---- | /--* LCL_VAR int V48 tmp41
[000837] -A---------- | /--* ASG int
[000835] *------N---- | | \--* IND int
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
[000834] ------------ | | \--* ADD byref
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45
[000838] -A---------- \--* COMMA void
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40
[000830] -A---------- | /--* ASG ref
[000828] *------N---- | | \--* IND ref
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
[000827] ------------ | | \--* ADD byref
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45
[000831] -A---------- \--* COMMA void
[000821] L----------- | /--* ADDR byref
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
[000824] -A---------- \--* ASG byref
[000823] D------N---- \--* LCL_VAR byref V52 tmp45
New refCnts for V52: refCnt = 1, refCntWtd = 2
New refCnts for V16: refCnt = 1, refCntWtd = 2
New refCnts for V52: refCnt = 2, refCntWtd = 4
New refCnts for V47: refCnt = 3, refCntWtd = 3
New refCnts for V52: refCnt = 3, refCntWtd = 6
New refCnts for V48: refCnt = 3, refCntWtd = 3
New refCnts for V52: refCnt = 4, refCntWtd = 8
New refCnts for V49: refCnt = 3, refCntWtd = 3
New refCnts for V52: refCnt = 5, refCntWtd = 10
New refCnts for V50: refCnt = 3, refCntWtd = 3
[000277] ------------ * STMT void (IL 0x010... ???)
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9
[000276] -A--G+--R--- \--* ASG struct (copy)
[000275] x----+------ \--* BLK(16) struct
[000274] -----+------ \--* ADDR byref
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
New refCnts for V12: refCnt = 2, refCntWtd = 4
New refCnts for V16: refCnt = 2, refCntWtd = 4
[000084] ------------ * STMT void (IL ???... ???)
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5
[000231] -A---+--R--- \--* ASG struct (copy)
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4
New refCnts for V05: refCnt = 1, refCntWtd = 1
New refCnts for V12: refCnt = 3, refCntWtd = 6
[000290] ------------ * STMT void (IL 0x01A... ???)
[000288] -----+------ | /--* CNS_INT int 0
[000289] IA---+--R--- \--* ASG struct (init)
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10
New refCnts for V17: refCnt = 1, refCntWtd = 2
[000315] ------------ * STMT void (IL 0x01A... ???)
[000295] x---G+------ | /--* IND struct
[000294] -----+------ | | \--* ADDR byref
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
[000314] -A--G+--R--- \--* ASG struct (copy)
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11
New refCnts for V18: refCnt = 1, refCntWtd = 2
New refCnts for V05: refCnt = 2, refCntWtd = 2
[000311] ------------ * STMT void (IL 0x01A... ???)
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11
[000310] -A---+--R--- \--* ASG struct (copy)
[000309] x----+------ \--* BLK(16) struct
[000308] -----+------ \--* ADDR byref
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
New refCnts for V17: refCnt = 2, refCntWtd = 4
New refCnts for V18: refCnt = 2, refCntWtd = 4
[000093] ------------ * STMT void (IL ???... ???)
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10
[000301] -A--G+--R--- \--* ASG struct (copy)
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V17: refCnt = 3, refCntWtd = 6
[000335] ------------ * STMT void (IL 0x022... ???)
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000334] -A--G+------ \--* ASG ref
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13
New refCnts for V20: refCnt = 1, refCntWtd = 1
New refCnts for V03: refCnt = 2, refCntWtd = 2
[000340] ------------ * STMT void (IL 0x022... ???)
[000339] -----+------ \--* JTRUE void
[000337] -----+------ | /--* CNS_INT ref null
[000338] J----+-N---- \--* NE int
[000336] -----+------ \--* LCL_VAR ref V20 tmp13
New refCnts for V20: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB04 (weight=1 )
[000395] ------------ * STMT void (IL 0x022... ???)
[000391] -----+------ | /--* CNS_INT int 1
[000394] -A---+------ \--* ASG bool
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12
New refCnts for V19: refCnt = 1, refCntWtd = 1
*** marking local variables in block BB05 (weight=0.50)
[000349] ------------ * STMT void (IL 0x022... ???)
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000348] -AC-G+------ \--* ASG ref
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14
New refCnts for V21: refCnt = 1, refCntWtd = 1
New refCnts for V20: refCnt = 3, refCntWtd = 2.50
[000354] ------------ * STMT void (IL 0x022... ???)
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14
[000353] -A---+------ \--* ASG ref
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15
New refCnts for V22: refCnt = 1, refCntWtd = 0.50
New refCnts for V21: refCnt = 2, refCntWtd = 2
[000358] ------------ * STMT void (IL 0x022... ???)
[000357] -----+------ \--* JTRUE void
[000355] -----+------ | /--* CNS_INT ref null
[000356] J----+-N---- \--* EQ int
[000350] -----+------ \--* LCL_VAR ref V21 tmp14
New refCnts for V21: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB06 (weight=1 )
[000410] ------------ * STMT void (IL 0x022... ???)
[000407] V--XG+-N---- | /--* IND int
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000858] -----+------ | | \--* ADD byref
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15
[000409] -A-XG+------ \--* ASG int
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16
New refCnts for V23: refCnt = 1, refCntWtd = 1
New refCnts for V22: refCnt = 2, refCntWtd = 1.50
[000388] ------------ * STMT void (IL 0x022... ???)
[000421] -----+------ | /--* CNS_INT int 0
[000422] N----+------ | /--* NE int
[000419] -----+------ | | | /--* CNS_INT int 0x1600000
[000420] -----+------ | | \--* AND int
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16
[000387] -A---+------ \--* ASG bool
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12
New refCnts for V19: refCnt = 2, refCntWtd = 2
New refCnts for V23: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB07 (weight=1 )
[000378] ------------ * STMT void (IL 0x022... ???)
[000374] -----+------ | /--* CNS_INT int 0
[000375] N-CXG+------ | /--* NE int
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
[000377] -ACXG+------ \--* ASG bool
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12
New refCnts for V19: refCnt = 3, refCntWtd = 3
New refCnts for V20: refCnt = 4, refCntWtd = 3.50
New refCnts for V03: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB08 (weight=1 )
[000400] ------------ * STMT void (IL 0x022... ???)
[000397] -----+------ | /--* CNS_INT ref null
[000399] -A---+------ \--* ASG ref
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13
New refCnts for V20: refCnt = 5, refCntWtd = 4.50
[000404] ------------ * STMT void (IL 0x022... ???)
[000401] -----+------ | /--* CNS_INT ref null
[000403] -A---+------ \--* ASG ref
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15
New refCnts for V22: refCnt = 3, refCntWtd = 2.50
[000102] ------------ * STMT void (IL ???... ???)
[000101] -----+------ \--* JTRUE void
[000099] -----+------ | /--* CNS_INT int 0
[000100] J----+-N---- \--* NE int
[000396] -----+------ \--* LCL_VAR int V19 tmp12
New refCnts for V19: refCnt = 4, refCntWtd = 4
*** marking local variables in block BB09 (weight=1 )
[000109] ------------ * STMT void (IL 0x02B...0x02E)
[000106] -----+------ | /--* CNS_INT int 0
[000108] -A---+------ \--* ASG int
[000107] D----+-N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 3, refCntWtd = 3
[000112] ------------ * STMT void (IL ???...0x02F)
[000105] -----+------ | /--* CNS_INT int 0
[000111] -A-XG+------ \--* ASG int
[000110] *--XG+-N---- \--* IND int
[000104] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 2, refCntWtd = 2
[000119] ------------ * STMT void (IL 0x034...0x036)
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2
[000118] -A-XG+--R--- \--* ASG struct (copy)
[000117] ---XG+------ \--* OBJ(16) struct
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000870] -----+------ \--* ADD byref
[000113] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 3, refCntWtd = 3
New refCnts for V03: refCnt = 4, refCntWtd = 4
[000443] ------------ * STMT void (IL 0x03B... ???)
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000875] -----+------ | /--* ADD byref
[000873] -----+------ | | \--* LCL_VAR byref V00 this
[000876] ---XG+-N---- | /--* COMMA byref
[000872] ---X-+-N---- | | \--* NULLCHECK byte
[000871] -----+------ | | \--* LCL_VAR byref V00 this
[000442] -A-XG+------ \--* ASG byref
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17
New refCnts for V24: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 4, refCntWtd = 4
New refCnts for V00: refCnt = 5, refCntWtd = 5
[000431] ------------ * STMT void (IL 0x03B... ???)
[000428] -----+------ | /--* CNS_INT int 1
[000430] -A-XG+------ \--* ASG bool
[000429] *--XG+-N---- \--* IND bool
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000879] -----+------ \--* ADD byref
[000427] -----+------ \--* LCL_VAR byref V24 tmp17
New refCnts for V24: refCnt = 2, refCntWtd = 4
[000440] ------------ * STMT void (IL 0x03B... ???)
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
( 5, 4) [000884] ------------ | /--* ADD byref
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
New refCnts for V24: refCnt = 3, refCntWtd = 6
New refCnts for V24: refCnt = 4, refCntWtd = 8
New refCnts for V03: refCnt = 5, refCntWtd = 5
New refCnts for V00: refCnt = 6, refCntWtd = 6
*** marking local variables in block BB10 (weight=1 )
[000020] ------------ * STMT void (IL 0x04B...0x051)
[000016] *--XG+------ | /--* IND struct
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000894] -----+------ | | \--* ADD byref
[000015] -----+------ | | \--* LCL_VAR byref V00 this
[000019] -A-XG+--R--- \--* ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2
New refCnts for V03: refCnt = 6, refCntWtd = 6
New refCnts for V00: refCnt = 7, refCntWtd = 7
[000027] ------------ * STMT void (IL 0x052...0x059)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
[000896] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 8, refCntWtd = 8
[000032] ------------ * STMT void (IL 0x05E...0x061)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1
New refCnts for V08: refCnt = 1, refCntWtd = 2
[000037] ------------ * STMT void (IL ???... ???)
[000034] -----+------ | /--* CNS_INT int -1
[000036] -A---+------ \--* ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 4, refCntWtd = 4
[000040] ------------ * STMT void (IL ???...0x062)
[000033] -----+------ | /--* CNS_INT int -1
[000039] -A-XG+------ \--* ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 9, refCntWtd = 9
*** marking local variables in block BB11 (weight=1 )
[000462] ------------ * STMT void (IL 0x067... ???)
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
[000461] -A--G+------ \--* ASG ref
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19
New refCnts for V26: refCnt = 1, refCntWtd = 1
New refCnts for V03: refCnt = 7, refCntWtd = 7
[000467] ------------ * STMT void (IL 0x067... ???)
[000466] -----+------ \--* JTRUE void
[000464] -----+------ | /--* CNS_INT ref null
[000465] J----+-N---- \--* NE int
[000463] -----+------ \--* LCL_VAR ref V26 tmp19
New refCnts for V26: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB12 (weight=1 )
[000526] ------------ * STMT void (IL 0x067... ???)
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
[000525] -A--G+------ \--* ASG int
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18
New refCnts for V25: refCnt = 1, refCntWtd = 1
New refCnts for V03: refCnt = 8, refCntWtd = 8
*** marking local variables in block BB13 (weight=0.50)
[000476] ------------ * STMT void (IL 0x067... ???)
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
[000475] -AC-G+------ \--* ASG ref
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20
New refCnts for V27: refCnt = 1, refCntWtd = 1
New refCnts for V26: refCnt = 3, refCntWtd = 2.50
[000481] ------------ * STMT void (IL 0x067... ???)
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20
[000480] -A---+------ \--* ASG ref
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21
New refCnts for V28: refCnt = 1, refCntWtd = 0.50
New refCnts for V27: refCnt = 2, refCntWtd = 2
[000485] ------------ * STMT void (IL 0x067... ???)
[000484] -----+------ \--* JTRUE void
[000482] -----+------ | /--* CNS_INT ref null
[000483] J----+-N---- \--* EQ int
[000477] -----+------ \--* LCL_VAR ref V27 tmp20
New refCnts for V27: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB14 (weight=1 )
[000544] ------------ * STMT void (IL 0x067... ???)
[000543] ---XG+------ \--* JTRUE void
[000556] -----+------ | /--* CNS_INT int 0x1000000
[000557] J--XG+-N---- \--* EQ int
[000554] -----+------ | /--* CNS_INT int 0x11000000
[000555] ---XG+------ \--* AND int
[000553] V--XG+-N---- \--* IND int
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000904] -----+------ \--* ADD byref
[000506] -----+------ \--* LCL_VAR ref V28 tmp21
New refCnts for V28: refCnt = 2, refCntWtd = 1.50
*** marking local variables in block BB15 (weight=0.50)
[000550] ------------ * STMT void (IL 0x067... ???)
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21
New refCnts for V28: refCnt = 3, refCntWtd = 2
*** marking local variables in block BB16 (weight=1 )
[000516] ------------ * STMT void (IL 0x067... ???)
[000562] ---XG+------ | /--* IND int
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000908] -----+------ | | \--* ADD byref
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21
[000515] -A-XG+------ \--* ASG int
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18
New refCnts for V25: refCnt = 2, refCntWtd = 2
New refCnts for V28: refCnt = 4, refCntWtd = 3
*** marking local variables in block BB17 (weight=1 )
[000503] ------------ * STMT void (IL 0x067... ???)
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
[000502] -ACXG+------ \--* ASG int
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18
New refCnts for V25: refCnt = 3, refCntWtd = 3
New refCnts for V26: refCnt = 4, refCntWtd = 3.50
New refCnts for V03: refCnt = 9, refCntWtd = 9
*** marking local variables in block BB18 (weight=1 )
[000531] ------------ * STMT void (IL 0x067... ???)
[000528] -----+------ | /--* CNS_INT ref null
[000530] -A---+------ \--* ASG ref
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19
New refCnts for V26: refCnt = 5, refCntWtd = 4.50
[000535] ------------ * STMT void (IL 0x067... ???)
[000532] -----+------ | /--* CNS_INT ref null
[000534] -A---+------ \--* ASG ref
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21
New refCnts for V28: refCnt = 5, refCntWtd = 4
[000049] ------------ * STMT void (IL ???... ???)
[000527] -----+------ | /--* LCL_VAR int V25 tmp18
[000048] -A---+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V25: refCnt = 4, refCntWtd = 4
*** marking local variables in block BB19 (weight=1 )
[000055] ------------ * STMT void (IL 0x08A...0x08D)
[000052] -----+------ | /--* CNS_INT int -2
[000054] -A-XG+------ \--* ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 10, refCntWtd = 10
[000593] ------------ * STMT void (IL 0x092... ???)
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000934] -----+------ | /--* ADD byref
[000932] -----+------ | | \--* LCL_VAR byref V00 this
[000935] ---XG+-N---- | /--* COMMA byref
[000931] ---X-+-N---- | | \--* NULLCHECK byte
[000930] -----+------ | | \--* LCL_VAR byref V00 this
[000592] -A-XG+------ \--* ASG byref
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22
New refCnts for V29: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 11, refCntWtd = 11
New refCnts for V00: refCnt = 12, refCntWtd = 12
[000572] ------------ * STMT void (IL 0x092... ???)
[000571] ---XG+------ \--* JTRUE void
[000569] -----+------ | /--* CNS_INT int 0
[000570] J--XG+-N---- \--* EQ int
[000568] *--XG+------ \--* IND bool
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
[000938] -----+------ \--* ADD byref
[000567] -----+------ \--* LCL_VAR byref V29 tmp22
New refCnts for V29: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB20 (weight=1 )
[000619] ------------ * STMT void (IL 0x092... ???)
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
[000943] -----+------ | /--* ADD byref
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000944] ---XG+-N---- | /--* COMMA byref
[000940] ---X-+-N---- | | \--* NULLCHECK byte
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22
[000618] -A-XG+------ \--* ASG byref
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23
New refCnts for V30: refCnt = 1, refCntWtd = 2
New refCnts for V29: refCnt = 3, refCntWtd = 6
New refCnts for V29: refCnt = 4, refCntWtd = 8
[000601] ------------ * STMT void (IL 0x092... ???)
[000600] ---XG+------ \--* JTRUE void
[000598] -----+------ | /--* CNS_INT ref null
[000599] J--XG+-N---- \--* NE int
[000597] *--XG+------ \--* IND ref
[000596] -----+------ \--* LCL_VAR byref V30 tmp23
New refCnts for V30: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB21 (weight=0.50)
[000627] ------------ * STMT void (IL 0x092... ???)
[000624] -----+------ | /--* CNS_INT int 0
[000626] -A---+------ \--* ASG int
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25
New refCnts for V32: refCnt = 1, refCntWtd = 0.50
[000670] ------------ * STMT void (IL 0x092... ???)
[000609] -----+------ | /--* LCL_VAR int V02 loc1
[000669] -A---+------ \--* ASG int
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27
New refCnts for V34: refCnt = 1, refCntWtd = 0.50
New refCnts for V02: refCnt = 2, refCntWtd = 1.50
[000675] ------------ * STMT void (IL 0x092... ???)
[000674] -----+------ \--* JTRUE void
[000672] -----+------ | /--* CNS_INT int 9
[000673] J----+-N---- \--* GE int
[000671] -----+------ \--* LCL_VAR int V02 loc1
New refCnts for V02: refCnt = 3, refCntWtd = 2
*** marking local variables in block BB22 (weight=0.50)
[000697] ------------ * STMT void (IL 0x092... ???)
[000696] -----+------ \--* JTRUE void
[000694] -----+------ | /--* CNS_INT int -1
[000695] J----+-N---- \--* LT int
[000693] -----+------ \--* LCL_VAR int V34 tmp27
New refCnts for V34: refCnt = 2, refCntWtd = 1
*** marking local variables in block BB23 (weight=1 )
[000713] ------------ * STMT void (IL 0x092... ???)
[000710] a---G+------ | /--* IND ref
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000960] -----+------ | | \--* ADD byref
[000956] -----+-N---- | | | /--* CNS_INT long 3
[000957] -----+------ | | | /--* LSH long
[000955] -----+------ | | | | \--* CAST long <- int
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000950] -----+------ | | | | \--* ADD int
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27
[000958] -----+------ | | \--* ADD byref
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000961] ---XG+------ | /--* COMMA ref
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000708] -----+------ | | | /--* CNS_INT int 1
[000709] -----+------ | | +--* ADD int
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27
[000953] ---X-+------ | | \--* ARR_LENGTH int
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46
[000962] -ACXG+------ | /--* COMMA ref
[000699] x---G+------ | | | /--* IND ref
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
[000706] --CXG+------ | | | /--* COMMA ref
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000947] -ACXG+------ | | \--* ASG ref
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46
[000712] -ACXG+------ \--* ASG ref
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29
New refCnts for V36: refCnt = 1, refCntWtd = 1
New refCnts for V53: refCnt = 1, refCntWtd = 2
New refCnts for V34: refCnt = 3, refCntWtd = 2
New refCnts for V53: refCnt = 2, refCntWtd = 4
New refCnts for V53: refCnt = 3, refCntWtd = 6
New refCnts for V34: refCnt = 4, refCntWtd = 3
[000723] ------------ * STMT void (IL 0x092... ???)
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29
[000722] -A---+------ \--* ASG ref
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24
New refCnts for V31: refCnt = 1, refCntWtd = 1
New refCnts for V36: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB24 (weight=1 )
[000682] ------------ * STMT void (IL 0x092... ???)
[000679] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000678] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
[000681] -AC--+------ \--* ASG ref
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28
New refCnts for V35: refCnt = 1, refCntWtd = 2
[000739] ------------ * STMT void (IL 0x092... ???)
[000969] ------------ | /--* CNS_INT ref null
[000970] -A---+------ \--* ASG ref
[000968] D------N---- \--* LCL_VAR ref V51 tmp44
New refCnts for V51: refCnt = 1, refCntWtd = 1
[000760] ------------ * STMT void (IL 0x092... ???)
[000757] -----+------ | /--* CNS_INT int 0
[000759] -A---+------ \--* ASG int
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31
New refCnts for V38: refCnt = 1, refCntWtd = 1
[000771] ------------ * STMT void (IL 0x092... ???)
[000766] -----+------ | /--* CNS_INT int 0x1000000
[000768] -----+------ | /--* OR int
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31
[000770] -A-XG+------ \--* ASG int
[000769] V--XG+-N---- \--* IND int
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000972] -----+------ \--* ADD byref
[000765] -----+------ \--* LCL_VAR ref V35 tmp28
New refCnts for V35: refCnt = 2, refCntWtd = 4
New refCnts for V38: refCnt = 2, refCntWtd = 2
[000751] ------------ * STMT void (IL 0x092... ???)
[000677] -----+------ | /--* LCL_VAR int V02 loc1
[000750] -A-XG+------ \--* ASG int
[000749] ---XG+-N---- \--* IND int
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000974] -----+------ \--* ADD byref
[000748] -----+------ \--* LCL_VAR ref V35 tmp28
New refCnts for V35: refCnt = 3, refCntWtd = 6
New refCnts for V02: refCnt = 4, refCntWtd = 3
[000690] ------------ * STMT void (IL 0x092... ???)
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28
[000689] -A---+------ \--* ASG ref
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24
New refCnts for V31: refCnt = 2, refCntWtd = 2
New refCnts for V35: refCnt = 4, refCntWtd = 8
*** marking local variables in block BB25 (weight=1 )
[000728] ------------ * STMT void (IL 0x092... ???)
[000725] -----+------ | /--* CNS_INT ref null
[000727] -A---+------ \--* ASG ref
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29
New refCnts for V36: refCnt = 3, refCntWtd = 3
[000616] ------------ * STMT void (IL 0x092... ???)
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24
[000615] -A-XG+------ \--* ASG ref
[000614] *--XG+-N---- \--* IND ref
[000608] -----+------ \--* LCL_VAR byref V30 tmp23
New refCnts for V30: refCnt = 3, refCntWtd = 6
New refCnts for V31: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB26 (weight=1 )
[000606] ------------ * STMT void (IL 0x092... ???)
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
New refCnts for V30: refCnt = 4, refCntWtd = 8
New refCnts for V02: refCnt = 5, refCntWtd = 4
*** marking local variables in block BB27 (weight=1 )
[000577] ------------ * STMT void (IL 0x092... ???)
[000059] -----+------ | /--* LCL_VAR int V02 loc1
[000576] -A-XG+------ \--* ASG int
[000575] *--XG+-N---- \--* IND int
[000574] -----+------ \--* LCL_VAR byref V29 tmp22
New refCnts for V29: refCnt = 5, refCntWtd = 10
New refCnts for V02: refCnt = 6, refCntWtd = 5
[000582] ------------ * STMT void (IL 0x092... ???)
[000579] -----+------ | /--* CNS_INT int 1
[000581] -A-XG+------ \--* ASG bool
[000580] *--XG+-N---- \--* IND bool
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
[000980] -----+------ \--* ADD byref
[000578] -----+------ \--* LCL_VAR byref V29 tmp22
New refCnts for V29: refCnt = 6, refCntWtd = 12
*** marking local variables in block BB28 (weight=1 )
[000065] ------------ * STMT void (IL 0x09E...0x09E)
[000064] -----+------ \--* RETURN void
*** marking local variables in block BB29 (weight=0 )
[000133] ------------ * STMT void (IL 0x071...0x071)
[000007] -----+------ | /--* CATCH_ARG ref
[000132] -A---+------ \--* ASG ref
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2
New refCnts for V09: refCnt = 1, refCntWtd = 0
[000137] ------------ * STMT void (IL ???... ???)
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2
[000136] -A---+------ \--* ASG ref
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5
New refCnts for V06: refCnt = 1, refCntWtd = 0
New refCnts for V09: refCnt = 2, refCntWtd = 0
[000142] ------------ * STMT void (IL 0x073...0x076)
[000139] -----+------ | /--* CNS_INT int -2
[000141] -A-XG+------ \--* ASG int
[000140] *--XG+-N---- \--* IND int
[000138] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 13, refCntWtd = 12
[000149] ------------ * STMT void (IL 0x07B...0x088)
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000923] -----+------ | /--* ADD byref
[000921] -----+------ | | \--* LCL_VAR byref V00 this
[000924] ---XG+-N---- this in rcx +--* COMMA byref
[000920] ---X-+-N---- | \--* NULLCHECK byte
[000919] -----+------ | \--* LCL_VAR byref V00 this
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2
New refCnts for V00: refCnt = 14, refCntWtd = 12
New refCnts for V00: refCnt = 15, refCntWtd = 12
New refCnts for V09: refCnt = 3, refCntWtd = 0
New refCnts for V00: refCnt = 16, refCntWtd = 13
New refCnts for V00: refCnt = 17, refCntWtd = 14
*************** In optAddCopies()
Trying to add a copy for V00 an arg, avg_wtd = 0.41
Referenced in BB01, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB09, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB10, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB19, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB29, bbWeight is 0 , which is dominated by BB01
lvaGrabTemp returning 55 (V55 tmp48) (a long lifetime temp) called for optAddCopies.
Finding the best place to insert the assignment V55=V00
Starting at BB01, bbWeight is 1 , bestWeight is 1
Considering BB01, bbWeight is 1 , bestWeight is 1
new bestBlock
Insert copy at the start of BB01
New refCnts for V00: refCnt = 18, refCntWtd = 15
New refCnts for V55: refCnt = 1, refCntWtd = 1
Introducing a new copy for V00
[000984] ------------ /--* LCL_VAR byref V00 this
[000986] -A---------- * ASG byref
[000985] D------N---- \--* LCL_VAR byref V55 tmp48
Local V05 should not be enregistered because: it is a struct
Local V12 should not be enregistered because: it is a struct
Local V17 should not be enregistered because: it is a struct
Local V18 should not be enregistered because: it is a struct
refCnt table for 'MoveNext':
V00 this [ byref]: refCnt = 18, refCntWtd = 15 pref [rcx]
V29 tmp22 [ byref]: refCnt = 6, refCntWtd = 12
V52 tmp45 [ byref]: refCnt = 5, refCntWtd = 10
V24 tmp17 [ byref]: refCnt = 4, refCntWtd = 8
V30 tmp23 [ byref]: refCnt = 4, refCntWtd = 8
V35 tmp28 [ ref]: refCnt = 4, refCntWtd = 8
V53 tmp46 [ ref]: refCnt = 3, refCntWtd = 6
V12 tmp5 [struct]: refCnt = 3, refCntWtd = 6
V17 tmp10 [struct]: refCnt = 3, refCntWtd = 6
V02 loc1 [ int]: refCnt = 6, refCntWtd = 5
V20 tmp13 [ ref]: refCnt = 5, refCntWtd = 4.50
V26 tmp19 [ ref]: refCnt = 5, refCntWtd = 4.50
V28 tmp21 [ ref]: refCnt = 5, refCntWtd = 4
V01 loc0 [ int]: refCnt = 4, refCntWtd = 4
V19 tmp12 [ bool]: refCnt = 4, refCntWtd = 4
V25 tmp18 [ int]: refCnt = 4, refCntWtd = 4
V15 tmp8 [ short]: refCnt = 2, refCntWtd = 4
V18 tmp11 [struct]: refCnt = 2, refCntWtd = 4
V34 tmp27 [ int]: refCnt = 4, refCntWtd = 3
V21 tmp14 [ ref]: refCnt = 3, refCntWtd = 3
V27 tmp20 [ ref]: refCnt = 3, refCntWtd = 3
V31 tmp24 [ ref]: refCnt = 3, refCntWtd = 3
V36 tmp29 [ ref]: refCnt = 3, refCntWtd = 3
V43 tmp36 [ ref]: refCnt = 3, refCntWtd = 3
V47 tmp40 [ ref]: refCnt = 3, refCntWtd = 3
V44 tmp37 [ int]: refCnt = 3, refCntWtd = 3
V45 tmp38 [ short]: refCnt = 3, refCntWtd = 3
V46 tmp39 [ bool]: refCnt = 3, refCntWtd = 3
V48 tmp41 [ int]: refCnt = 3, refCntWtd = 3
V49 tmp42 [ short]: refCnt = 3, refCntWtd = 3
V50 tmp43 [ bool]: refCnt = 3, refCntWtd = 3
V22 tmp15 [ ref]: refCnt = 3, refCntWtd = 2.50
V05 loc4 [struct]: refCnt = 2, refCntWtd = 2
V23 tmp16 [ int]: refCnt = 2, refCntWtd = 2
V38 tmp31 [ int]: refCnt = 2, refCntWtd = 2
V13 tmp6 [ ref]: refCnt = 1, refCntWtd = 2
V08 tmp1 [ int]: refCnt = 1, refCntWtd = 2
V14 tmp7 [ int]: refCnt = 1, refCntWtd = 2
V39 tmp32 [ ref]: refCnt = 1, refCntWtd = 1
V51 tmp44 [ ref]: refCnt = 1, refCntWtd = 1
V55 tmp48 [ byref]: refCnt = 1, refCntWtd = 1
V40 tmp33 [ int]: refCnt = 1, refCntWtd = 1
V41 tmp34 [ short]: refCnt = 1, refCntWtd = 1
V42 tmp35 [ bool]: refCnt = 1, refCntWtd = 1
V32 tmp25 [ int]: refCnt = 1, refCntWtd = 0.50
V09 tmp2 [ ref]: refCnt = 3, refCntWtd = 0
V06 loc5 [ ref]: refCnt = 1, refCntWtd = 0
V03 loc2 [struct]: refCnt = 9, refCntWtd = 9
V16 tmp9 [struct]: refCnt = 2, refCntWtd = 4
V07 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
V54 PSPSym [ long]: refCnt = 1, refCntWtd = 1
*************** In optOptimizeBools()
*************** In fgDebugCheckBBlist
*************** In fgFindOperOrder()
*************** In fgSetBlockOrder()
The biggest BB has 35 tree nodes
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
( 5, 4) [000987] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000984] ------------ | /--* LCL_VAR byref V00 this
N003 ( 5, 4) [000986] -A------R--- \--* ASG byref
N002 ( 3, 2) [000985] D------N---- \--* LCL_VAR byref V55 tmp48
***** BB01, stmt 2
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006)
N002 ( 3, 2) [000002] *--XG------- | /--* IND int
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10}
***** BB02, stmt 3
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008)
N004 ( 5, 5) [000012] ------------ \--* JTRUE void
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000011] J------N---- \--* EQ int
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05}
***** BB03, stmt 4
( 4, 12) [000155] ------------ * STMT void (IL 0x00A... ???)
N012 ( 1, 1) [000787] ------------ | /--* CNS_INT bool 0
N014 ( 1, 3) [000788] -A------R--- | /--* ASG bool
N013 ( 2, 2) [000786] D------N---- | | \--* LCL_VAR bool V46 tmp39
N015 ( 4, 12) [000789] -A---------- \--* COMMA void
N008 ( 1, 1) [000783] ------------ | /--* CNS_INT short 0
N010 ( 1, 3) [000784] -A------R--- | /--* ASG short
N009 ( 2, 2) [000782] D------N---- | | \--* LCL_VAR short V45 tmp38
N011 ( 3, 9) [000785] -A---------- \--* COMMA void
N004 ( 1, 1) [000779] ------------ | /--* CNS_INT int 0
N006 ( 1, 3) [000780] -A------R--- | /--* ASG int
N005 ( 1, 1) [000778] D------N---- | | \--* LCL_VAR int V44 tmp37
N007 ( 2, 6) [000781] -A---------- \--* COMMA void
N001 ( 1, 1) [000776] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000777] -A------R--- \--* ASG ref
N002 ( 1, 1) [000775] D------N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 5
( 1, 3) [000172] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000169] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000171] -A------R--- \--* ASG int
N002 ( 1, 1) [000170] D------N---- \--* LCL_VAR int V44 tmp37
***** BB03, stmt 6
( 1, 3) [000178] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000175] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000177] -A------R--- \--* ASG ref
N002 ( 1, 1) [000176] D------N---- \--* LCL_VAR ref V43 tmp36
***** BB03, stmt 7
( 1, 3) [000184] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000181] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000183] -A------R--- \--* ASG bool
N002 ( 2, 2) [000182] D------N---- \--* LCL_VAR bool V46 tmp39
***** BB03, stmt 8
( 1, 3) [000190] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000187] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000189] -A------R--- \--* ASG short
N002 ( 2, 2) [000188] D------N---- \--* LCL_VAR short V45 tmp38
***** BB03, stmt 9
( 24, 20) [000073] ------------ * STMT void (IL ???... ???)
N012 ( 2, 2) [000802] -------N---- | /--* LCL_VAR bool V46 tmp39
N014 ( 7, 6) [000803] -A------R--- | /--* ASG bool
N013 ( 4, 3) [000801] D------N---- | | \--* LCL_VAR bool V42 tmp35
N015 ( 24, 20) [000804] -A---------- \--* COMMA void
N008 ( 2, 2) [000798] -------N---- | /--* LCL_VAR short V45 tmp38
N010 ( 7, 6) [000799] -A------R--- | /--* ASG short
N009 ( 4, 3) [000797] D------N---- | | \--* LCL_VAR short V41 tmp34
N011 ( 17, 14) [000800] -A---------- \--* COMMA void
N004 ( 1, 1) [000794] -------N---- | /--* LCL_VAR int V44 tmp37
N006 ( 5, 4) [000795] -A------R--- | /--* ASG int
N005 ( 3, 2) [000793] D------N---- | | \--* LCL_VAR int V40 tmp33
N007 ( 10, 8) [000796] -A---------- \--* COMMA void
N001 ( 1, 1) [000791] -------N---- | /--* LCL_VAR ref V43 tmp36
N003 ( 5, 4) [000792] -A------R--- \--* ASG ref
N002 ( 3, 2) [000790] D------N---- \--* LCL_VAR ref V39 tmp32
***** BB03, stmt 10
( 4, 12) [000207] ------------ * STMT void (IL 0x010... ???)
N012 ( 1, 1) [000817] ------------ | /--* CNS_INT bool 0
N014 ( 1, 3) [000818] -A------R--- | /--* ASG bool
N013 ( 2, 2) [000816] D------N---- | | \--* LCL_VAR bool V50 tmp43
N015 ( 4, 12) [000819] -A---------- \--* COMMA void
N008 ( 1, 1) [000813] ------------ | /--* CNS_INT short 0
N010 ( 1, 3) [000814] -A------R--- | /--* ASG short
N009 ( 2, 2) [000812] D------N---- | | \--* LCL_VAR short V49 tmp42
N011 ( 3, 9) [000815] -A---------- \--* COMMA void
N004 ( 1, 1) [000809] ------------ | /--* CNS_INT int 0
N006 ( 1, 3) [000810] -A------R--- | /--* ASG int
N005 ( 1, 1) [000808] D------N---- | | \--* LCL_VAR int V48 tmp41
N007 ( 2, 6) [000811] -A---------- \--* COMMA void
N001 ( 1, 1) [000806] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000807] -A------R--- \--* ASG ref
N002 ( 1, 1) [000805] D------N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 11
( 5, 4) [000261] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000196] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000260] -A------R--- \--* ASG ref
N002 ( 3, 2) [000259] D------N---- \--* LCL_VAR ref V13 tmp6
***** BB03, stmt 12
( 5, 4) [000264] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000199] ------------ | /--* CNS_INT int 1
N003 ( 5, 4) [000263] -A------R--- \--* ASG int
N002 ( 3, 2) [000262] D------N---- \--* LCL_VAR int V14 tmp7
***** BB03, stmt 13
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000266] -A------R--- \--* ASG short
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8
***** BB03, stmt 14
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40
***** BB03, stmt 15
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000245] -A------R--- \--* ASG int
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41
***** BB03, stmt 16
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8
N003 ( 1, 3) [000251] -A------R--- \--* ASG short
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42
***** BB03, stmt 17
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43
***** BB03, stmt 18
( 5, 4) [000220] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000218] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000219] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000217] D------N---- \--* LCL_VAR struct V12 tmp5
***** BB03, stmt 19
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???)
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45
N032 ( 31, 30) [000852] -A---------- \--* COMMA void
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42
N024 ( 8, 8) [000844] -A---------- | /--* ASG short
N022 ( 5, 5) [000842] *------N---- | | \--* IND short
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45
N025 ( 23, 22) [000845] -A---------- \--* COMMA void
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41
N017 ( 6, 6) [000837] -A---------- | /--* ASG int
N015 ( 4, 4) [000835] *------N---- | | \--* IND int
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45
N018 ( 15, 14) [000838] -A---------- \--* COMMA void
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45
N011 ( 9, 8) [000831] -A---------- \--* COMMA void
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45
***** BB03, stmt 20
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???)
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy)
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000274] ------------ \--* ADDR byref
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value]
***** BB03, stmt 21
( 7, 5) [000084] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy)
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4
***** BB03, stmt 22
( 5, 4) [000290] ------------ * STMT void (IL 0x01A... ???)
N001 ( 1, 1) [000288] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000289] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000287] D------N---- \--* LCL_VAR struct V17 tmp10
***** BB03, stmt 23
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???)
N003 ( 6, 7) [000295] x---G------- | /--* IND struct
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value]
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy)
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11
***** BB03, stmt 24
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???)
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy)
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000308] ------------ \--* ADDR byref
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value]
***** BB03, stmt 25
( 7, 5) [000093] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB03, stmt 26
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???)
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13
***** BB03, stmt 27
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000339] ------------ \--* JTRUE void
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000338] J------N---- \--* NE int
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08}
***** BB04, stmt 28
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 29
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???)
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14
***** BB05, stmt 30
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15
***** BB05, stmt 31
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000357] ------------ \--* JTRUE void
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000356] J------N---- \--* EQ int
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08}
***** BB06, stmt 32
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???)
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16
***** BB06, stmt 33
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???)
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0
N005 ( 10, 9) [000422] N----------- | /--* NE int
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000420] ------------ | | \--* AND int
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12
------------ BB07 [022..023), preds={BB05} succs={BB08}
***** BB07, stmt 34
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???)
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11}
***** BB08, stmt 35
( 1, 3) [000400] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000397] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000399] -A------R--- \--* ASG ref
N002 ( 1, 1) [000398] D------N---- \--* LCL_VAR ref V20 tmp13
***** BB08, stmt 36
( 5, 4) [000404] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000401] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000403] -A------R--- \--* ASG ref
N002 ( 3, 2) [000402] D------N---- \--* LCL_VAR ref V22 tmp15
***** BB08, stmt 37
( 5, 5) [000102] ------------ * STMT void (IL ???... ???)
N004 ( 5, 5) [000101] ------------ \--* JTRUE void
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000100] J------N---- \--* NE int
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28}
***** BB09, stmt 38
( 1, 3) [000109] ------------ * STMT void (IL 0x02B...0x02E)
N001 ( 1, 1) [000106] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000108] -A------R--- \--* ASG int
N002 ( 1, 1) [000107] D------N---- \--* LCL_VAR int V01 loc0
***** BB09, stmt 39
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F)
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this
***** BB09, stmt 40
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036)
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy)
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N004 ( 3, 3) [000870] ------------ \--* ADD byref
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this
***** BB09, stmt 41
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???)
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000875] ------------ | /--* ADD byref
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 42
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???)
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
N003 ( 2, 2) [000879] -------N---- \--* ADD byref
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17
***** BB09, stmt 43
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???)
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N010 ( 3, 3) [000884] ------------ | /--* ADD byref
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB10 [04B..067), preds={BB02} succs={BB11}
***** BB10, stmt 44
( 10, 8) [000020] ------------ * STMT void (IL 0x04B...0x051)
N004 ( 6, 5) [000016] *--XG------- | /--* IND struct
N002 ( 1, 1) [000893] ------------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N003 ( 3, 3) [000894] ------------ | | \--* ADD byref
N001 ( 1, 1) [000015] ------------ | | \--* LCL_VAR byref V00 this
N006 ( 10, 8) [000019] -A-XG---R--- \--* ASG struct (copy)
N005 ( 3, 2) [000017] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB10, stmt 45
( 8, 7) [000027] ------------ * STMT void (IL 0x052...0x059)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init)
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000895] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N004 ( 3, 3) [000896] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this
***** BB10, stmt 46
( 5, 4) [000032] ------------ * STMT void (IL 0x05E...0x061)
N001 ( 1, 1) [000029] ------------ | /--* CNS_INT int -1
N003 ( 5, 4) [000031] -A------R--- \--* ASG int
N002 ( 3, 2) [000030] D------N---- \--* LCL_VAR int V08 tmp1
***** BB10, stmt 47
( 1, 3) [000037] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000034] ------------ | /--* CNS_INT int -1
N003 ( 1, 3) [000036] -A------R--- \--* ASG int
N002 ( 1, 1) [000035] D------N---- \--* LCL_VAR int V01 loc0
***** BB10, stmt 48
( 5, 4) [000040] ------------ * STMT void (IL ???...0x062)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13}
***** BB11, stmt 49
( 3, 4) [000462] ------------ * STMT void (IL 0x067... ???)
N001 ( 3, 4) [000458] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
N003 ( 3, 4) [000461] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000460] D------N---- \--* LCL_VAR ref V26 tmp19
***** BB11, stmt 50
( 5, 5) [000467] ------------ * STMT void (IL 0x067... ???)
N004 ( 5, 5) [000466] ------------ \--* JTRUE void
N002 ( 1, 1) [000464] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000465] J------N---- \--* NE int
N001 ( 1, 1) [000463] ------------ \--* LCL_VAR ref V26 tmp19
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18}
***** BB12, stmt 51
( 3, 4) [000526] ------------ * STMT void (IL 0x067... ???)
N001 ( 3, 4) [000522] ----G------- | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
N003 ( 3, 4) [000525] -A--G---R--- \--* ASG int
N002 ( 1, 1) [000524] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17}
***** BB13, stmt 52
( 18, 18) [000476] ------------ * STMT void (IL 0x067... ???)
N009 ( 18, 18) [000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
N005 ( 1, 1) [000469] ------------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19
N006 ( 3, 10) [000470] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
N011 ( 18, 18) [000475] -AC-G---R--- \--* ASG ref
N010 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp20
***** BB13, stmt 53
( 1, 3) [000481] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000478] ------------ | /--* LCL_VAR ref V27 tmp20
N003 ( 1, 3) [000480] -A------R--- \--* ASG ref
N002 ( 1, 1) [000479] D------N---- \--* LCL_VAR ref V28 tmp21
***** BB13, stmt 54
( 5, 5) [000485] ------------ * STMT void (IL 0x067... ???)
N004 ( 5, 5) [000484] ------------ \--* JTRUE void
N002 ( 1, 1) [000482] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000483] J------N---- \--* EQ int
N001 ( 1, 1) [000477] ------------ \--* LCL_VAR ref V27 tmp20
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16}
***** BB14, stmt 55
( 10, 16) [000544] ------------ * STMT void (IL 0x067... ???)
N009 ( 10, 16) [000543] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000556] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000557] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000554] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000555] ---XGO------ \--* AND int
N004 ( 4, 4) [000553] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000903] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000904] -------N---- \--* ADD byref
N001 ( 1, 1) [000506] ------------ \--* LCL_VAR ref V28 tmp21
------------ BB15 [067..068), preds={BB14} succs={BB16}
***** BB15, stmt 56
( 15, 7) [000550] ------------ * STMT void (IL 0x067... ???)
N005 ( 15, 7) [000548] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000547] ------------ arg0 in rcx \--* LCL_VAR ref V28 tmp21
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18}
***** BB16, stmt 57
( 4, 4) [000516] ------------ * STMT void (IL 0x067... ???)
N004 ( 4, 4) [000562] ---XG------- | /--* IND int
N002 ( 1, 1) [000907] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000908] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000510] ------------ | | \--* LCL_VAR ref V28 tmp21
N006 ( 4, 4) [000515] -A-XG---R--- \--* ASG int
N005 ( 1, 1) [000514] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB17 [067..068), preds={BB13} succs={BB18}
***** BB17, stmt 58
( 28, 27) [000503] ------------ * STMT void (IL 0x067... ???)
N012 ( 28, 27) [000499] --CXG------- | /--* CALLV stub int IValueTaskSource`1.GetResult
N006 ( 1, 1) [000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19
N007 ( 4, 5) [000497] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
N008 ( 3, 10) [000909] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
N014 ( 28, 27) [000502] -ACXG---R--- \--* ASG int
N013 ( 1, 1) [000501] D------N---- \--* LCL_VAR int V25 tmp18
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19}
***** BB18, stmt 59
( 1, 3) [000531] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000528] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000530] -A------R--- \--* ASG ref
N002 ( 1, 1) [000529] D------N---- \--* LCL_VAR ref V26 tmp19
***** BB18, stmt 60
( 1, 3) [000535] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000532] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000534] -A------R--- \--* ASG ref
N002 ( 1, 1) [000533] D------N---- \--* LCL_VAR ref V28 tmp21
***** BB18, stmt 61
( 1, 3) [000049] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000527] ------------ | /--* LCL_VAR int V25 tmp18
N003 ( 1, 3) [000048] -A------R--- \--* ASG int
N002 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27}
***** BB19, stmt 62
( 5, 4) [000055] ------------ * STMT void (IL 0x08A...0x08D)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this
***** BB19, stmt 63
( 5, 5) [000593] ------------ * STMT void (IL 0x092... ???)
N004 ( 1, 1) [000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000934] ------------ | /--* ADD byref
N003 ( 1, 1) [000932] ------------ | | \--* LCL_VAR byref V00 this
N006 ( 5, 5) [000935] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000931] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000930] ------------ | | \--* LCL_VAR byref V00 this
N008 ( 5, 5) [000592] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000591] D------N---- \--* LCL_VAR byref V29 tmp22
***** BB19, stmt 64
( 9, 9) [000572] ------------ * STMT void (IL 0x092... ???)
N007 ( 9, 9) [000571] ---XG------- \--* JTRUE void
N005 ( 1, 1) [000569] ------------ | /--* CNS_INT int 0
N006 ( 7, 7) [000570] J--XG--N---- \--* EQ int
N004 ( 5, 5) [000568] *--XG------- \--* IND bool
N002 ( 1, 1) [000937] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
N003 ( 2, 2) [000938] -------N---- \--* ADD byref
N001 ( 1, 1) [000567] ------------ \--* LCL_VAR byref V29 tmp22
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26}
***** BB20, stmt 65
( 5, 5) [000619] ------------ * STMT void (IL 0x092... ???)
N004 ( 1, 1) [000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N005 ( 3, 3) [000943] ------------ | /--* ADD byref
N003 ( 1, 1) [000941] ------------ | | \--* LCL_VAR byref V29 tmp22
N006 ( 5, 5) [000944] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000940] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000939] ------------ | | \--* LCL_VAR byref V29 tmp22
N008 ( 5, 5) [000618] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23
***** BB20, stmt 66
( 7, 6) [000601] ------------ * STMT void (IL 0x092... ???)
N005 ( 7, 6) [000600] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000598] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000599] J--XG--N---- \--* NE int
N002 ( 3, 2) [000597] *--XG------- \--* IND ref
N001 ( 1, 1) [000596] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24}
***** BB21, stmt 67
( 5, 4) [000627] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000624] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000626] -A------R--- \--* ASG int
N002 ( 3, 2) [000622] D------N---- \--* LCL_VAR int V32 tmp25
***** BB21, stmt 68
( 1, 3) [000670] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000609] ------------ | /--* LCL_VAR int V02 loc1
N003 ( 1, 3) [000669] -A------R--- \--* ASG int
N002 ( 1, 1) [000668] D------N---- \--* LCL_VAR int V34 tmp27
***** BB21, stmt 69
( 5, 5) [000675] ------------ * STMT void (IL 0x092... ???)
N004 ( 5, 5) [000674] ------------ \--* JTRUE void
N002 ( 1, 1) [000672] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000673] J------N---- \--* GE int
N001 ( 1, 1) [000671] ------------ \--* LCL_VAR int V02 loc1
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24}
***** BB22, stmt 70
( 5, 5) [000697] ------------ * STMT void (IL 0x092... ???)
N004 ( 5, 5) [000696] ------------ \--* JTRUE void
N002 ( 1, 1) [000694] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000695] J------N---- \--* LT int
N001 ( 1, 1) [000693] ------------ \--* LCL_VAR int V34 tmp27
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25}
***** BB23, stmt 71
( 41, 55) [000713] ------------ * STMT void (IL 0x092... ???)
N031 ( 8, 9) [000710] a---G------- | /--* IND ref
N029 ( 1, 1) [000959] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000960] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000956] -------N---- | | | /--* CNS_INT long 3
N027 ( 5, 6) [000957] -------N---- | | | /--* LSH long
N025 ( 4, 5) [000955] ------------ | | | | \--* CAST long <- int
N023 ( 1, 1) [000952] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000950] ------------ | | | | \--* ADD int
N022 ( 1, 1) [000951] i----------- | | | | \--* LCL_VAR int V34 tmp27
N028 ( 6, 7) [000958] -------N---- | | \--* ADD byref
N021 ( 1, 1) [000949] ------------ | | \--* LCL_VAR ref V53 tmp46
N032 ( 18, 22) [000961] ---XG------- | /--* COMMA ref
N020 ( 10, 13) [000954] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000708] ------------ | | | /--* CNS_INT int 1
N017 ( 3, 3) [000709] ------------ | | +--* ADD int
N015 ( 1, 1) [000707] ------------ | | | \--* LCL_VAR int V34 tmp27
N019 ( 3, 3) [000953] ---X-------- | | \--* ARR_LENGTH int
N018 ( 1, 1) [000948] ------------ | | \--* LCL_VAR ref V53 tmp46
N033 ( 41, 55) [000962] -ACXG------- | /--* COMMA ref
N011 ( 5, 12) [000699] x---G------- | | | /--* IND ref
N010 ( 3, 10) [000967] ------------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000706] --CXG------- | | | /--* COMMA ref
N009 ( 18, 21) [000705] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000701] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000702] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000947] -ACXG---R--- | | \--* ASG ref
N013 ( 1, 1) [000946] D------N---- | | \--* LCL_VAR ref V53 tmp46
N035 ( 41, 55) [000712] -ACXG---R--- \--* ASG ref
N034 ( 1, 1) [000711] D------N---- \--* LCL_VAR ref V36 tmp29
***** BB23, stmt 72
( 1, 3) [000723] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000714] ------------ | /--* LCL_VAR ref V36 tmp29
N003 ( 1, 3) [000722] -A------R--- \--* ASG ref
N002 ( 1, 1) [000721] D------N---- \--* LCL_VAR ref V31 tmp24
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25}
***** BB24, stmt 73
( 17, 16) [000682] ------------ * STMT void (IL 0x092... ???)
N005 ( 17, 16) [000679] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000678] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
N007 ( 17, 16) [000681] -AC-----R--- \--* ASG ref
N006 ( 1, 1) [000680] D------N---- \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 74
( 5, 4) [000739] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000969] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000970] -A------R--- \--* ASG ref
N002 ( 3, 2) [000968] D------N---- \--* LCL_VAR ref V51 tmp44
***** BB24, stmt 75
( 5, 4) [000760] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000757] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000759] -A------R--- \--* ASG int
N002 ( 3, 2) [000758] D------N---- \--* LCL_VAR int V38 tmp31
***** BB24, stmt 76
( 10, 12) [000771] ------------ * STMT void (IL 0x092... ???)
N002 ( 1, 4) [000766] ------------ | /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000768] ------------ | /--* OR int
N001 ( 3, 2) [000767] ------------ | | \--* LCL_VAR int V38 tmp31
N008 ( 10, 12) [000770] -A-XGO--R--- \--* ASG int
N007 ( 4, 4) [000769] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000971] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000972] -------N---- \--* ADD byref
N004 ( 1, 1) [000765] ------------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 77
( 6, 6) [000751] ------------ * STMT void (IL 0x092... ???)
N005 ( 1, 1) [000677] ------------ | /--* LCL_VAR int V02 loc1
N006 ( 6, 6) [000750] -A-XG------- \--* ASG int
N004 ( 4, 4) [000749] ---XG--N---- \--* IND int
N002 ( 1, 1) [000973] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000974] -------N---- \--* ADD byref
N001 ( 1, 1) [000748] ------------ \--* LCL_VAR ref V35 tmp28
***** BB24, stmt 78
( 1, 3) [000690] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000687] ------------ | /--* LCL_VAR ref V35 tmp28
N003 ( 1, 3) [000689] -A------R--- \--* ASG ref
N002 ( 1, 1) [000688] D------N---- \--* LCL_VAR ref V31 tmp24
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28}
***** BB25, stmt 79
( 1, 3) [000728] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000725] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000727] -A------R--- \--* ASG ref
N002 ( 1, 1) [000726] D------N---- \--* LCL_VAR ref V36 tmp29
***** BB25, stmt 80
( 5, 4) [000616] ------------ * STMT void (IL 0x092... ???)
N003 ( 1, 1) [000724] ------------ | /--* LCL_VAR ref V31 tmp24
N004 ( 5, 4) [000615] -A-XG------- \--* ASG ref
N002 ( 3, 2) [000614] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000608] ------------ \--* LCL_VAR byref V30 tmp23
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28}
***** BB26, stmt 81
( 16, 10) [000606] ------------ * STMT void (IL 0x092... ???)
N008 ( 16, 10) [000604] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23
N005 ( 1, 1) [000587] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB27 [092..093), preds={BB19} succs={BB28}
***** BB27, stmt 82
( 5, 4) [000577] ------------ * STMT void (IL 0x092... ???)
N003 ( 1, 1) [000059] ------------ | /--* LCL_VAR int V02 loc1
N004 ( 5, 4) [000576] -A-XG------- \--* ASG int
N002 ( 3, 2) [000575] *--XG--N---- \--* IND int
N001 ( 1, 1) [000574] ------------ \--* LCL_VAR byref V29 tmp22
***** BB27, stmt 83
( 7, 7) [000582] ------------ * STMT void (IL 0x092... ???)
N005 ( 1, 1) [000579] ------------ | /--* CNS_INT int 1
N006 ( 7, 7) [000581] -A-XG------- \--* ASG bool
N004 ( 5, 5) [000580] *--XG--N---- \--* IND bool
N002 ( 1, 1) [000979] ------------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
N003 ( 2, 2) [000980] -------N---- \--* ADD byref
N001 ( 1, 1) [000578] ------------ \--* LCL_VAR byref V29 tmp22
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={}
***** BB28, stmt 84
( 0, 0) [000065] ------------ * STMT void (IL 0x09E...0x09E)
N001 ( 0, 0) [000064] ------------ \--* RETURN void
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28}
***** BB29, stmt 85
( 5, 4) [000133] ------------ * STMT void (IL 0x071...0x071)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref
N003 ( 5, 4) [000132] -A---O--R--- \--* ASG ref
N002 ( 3, 2) [000131] D------N---- \--* LCL_VAR ref V09 tmp2
***** BB29, stmt 86
( 7, 5) [000137] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000134] ------------ | /--* LCL_VAR ref V09 tmp2
N003 ( 7, 5) [000136] -A------R--- \--* ASG ref
N002 ( 3, 2) [000135] D------N---- \--* LCL_VAR ref V06 loc5
***** BB29, stmt 87
( 5, 4) [000142] ------------ * STMT void (IL 0x073...0x076)
N003 ( 1, 1) [000139] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000141] -A-XG------- \--* ASG int
N002 ( 3, 2) [000140] *--XG--N---- \--* IND int
N001 ( 1, 1) [000138] ------------ \--* LCL_VAR byref V00 this
***** BB29, stmt 88
( 22, 15) [000149] ------------ * STMT void (IL 0x07B...0x088)
N013 ( 22, 15) [000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000923] ------------ | /--* ADD byref
N006 ( 1, 1) [000921] ------------ | | \--* LCL_VAR byref V00 this
N009 ( 5, 5) [000924] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000920] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000919] ------------ | \--* LCL_VAR byref V00 this
N010 ( 3, 2) [000146] ------------ arg1 in rdx \--* LCL_VAR ref V09 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 30.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB18 [007..071), Handler at BB29..BB29 [071..08A)
[SsaBuilder] Topologically sorted the graph.
[SsaBuilder::ComputeImmediateDom]
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...)
*************** In SsaBuilder::InsertPhiFunctions()
*************** In fgLocalVarLiveness()
*************** In fgPerBlockLocalVarLiveness()
BB01 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V01 V55}
BB02 USE(1)={V01}
DEF(0)={ }
BB03 USE(0)={ } + ByrefExposed + GcHeap
DEF(21)={V52 V12 V17 V20 V15 V18 V43 V47 V44 V45 V46 V48 V49 V50 V05 V13 V14 V39 V40 V41 V42} + ByrefExposed + GcHeap
BB04 USE(0)={ }
DEF(1)={V19}
BB05 USE(1)={V20 }
DEF(2)={ V21 V22}
BB06 USE(1)={ V22 } + ByrefExposed + GcHeap
DEF(2)={V19 V23} + ByrefExposed + GcHeap
BB07 USE(1)={V20 } + ByrefExposed + GcHeap
DEF(1)={ V19} + ByrefExposed* + GcHeap*
BB08 USE(1)={ V19 }
DEF(2)={V20 V22}
BB09 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V24 V01} + ByrefExposed* + GcHeap*
BB10 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V01 V08} + ByrefExposed + GcHeap
BB11 USE(0)={ } + ByrefExposed
DEF(1)={V26}
BB12 USE(0)={ } + ByrefExposed
DEF(1)={V25}
BB13 USE(1)={V26 }
DEF(2)={ V28 V27}
BB14 USE(1)={V28} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed + GcHeap
BB15 USE(1)={V28} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed* + GcHeap*
BB16 USE(1)={V28 } + ByrefExposed + GcHeap
DEF(1)={ V25}
BB17 USE(1)={V26 } + ByrefExposed + GcHeap
DEF(1)={ V25} + ByrefExposed* + GcHeap*
BB18 USE(1)={ V25}
DEF(3)={V02 V26 V28 }
BB19 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(1)={ V29} + ByrefExposed + GcHeap
BB20 USE(1)={V29 } + ByrefExposed + GcHeap
DEF(1)={ V30}
BB21 USE(1)={V02 }
DEF(2)={ V34 V32}
BB22 USE(1)={V34}
DEF(0)={ }
BB23 USE(1)={ V34 } + ByrefExposed + GcHeap
DEF(3)={V53 V31 V36} + ByrefExposed* + GcHeap*
BB24 USE(1)={ V02 } + ByrefExposed + GcHeap
DEF(4)={V35 V31 V38 V51} + ByrefExposed + GcHeap
BB25 USE(2)={V30 V31 } + ByrefExposed + GcHeap
DEF(1)={ V36} + ByrefExposed + GcHeap
BB26 USE(2)={V30 V02} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed* + GcHeap*
BB27 USE(2)={V29 V02} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed + GcHeap
BB28 USE(0)={}
DEF(0)={}
BB29 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V09 V06} + ByrefExposed* + GcHeap*
** Memory liveness computed, GcHeap states and ByrefExposed states diverge
*************** In fgInterBlockLocalVarLiveness()
BB liveness after fgLiveVarAnalysis():
BB01 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V01} + ByrefExposed + GcHeap
BB02 IN (2)={V00 V01} + ByrefExposed + GcHeap
OUT(1)={V00 } + ByrefExposed + GcHeap
BB03 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V20} + ByrefExposed + GcHeap
BB04 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V19} + ByrefExposed + GcHeap
BB05 IN (2)={V00 V20 } + ByrefExposed + GcHeap
OUT(3)={V00 V20 V22} + ByrefExposed + GcHeap
BB06 IN (2)={V00 V22} + ByrefExposed + GcHeap
OUT(2)={V00 V19 } + ByrefExposed + GcHeap
BB07 IN (2)={V00 V20 } + ByrefExposed + GcHeap
OUT(2)={V00 V19} + ByrefExposed + GcHeap
BB08 IN (2)={V00 V19} + ByrefExposed + GcHeap
OUT(1)={V00 } + ByrefExposed + GcHeap
BB09 IN (1)={V00} + ByrefExposed + GcHeap
OUT(1)={V00} + ByrefExposed + GcHeap
BB10 IN (1)={V00} + ByrefExposed + GcHeap
OUT(1)={V00} + ByrefExposed + GcHeap
BB11 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V26} + ByrefExposed + GcHeap
BB12 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V25} + ByrefExposed + GcHeap
BB13 IN (2)={V00 V26 } + ByrefExposed + GcHeap
OUT(3)={V00 V26 V28} + ByrefExposed + GcHeap
BB14 IN (2)={V00 V28} + ByrefExposed + GcHeap
OUT(2)={V00 V28} + ByrefExposed + GcHeap
BB15 IN (2)={V00 V28} + ByrefExposed + GcHeap
OUT(2)={V00 V28} + ByrefExposed + GcHeap
BB16 IN (2)={V00 V28 } + ByrefExposed + GcHeap
OUT(2)={V00 V25} + ByrefExposed + GcHeap
BB17 IN (2)={V00 V26 } + ByrefExposed + GcHeap
OUT(2)={V00 V25} + ByrefExposed + GcHeap
BB18 IN (2)={V00 V25} + ByrefExposed + GcHeap
OUT(2)={V00 V02 } + ByrefExposed + GcHeap
BB19 IN (2)={V00 V02} + ByrefExposed + GcHeap
OUT(2)={ V29 V02} + ByrefExposed + GcHeap
BB20 IN (2)={V29 V02} + ByrefExposed + GcHeap
OUT(2)={ V30 V02} + ByrefExposed + GcHeap
BB21 IN (2)={V30 V02 } + ByrefExposed + GcHeap
OUT(3)={V30 V02 V34} + ByrefExposed + GcHeap
BB22 IN (3)={V30 V02 V34} + ByrefExposed + GcHeap
OUT(3)={V30 V02 V34} + ByrefExposed + GcHeap
BB23 IN (2)={V30 V34 } + ByrefExposed + GcHeap
OUT(2)={V30 V31} + ByrefExposed + GcHeap
BB24 IN (2)={V30 V02 } + ByrefExposed + GcHeap
OUT(2)={V30 V31} + ByrefExposed + GcHeap
BB25 IN (2)={V30 V31} + ByrefExposed + GcHeap
OUT(0)={ }
BB26 IN (2)={V30 V02} + ByrefExposed + GcHeap
OUT(0)={ }
BB27 IN (2)={V29 V02} + ByrefExposed + GcHeap
OUT(0)={ }
BB28 IN (0)={}
OUT(0)={}
BB29 IN (1)={V00} + ByrefExposed + GcHeap
OUT(0)={ }
Local V00 should not be enregistered because: live in/out of a handler
top level assign
removing stmt with no side effects
Removing statement [000987] in BB01 as useless:
( 5, 4) [000987] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000984] ------------ | /--* LCL_VAR byref V00 this
N003 ( 5, 4) [000986] -A------R--- \--* ASG byref
N002 ( 3, 2) [000985] D------N---- \--* LCL_VAR byref V55 tmp48
New refCnts for V55: refCnt = 0, refCntWtd = 0
New refCnts for V00: refCnt = 17, refCntWtd = 14
top level assign
removing stmt with no side effects
Removing statement [000290] in BB03 as useless:
( 5, 4) [000290] ------------ * STMT void (IL 0x01A... ???)
N001 ( 1, 1) [000288] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000289] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000287] D------N---- \--* LCL_VAR struct V17 tmp10
New refCnts for V17: refCnt = 2, refCntWtd = 4
top level assign
removing stmt with no side effects
Removing statement [000220] in BB03 as useless:
( 5, 4) [000220] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000218] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000219] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000217] D------N---- \--* LCL_VAR struct V12 tmp5
New refCnts for V12: refCnt = 2, refCntWtd = 4
top level assign
removing stmt with no side effects
Removing statement [000264] in BB03 as useless:
( 5, 4) [000264] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000199] ------------ | /--* CNS_INT int 1
N003 ( 5, 4) [000263] -A------R--- \--* ASG int
N002 ( 3, 2) [000262] D------N---- \--* LCL_VAR int V14 tmp7
New refCnts for V14: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000261] in BB03 as useless:
( 5, 4) [000261] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000196] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000260] -A------R--- \--* ASG ref
N002 ( 3, 2) [000259] D------N---- \--* LCL_VAR ref V13 tmp6
New refCnts for V13: refCnt = 0, refCntWtd = 0
Removing tree [000818] in BB03 as useless
N012 ( 1, 1) [000817] ------------ /--* CNS_INT bool 0
N014 ( 1, 3) [000818] -A------R--- * ASG bool
N013 ( 2, 2) [000816] D------N---- \--* LCL_VAR bool V50 tmp43
New refCnts for V50: refCnt = 2, refCntWtd = 2
Removing tree [000814] in BB03 as useless
N008 ( 1, 1) [000813] ------------ /--* CNS_INT short 0
N010 ( 1, 3) [000814] -A------R--- * ASG short
N009 ( 2, 2) [000812] D------N---- \--* LCL_VAR short V49 tmp42
New refCnts for V49: refCnt = 2, refCntWtd = 2
Removing tree [000810] in BB03 as useless
N004 ( 1, 1) [000809] ------------ /--* CNS_INT int 0
N006 ( 1, 3) [000810] -A------R--- * ASG int
N005 ( 1, 1) [000808] D------N---- \--* LCL_VAR int V48 tmp41
New refCnts for V48: refCnt = 2, refCntWtd = 2
Removing tree [000807] in BB03 as useless
N001 ( 1, 1) [000806] ------------ /--* CNS_INT ref null
N003 ( 1, 3) [000807] -A------R--- * ASG ref
N002 ( 1, 1) [000805] D------N---- \--* LCL_VAR ref V47 tmp40
New refCnts for V47: refCnt = 2, refCntWtd = 2
fgComputeLife modified tree:
N006 ( 0, 0) [000818] ------------ /--* NOP void
N007 ( 0, 0) [000819] ------------ * COMMA void
N004 ( 0, 0) [000814] ------------ | /--* NOP void
N005 ( 0, 0) [000815] ------------ \--* COMMA void
N002 ( 0, 0) [000810] ------------ | /--* NOP void
N003 ( 0, 0) [000811] ------------ \--* COMMA void
N001 ( 0, 0) [000807] ------------ \--* NOP void
Removing tree [000803] in BB03 as useless
N012 ( 2, 2) [000802] -------N---- /--* LCL_VAR bool V46 tmp39
N014 ( 7, 6) [000803] -A------R--- * ASG bool
N013 ( 4, 3) [000801] D------N---- \--* LCL_VAR bool V42 tmp35
New refCnts for V42: refCnt = 0, refCntWtd = 0
New refCnts for V46: refCnt = 2, refCntWtd = 2
Removing tree [000799] in BB03 as useless
N008 ( 2, 2) [000798] -------N---- /--* LCL_VAR short V45 tmp38
N010 ( 7, 6) [000799] -A------R--- * ASG short
N009 ( 4, 3) [000797] D------N---- \--* LCL_VAR short V41 tmp34
New refCnts for V41: refCnt = 0, refCntWtd = 0
New refCnts for V45: refCnt = 2, refCntWtd = 2
Removing tree [000795] in BB03 as useless
N004 ( 1, 1) [000794] -------N---- /--* LCL_VAR int V44 tmp37
N006 ( 5, 4) [000795] -A------R--- * ASG int
N005 ( 3, 2) [000793] D------N---- \--* LCL_VAR int V40 tmp33
New refCnts for V40: refCnt = 0, refCntWtd = 0
New refCnts for V44: refCnt = 2, refCntWtd = 2
Removing tree [000792] in BB03 as useless
N001 ( 1, 1) [000791] -------N---- /--* LCL_VAR ref V43 tmp36
N003 ( 5, 4) [000792] -A------R--- * ASG ref
N002 ( 3, 2) [000790] D------N---- \--* LCL_VAR ref V39 tmp32
New refCnts for V39: refCnt = 0, refCntWtd = 0
New refCnts for V43: refCnt = 2, refCntWtd = 2
fgComputeLife modified tree:
N006 ( 0, 0) [000803] ------------ /--* NOP void
N007 ( 0, 0) [000804] ------------ * COMMA void
N004 ( 0, 0) [000799] ------------ | /--* NOP void
N005 ( 0, 0) [000800] ------------ \--* COMMA void
N002 ( 0, 0) [000795] ------------ | /--* NOP void
N003 ( 0, 0) [000796] ------------ \--* COMMA void
N001 ( 0, 0) [000792] ------------ \--* NOP void
top level assign
removing stmt with no side effects
Removing statement [000190] in BB03 as useless:
( 1, 3) [000190] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000187] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000189] -A------R--- \--* ASG short
N002 ( 2, 2) [000188] D------N---- \--* LCL_VAR short V45 tmp38
New refCnts for V45: refCnt = 1, refCntWtd = 1
top level assign
removing stmt with no side effects
Removing statement [000184] in BB03 as useless:
( 1, 3) [000184] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000181] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000183] -A------R--- \--* ASG bool
N002 ( 2, 2) [000182] D------N---- \--* LCL_VAR bool V46 tmp39
New refCnts for V46: refCnt = 1, refCntWtd = 1
top level assign
removing stmt with no side effects
Removing statement [000178] in BB03 as useless:
( 1, 3) [000178] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000175] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000177] -A------R--- \--* ASG ref
N002 ( 1, 1) [000176] D------N---- \--* LCL_VAR ref V43 tmp36
New refCnts for V43: refCnt = 1, refCntWtd = 1
top level assign
removing stmt with no side effects
Removing statement [000172] in BB03 as useless:
( 1, 3) [000172] ------------ * STMT void (IL 0x00A... ???)
N001 ( 1, 1) [000169] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000171] -A------R--- \--* ASG int
N002 ( 1, 1) [000170] D------N---- \--* LCL_VAR int V44 tmp37
New refCnts for V44: refCnt = 1, refCntWtd = 1
Removing tree [000788] in BB03 as useless
N012 ( 1, 1) [000787] ------------ /--* CNS_INT bool 0
N014 ( 1, 3) [000788] -A------R--- * ASG bool
N013 ( 2, 2) [000786] D------N---- \--* LCL_VAR bool V46 tmp39
New refCnts for V46: refCnt = 0, refCntWtd = 0
Removing tree [000784] in BB03 as useless
N008 ( 1, 1) [000783] ------------ /--* CNS_INT short 0
N010 ( 1, 3) [000784] -A------R--- * ASG short
N009 ( 2, 2) [000782] D------N---- \--* LCL_VAR short V45 tmp38
New refCnts for V45: refCnt = 0, refCntWtd = 0
Removing tree [000780] in BB03 as useless
N004 ( 1, 1) [000779] ------------ /--* CNS_INT int 0
N006 ( 1, 3) [000780] -A------R--- * ASG int
N005 ( 1, 1) [000778] D------N---- \--* LCL_VAR int V44 tmp37
New refCnts for V44: refCnt = 0, refCntWtd = 0
Removing tree [000777] in BB03 as useless
N001 ( 1, 1) [000776] ------------ /--* CNS_INT ref null
N003 ( 1, 3) [000777] -A------R--- * ASG ref
N002 ( 1, 1) [000775] D------N---- \--* LCL_VAR ref V43 tmp36
New refCnts for V43: refCnt = 0, refCntWtd = 0
fgComputeLife modified tree:
N006 ( 0, 0) [000788] ------------ /--* NOP void
N007 ( 0, 0) [000789] ------------ * COMMA void
N004 ( 0, 0) [000784] ------------ | /--* NOP void
N005 ( 0, 0) [000785] ------------ \--* COMMA void
N002 ( 0, 0) [000780] ------------ | /--* NOP void
N003 ( 0, 0) [000781] ------------ \--* COMMA void
N001 ( 0, 0) [000777] ------------ \--* NOP void
top level assign
removing stmt with no side effects
Removing statement [000404] in BB08 as useless:
( 5, 4) [000404] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000401] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000403] -A------R--- \--* ASG ref
N002 ( 3, 2) [000402] D------N---- \--* LCL_VAR ref V22 tmp15
New refCnts for V22: refCnt = 2, refCntWtd = 1.50
top level assign
removing stmt with no side effects
Removing statement [000400] in BB08 as useless:
( 1, 3) [000400] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000397] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000399] -A------R--- \--* ASG ref
N002 ( 1, 1) [000398] D------N---- \--* LCL_VAR ref V20 tmp13
New refCnts for V20: refCnt = 4, refCntWtd = 3.50
top level assign
removing stmt with no side effects
Removing statement [000109] in BB09 as useless:
( 1, 3) [000109] ------------ * STMT void (IL 0x02B...0x02E)
N001 ( 1, 1) [000106] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000108] -A------R--- \--* ASG int
N002 ( 1, 1) [000107] D------N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 3, refCntWtd = 3
top level assign
removing stmt with no side effects
Removing statement [000037] in BB10 as useless:
( 1, 3) [000037] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000034] ------------ | /--* CNS_INT int -1
N003 ( 1, 3) [000036] -A------R--- \--* ASG int
N002 ( 1, 1) [000035] D------N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 2, refCntWtd = 2
top level assign
removing stmt with no side effects
Removing statement [000032] in BB10 as useless:
( 5, 4) [000032] ------------ * STMT void (IL 0x05E...0x061)
N001 ( 1, 1) [000029] ------------ | /--* CNS_INT int -1
N003 ( 5, 4) [000031] -A------R--- \--* ASG int
N002 ( 3, 2) [000030] D------N---- \--* LCL_VAR int V08 tmp1
New refCnts for V08: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000535] in BB18 as useless:
( 1, 3) [000535] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000532] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000534] -A------R--- \--* ASG ref
N002 ( 1, 1) [000533] D------N---- \--* LCL_VAR ref V28 tmp21
New refCnts for V28: refCnt = 4, refCntWtd = 3
top level assign
removing stmt with no side effects
Removing statement [000531] in BB18 as useless:
( 1, 3) [000531] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000528] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000530] -A------R--- \--* ASG ref
N002 ( 1, 1) [000529] D------N---- \--* LCL_VAR ref V26 tmp19
New refCnts for V26: refCnt = 4, refCntWtd = 3.50
top level assign
removing stmt with no side effects
Removing statement [000627] in BB21 as useless:
( 5, 4) [000627] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000624] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000626] -A------R--- \--* ASG int
N002 ( 3, 2) [000622] D------N---- \--* LCL_VAR int V32 tmp25
New refCnts for V32: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000739] in BB24 as useless:
( 5, 4) [000739] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000969] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000970] -A------R--- \--* ASG ref
N002 ( 3, 2) [000968] D------N---- \--* LCL_VAR ref V51 tmp44
New refCnts for V51: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000728] in BB25 as useless:
( 1, 3) [000728] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000725] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000727] -A------R--- \--* ASG ref
N002 ( 1, 1) [000726] D------N---- \--* LCL_VAR ref V36 tmp29
New refCnts for V36: refCnt = 2, refCntWtd = 2
top level assign
removing stmt with no side effects
Removing statement [000137] in BB29 as useless:
( 7, 5) [000137] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000134] ------------ | /--* LCL_VAR ref V09 tmp2
N003 ( 7, 5) [000136] -A------R--- \--* ASG ref
N002 ( 3, 2) [000135] D------N---- \--* LCL_VAR ref V06 loc5
New refCnts for V06: refCnt = 0, refCntWtd = 0
New refCnts for V09: refCnt = 2, refCntWtd = 0
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal)
Inserting phi functions:
Inserting phi definition for ByrefExposed at start of BB29.
Inserting phi definition for GcHeap at start of BB29.
Inserting phi definition for V31 at start of BB25.
Inserting phi definition for ByrefExposed at start of BB25.
Inserting phi definition for GcHeap at start of BB25.
Inserting phi definition for V25 at start of BB18.
Inserting phi definition for ByrefExposed at start of BB16.
Inserting phi definition for GcHeap at start of BB16.
Inserting phi definition for ByrefExposed at start of BB18.
Inserting phi definition for GcHeap at start of BB18.
Inserting phi definition for V19 at start of BB08.
Inserting phi definition for ByrefExposed at start of BB08.
Inserting phi definition for GcHeap at start of BB08.
Inserting phi definition for ByrefExposed at start of BB11.
Inserting phi definition for GcHeap at start of BB11.
*************** In SsaBuilder::RenameVariables()
After fgSsaBuild:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006)
N002 ( 3, 2) [000002] *--XG------- | /--* IND int
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10}
***** BB02, stmt 2
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008)
N004 ( 5, 5) [000012] ------------ \--* JTRUE void
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000011] J------N---- \--* EQ int
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use)
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05}
***** BB03, stmt 3
( 0, 0) [000155] ------------ * STMT void (IL 0x00A... ???)
N006 ( 0, 0) [000788] ------------ | /--* NOP void
N007 ( 0, 0) [000789] ------------ \--* COMMA void
N004 ( 0, 0) [000784] ------------ | /--* NOP void
N005 ( 0, 0) [000785] ------------ \--* COMMA void
N002 ( 0, 0) [000780] ------------ | /--* NOP void
N003 ( 0, 0) [000781] ------------ \--* COMMA void
N001 ( 0, 0) [000777] ------------ \--* NOP void
***** BB03, stmt 4
( 0, 0) [000073] ------------ * STMT void (IL ???... ???)
N006 ( 0, 0) [000803] ------------ | /--* NOP void
N007 ( 0, 0) [000804] ------------ \--* COMMA void
N004 ( 0, 0) [000799] ------------ | /--* NOP void
N005 ( 0, 0) [000800] ------------ \--* COMMA void
N002 ( 0, 0) [000795] ------------ | /--* NOP void
N003 ( 0, 0) [000796] ------------ \--* COMMA void
N001 ( 0, 0) [000792] ------------ \--* NOP void
***** BB03, stmt 5
( 0, 0) [000207] ------------ * STMT void (IL 0x010... ???)
N006 ( 0, 0) [000818] ------------ | /--* NOP void
N007 ( 0, 0) [000819] ------------ \--* COMMA void
N004 ( 0, 0) [000814] ------------ | /--* NOP void
N005 ( 0, 0) [000815] ------------ \--* COMMA void
N002 ( 0, 0) [000810] ------------ | /--* NOP void
N003 ( 0, 0) [000811] ------------ \--* COMMA void
N001 ( 0, 0) [000807] ------------ \--* NOP void
***** BB03, stmt 6
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000266] -A------R--- \--* ASG short
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8 d:3
***** BB03, stmt 7
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40 d:3
***** BB03, stmt 8
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000245] -A------R--- \--* ASG int
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41 d:3
***** BB03, stmt 9
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8 u:3 (last use)
N003 ( 1, 3) [000251] -A------R--- \--* ASG short
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42 d:3
***** BB03, stmt 10
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43 d:3
***** BB03, stmt 11
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???)
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43 u:3 (last use)
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 (last use)
N032 ( 31, 30) [000852] -A---------- \--* COMMA void
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42 u:3 (last use)
N024 ( 8, 8) [000844] -A---------- | /--* ASG short
N022 ( 5, 5) [000842] *------N---- | | \--* IND short
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N025 ( 23, 22) [000845] -A---------- \--* COMMA void
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41 u:3 (last use)
N017 ( 6, 6) [000837] -A---------- | /--* ASG int
N015 ( 4, 4) [000835] *------N---- | | \--* IND int
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N018 ( 15, 14) [000838] -A---------- \--* COMMA void
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40 u:3 (last use)
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N011 ( 9, 8) [000831] -A---------- \--* COMMA void
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45 d:3
***** BB03, stmt 12
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???)
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy)
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000274] ------------ \--* ADDR byref
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 d:3[+0] Fseq[_value]
***** BB03, stmt 13
( 7, 5) [000084] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5 u:3 (last use)
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy)
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4 d:3
***** BB03, stmt 14
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???)
N003 ( 6, 7) [000295] x---G------- | /--* IND struct
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 u:3[+0] Fseq[_value] (last use)
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy)
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11 d:3
***** BB03, stmt 15
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???)
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11 u:3 (last use)
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy)
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000308] ------------ \--* ADDR byref
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 d:3[+0] Fseq[_value]
***** BB03, stmt 16
( 7, 5) [000093] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10 u:3 (last use)
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB03, stmt 17
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???)
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13 d:3
***** BB03, stmt 18
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000339] ------------ \--* JTRUE void
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000338] J------N---- \--* NE int
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13 u:3
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08}
***** BB04, stmt 19
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12 d:5
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 20
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???)
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 u:3
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14 d:3
***** BB05, stmt 21
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14 u:3
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15 d:3
***** BB05, stmt 22
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000357] ------------ \--* JTRUE void
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000356] J------N---- \--* EQ int
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14 u:3 (last use)
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08}
***** BB06, stmt 23
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???)
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15 u:3 (last use)
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16 d:3
***** BB06, stmt 24
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???)
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0
N005 ( 10, 9) [000422] N----------- | /--* NE int
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000420] ------------ | | \--* AND int
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16 u:3 (last use)
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12 d:4
------------ BB07 [022..023), preds={BB05} succs={BB08}
***** BB07, stmt 25
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???)
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 u:3 (last use)
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12 d:3
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11}
***** BB08, stmt 26
( 3, 3) [000999] ------------ * STMT void (IL ???... ???)
N007 ( 3, 3) [000997] ------------ | * PHI bool
N001 ( 0, 0) [001004] ------------ | /--* PHI_ARG bool V19 tmp12 u:5
N002 ( 0, 0) [001002] ------------ | +--* PHI_ARG bool V19 tmp12 u:4
N003 ( 0, 0) [001000] ------------ | \--* PHI_ARG bool V19 tmp12 u:3
N009 ( 3, 3) [000998] -A------R--- \--* ASG bool
N008 ( 1, 1) [000996] D------N---- \--* LCL_VAR bool V19 tmp12 d:6
***** BB08, stmt 27
( 5, 5) [000102] ------------ * STMT void (IL ???... ???)
N004 ( 5, 5) [000101] ------------ \--* JTRUE void
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000100] J------N---- \--* NE int
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12 u:6 (last use)
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28}
***** BB09, stmt 28
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F)
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this u:2
***** BB09, stmt 29
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036)
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy)
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N004 ( 3, 3) [000870] ------------ \--* ADD byref
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this u:2
***** BB09, stmt 30
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???)
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000875] ------------ | /--* ADD byref
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this u:2
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this u:2
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17 d:3
***** BB09, stmt 31
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???)
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
N003 ( 2, 2) [000879] -------N---- \--* ADD byref
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17 u:3
***** BB09, stmt 32
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???)
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N010 ( 3, 3) [000884] ------------ | /--* ADD byref
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 u:3 (last use)
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 u:3
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2
------------ BB10 [04B..067), preds={BB02} succs={BB11}
***** BB10, stmt 33
( 10, 8) [000020] ------------ * STMT void (IL 0x04B...0x051)
N004 ( 6, 5) [000016] *--XG------- | /--* IND struct
N002 ( 1, 1) [000893] ------------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N003 ( 3, 3) [000894] ------------ | | \--* ADD byref
N001 ( 1, 1) [000015] ------------ | | \--* LCL_VAR byref V00 this u:2
N006 ( 10, 8) [000019] -A-XG---R--- \--* ASG struct (copy)
N005 ( 3, 2) [000017] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB10, stmt 34
( 8, 7) [000027] ------------ * STMT void (IL 0x052...0x059)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init)
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000895] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N004 ( 3, 3) [000896] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2
***** BB10, stmt 35
( 5, 4) [000040] ------------ * STMT void (IL ???...0x062)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13}
***** BB11, stmt 36
( 3, 4) [000462] ------------ * STMT void (IL 0x067... ???)
N001 ( 3, 4) [000458] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
N003 ( 3, 4) [000461] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000460] D------N---- \--* LCL_VAR ref V26 tmp19 d:3
***** BB11, stmt 37
( 5, 5) [000467] ------------ * STMT void (IL 0x067... ???)
N004 ( 5, 5) [000466] ------------ \--* JTRUE void
N002 ( 1, 1) [000464] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000465] J------N---- \--* NE int
N001 ( 1, 1) [000463] ------------ \--* LCL_VAR ref V26 tmp19 u:3
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18}
***** BB12, stmt 38
( 3, 4) [000526] ------------ * STMT void (IL 0x067... ???)
N001 ( 3, 4) [000522] ----G------- | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result]
N003 ( 3, 4) [000525] -A--G---R--- \--* ASG int
N002 ( 1, 1) [000524] D------N---- \--* LCL_VAR int V25 tmp18 d:5
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17}
***** BB13, stmt 39
( 18, 18) [000476] ------------ * STMT void (IL 0x067... ???)
N009 ( 18, 18) [000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
N005 ( 1, 1) [000469] ------------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 u:3
N006 ( 3, 10) [000470] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
N011 ( 18, 18) [000475] -AC-G---R--- \--* ASG ref
N010 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp20 d:3
***** BB13, stmt 40
( 1, 3) [000481] ------------ * STMT void (IL 0x067... ???)
N001 ( 1, 1) [000478] ------------ | /--* LCL_VAR ref V27 tmp20 u:3
N003 ( 1, 3) [000480] -A------R--- \--* ASG ref
N002 ( 1, 1) [000479] D------N---- \--* LCL_VAR ref V28 tmp21 d:3
***** BB13, stmt 41
( 5, 5) [000485] ------------ * STMT void (IL 0x067... ???)
N004 ( 5, 5) [000484] ------------ \--* JTRUE void
N002 ( 1, 1) [000482] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000483] J------N---- \--* EQ int
N001 ( 1, 1) [000477] ------------ \--* LCL_VAR ref V27 tmp20 u:3 (last use)
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16}
***** BB14, stmt 42
( 10, 16) [000544] ------------ * STMT void (IL 0x067... ???)
N009 ( 10, 16) [000543] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000556] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000557] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000554] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000555] ---XGO------ \--* AND int
N004 ( 4, 4) [000553] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000903] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000904] -------N---- \--* ADD byref
N001 ( 1, 1) [000506] ------------ \--* LCL_VAR ref V28 tmp21 u:3
------------ BB15 [067..068), preds={BB14} succs={BB16}
***** BB15, stmt 43
( 15, 7) [000550] ------------ * STMT void (IL 0x067... ???)
N005 ( 15, 7) [000548] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000547] ------------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 u:3
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18}
***** BB16, stmt 44
( 4, 4) [000516] ------------ * STMT void (IL 0x067... ???)
N004 ( 4, 4) [000562] ---XG------- | /--* IND int
N002 ( 1, 1) [000907] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000908] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000510] ------------ | | \--* LCL_VAR ref V28 tmp21 u:3 (last use)
N006 ( 4, 4) [000515] -A-XG---R--- \--* ASG int
N005 ( 1, 1) [000514] D------N---- \--* LCL_VAR int V25 tmp18 d:4
------------ BB17 [067..068), preds={BB13} succs={BB18}
***** BB17, stmt 45
( 28, 27) [000503] ------------ * STMT void (IL 0x067... ???)
N012 ( 28, 27) [000499] --CXG------- | /--* CALLV stub int IValueTaskSource`1.GetResult
N006 ( 1, 1) [000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19 u:3 (last use)
N007 ( 4, 5) [000497] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
N008 ( 3, 10) [000909] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11
N014 ( 28, 27) [000502] -ACXG---R--- \--* ASG int
N013 ( 1, 1) [000501] D------N---- \--* LCL_VAR int V25 tmp18 d:3
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19}
***** BB18, stmt 46
( 3, 3) [000995] ------------ * STMT void (IL ???... ???)
N007 ( 3, 3) [000993] ------------ | * PHI int
N001 ( 0, 0) [001010] ------------ | /--* PHI_ARG int V25 tmp18 u:5
N002 ( 0, 0) [001008] ------------ | +--* PHI_ARG int V25 tmp18 u:4
N003 ( 0, 0) [001006] ------------ | \--* PHI_ARG int V25 tmp18 u:3
N009 ( 3, 3) [000994] -A------R--- \--* ASG int
N008 ( 1, 1) [000992] D------N---- \--* LCL_VAR int V25 tmp18 d:6
***** BB18, stmt 47
( 1, 3) [000049] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000527] ------------ | /--* LCL_VAR int V25 tmp18 u:6 (last use)
N003 ( 1, 3) [000048] -A------R--- \--* ASG int
N002 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27}
***** BB19, stmt 48
( 5, 4) [000055] ------------ * STMT void (IL 0x08A...0x08D)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2
***** BB19, stmt 49
( 5, 5) [000593] ------------ * STMT void (IL 0x092... ???)
N004 ( 1, 1) [000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000934] ------------ | /--* ADD byref
N003 ( 1, 1) [000932] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N006 ( 5, 5) [000935] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000931] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000930] ------------ | | \--* LCL_VAR byref V00 this u:2
N008 ( 5, 5) [000592] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000591] D------N---- \--* LCL_VAR byref V29 tmp22 d:3
***** BB19, stmt 50
( 9, 9) [000572] ------------ * STMT void (IL 0x092... ???)
N007 ( 9, 9) [000571] ---XG------- \--* JTRUE void
N005 ( 1, 1) [000569] ------------ | /--* CNS_INT int 0
N006 ( 7, 7) [000570] J--XG--N---- \--* EQ int
N004 ( 5, 5) [000568] *--XG------- \--* IND bool
N002 ( 1, 1) [000937] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
N003 ( 2, 2) [000938] -------N---- \--* ADD byref
N001 ( 1, 1) [000567] ------------ \--* LCL_VAR byref V29 tmp22 u:3
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26}
***** BB20, stmt 51
( 5, 5) [000619] ------------ * STMT void (IL 0x092... ???)
N004 ( 1, 1) [000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N005 ( 3, 3) [000943] ------------ | /--* ADD byref
N003 ( 1, 1) [000941] ------------ | | \--* LCL_VAR byref V29 tmp22 u:3 (last use)
N006 ( 5, 5) [000944] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000940] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000939] ------------ | | \--* LCL_VAR byref V29 tmp22 u:3
N008 ( 5, 5) [000618] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23 d:3
***** BB20, stmt 52
( 7, 6) [000601] ------------ * STMT void (IL 0x092... ???)
N005 ( 7, 6) [000600] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000598] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000599] J--XG--N---- \--* NE int
N002 ( 3, 2) [000597] *--XG------- \--* IND ref
N001 ( 1, 1) [000596] ------------ \--* LCL_VAR byref V30 tmp23 u:3
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24}
***** BB21, stmt 53
( 1, 3) [000670] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000609] ------------ | /--* LCL_VAR int V02 loc1 u:3
N003 ( 1, 3) [000669] -A------R--- \--* ASG int
N002 ( 1, 1) [000668] D------N---- \--* LCL_VAR int V34 tmp27 d:3
***** BB21, stmt 54
( 5, 5) [000675] ------------ * STMT void (IL 0x092... ???)
N004 ( 5, 5) [000674] ------------ \--* JTRUE void
N002 ( 1, 1) [000672] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000673] J------N---- \--* GE int
N001 ( 1, 1) [000671] ------------ \--* LCL_VAR int V02 loc1 u:3
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24}
***** BB22, stmt 55
( 5, 5) [000697] ------------ * STMT void (IL 0x092... ???)
N004 ( 5, 5) [000696] ------------ \--* JTRUE void
N002 ( 1, 1) [000694] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000695] J------N---- \--* LT int
N001 ( 1, 1) [000693] ------------ \--* LCL_VAR int V34 tmp27 u:3
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25}
***** BB23, stmt 56
( 41, 55) [000713] ------------ * STMT void (IL 0x092... ???)
N031 ( 8, 9) [000710] a---G------- | /--* IND ref
N029 ( 1, 1) [000959] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000960] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000956] -------N---- | | | /--* CNS_INT long 3
N027 ( 5, 6) [000957] -------N---- | | | /--* LSH long
N025 ( 4, 5) [000955] ------------ | | | | \--* CAST long <- int
N023 ( 1, 1) [000952] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000950] ------------ | | | | \--* ADD int
N022 ( 1, 1) [000951] i----------- | | | | \--* LCL_VAR int V34 tmp27 u:3 (last use)
N028 ( 6, 7) [000958] -------N---- | | \--* ADD byref
N021 ( 1, 1) [000949] ------------ | | \--* LCL_VAR ref V53 tmp46 u:3 (last use)
N032 ( 18, 22) [000961] ---XG------- | /--* COMMA ref
N020 ( 10, 13) [000954] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000708] ------------ | | | /--* CNS_INT int 1
N017 ( 3, 3) [000709] ------------ | | +--* ADD int
N015 ( 1, 1) [000707] ------------ | | | \--* LCL_VAR int V34 tmp27 u:3
N019 ( 3, 3) [000953] ---X-------- | | \--* ARR_LENGTH int
N018 ( 1, 1) [000948] ------------ | | \--* LCL_VAR ref V53 tmp46 u:3
N033 ( 41, 55) [000962] -ACXG------- | /--* COMMA ref
N011 ( 5, 12) [000699] x---G------- | | | /--* IND ref
N010 ( 3, 10) [000967] ------------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000706] --CXG------- | | | /--* COMMA ref
N009 ( 18, 21) [000705] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000701] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000702] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000947] -ACXG---R--- | | \--* ASG ref
N013 ( 1, 1) [000946] D------N---- | | \--* LCL_VAR ref V53 tmp46 d:3
N035 ( 41, 55) [000712] -ACXG---R--- \--* ASG ref
N034 ( 1, 1) [000711] D------N---- \--* LCL_VAR ref V36 tmp29 d:3
***** BB23, stmt 57
( 1, 3) [000723] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000714] ------------ | /--* LCL_VAR ref V36 tmp29 u:3 (last use)
N003 ( 1, 3) [000722] -A------R--- \--* ASG ref
N002 ( 1, 1) [000721] D------N---- \--* LCL_VAR ref V31 tmp24 d:3
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25}
***** BB24, stmt 58
( 17, 16) [000682] ------------ * STMT void (IL 0x092... ???)
N005 ( 17, 16) [000679] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000678] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token
N007 ( 17, 16) [000681] -AC-----R--- \--* ASG ref
N006 ( 1, 1) [000680] D------N---- \--* LCL_VAR ref V35 tmp28 d:3
***** BB24, stmt 59
( 5, 4) [000760] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000757] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000759] -A------R--- \--* ASG int
N002 ( 3, 2) [000758] D------N---- \--* LCL_VAR int V38 tmp31 d:3
***** BB24, stmt 60
( 10, 12) [000771] ------------ * STMT void (IL 0x092... ???)
N002 ( 1, 4) [000766] ------------ | /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000768] ------------ | /--* OR int
N001 ( 3, 2) [000767] ------------ | | \--* LCL_VAR int V38 tmp31 u:3 (last use)
N008 ( 10, 12) [000770] -A-XGO--R--- \--* ASG int
N007 ( 4, 4) [000769] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000971] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000972] -------N---- \--* ADD byref
N004 ( 1, 1) [000765] ------------ \--* LCL_VAR ref V35 tmp28 u:3
***** BB24, stmt 61
( 6, 6) [000751] ------------ * STMT void (IL 0x092... ???)
N005 ( 1, 1) [000677] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use)
N006 ( 6, 6) [000750] -A-XG------- \--* ASG int
N004 ( 4, 4) [000749] ---XG--N---- \--* IND int
N002 ( 1, 1) [000973] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000974] -------N---- \--* ADD byref
N001 ( 1, 1) [000748] ------------ \--* LCL_VAR ref V35 tmp28 u:3
***** BB24, stmt 62
( 1, 3) [000690] ------------ * STMT void (IL 0x092... ???)
N001 ( 1, 1) [000687] ------------ | /--* LCL_VAR ref V35 tmp28 u:3 (last use)
N003 ( 1, 3) [000689] -A------R--- \--* ASG ref
N002 ( 1, 1) [000688] D------N---- \--* LCL_VAR ref V31 tmp24 d:4
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28}
***** BB25, stmt 63
( 2, 3) [000991] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000989] ------------ | * PHI ref
N001 ( 0, 0) [001014] ------------ | /--* PHI_ARG ref V31 tmp24 u:4
N002 ( 0, 0) [001012] ------------ | \--* PHI_ARG ref V31 tmp24 u:3
N007 ( 2, 3) [000990] -A------R--- \--* ASG ref
N006 ( 1, 1) [000988] D------N---- \--* LCL_VAR ref V31 tmp24 d:5
***** BB25, stmt 64
( 5, 4) [000616] ------------ * STMT void (IL 0x092... ???)
N003 ( 1, 1) [000724] ------------ | /--* LCL_VAR ref V31 tmp24 u:5 (last use)
N004 ( 5, 4) [000615] -A-XG------- \--* ASG ref
N002 ( 3, 2) [000614] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000608] ------------ \--* LCL_VAR byref V30 tmp23 u:3 (last use)
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28}
***** BB26, stmt 65
( 16, 10) [000606] ------------ * STMT void (IL 0x092... ???)
N008 ( 16, 10) [000604] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 u:3 (last use)
N005 ( 1, 1) [000587] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use)
------------ BB27 [092..093), preds={BB19} succs={BB28}
***** BB27, stmt 66
( 5, 4) [000577] ------------ * STMT void (IL 0x092... ???)
N003 ( 1, 1) [000059] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use)
N004 ( 5, 4) [000576] -A-XG------- \--* ASG int
N002 ( 3, 2) [000575] *--XG--N---- \--* IND int
N001 ( 1, 1) [000574] ------------ \--* LCL_VAR byref V29 tmp22 u:3
***** BB27, stmt 67
( 7, 7) [000582] ------------ * STMT void (IL 0x092... ???)
N005 ( 1, 1) [000579] ------------ | /--* CNS_INT int 1
N006 ( 7, 7) [000581] -A-XG------- \--* ASG bool
N004 ( 5, 5) [000580] *--XG--N---- \--* IND bool
N002 ( 1, 1) [000979] ------------ | /--* CNS_INT long 4 field offset Fseq[_haveResult]
N003 ( 2, 2) [000980] -------N---- \--* ADD byref
N001 ( 1, 1) [000578] ------------ \--* LCL_VAR byref V29 tmp22 u:3 (last use)
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={}
***** BB28, stmt 68
( 0, 0) [000065] ------------ * STMT void (IL 0x09E...0x09E)
N001 ( 0, 0) [000064] ------------ \--* RETURN void
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28}
***** BB29, stmt 69
( 5, 4) [000133] ------------ * STMT void (IL 0x071...0x071)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref
N003 ( 5, 4) [000132] -A---O--R--- \--* ASG ref
N002 ( 3, 2) [000131] D------N---- \--* LCL_VAR ref V09 tmp2 d:3
***** BB29, stmt 70
( 5, 4) [000142] ------------ * STMT void (IL 0x073...0x076)
N003 ( 1, 1) [000139] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000141] -A-XG------- \--* ASG int
N002 ( 3, 2) [000140] *--XG--N---- \--* IND int
N001 ( 1, 1) [000138] ------------ \--* LCL_VAR byref V00 this u:2
***** BB29, stmt 71
( 22, 15) [000149] ------------ * STMT void (IL 0x07B...0x088)
N013 ( 22, 15) [000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000923] ------------ | /--* ADD byref
N006 ( 1, 1) [000921] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N009 ( 5, 5) [000924] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000920] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000919] ------------ | \--* LCL_VAR byref V00 this u:2
N010 ( 3, 2) [000146] ------------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 u:3 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
New refCnts for V29: refCnt = 5, refCntWtd = 10
New refCnts for V30: refCnt = 5, refCntWtd = 10
New refCnts for V29: refCnt = 6, refCntWtd = 12
optFoldNullCheck morphed tree:
N002 ( 1, 1) [000942] ------------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N003 ( 3, 3) [000943] ------------ /--* ADD byref
N001 ( 1, 1) [000941] ------------ | \--* LCL_VAR byref V29 tmp22 u:3 (last use)
N005 ( 3, 3) [000618] -A--G---R--- * ASG byref
N004 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23 d:3
After optEarlyProp:
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..007) i label target
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe
BB27 [0043] 1 BB19 1 [092..093) i label target
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006)
N002 ( 3, 2) [000002] *--XG------- | /--* IND int
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10}
***** BB02, stmt 2
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008)
N004 ( 5, 5) [000012] ------------ \--* JTRUE void
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000011] J------N---- \--* EQ int
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use)
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05}
***** BB03, stmt 3
( 0, 0) [000155] ------------ * STMT void (IL 0x00A... ???)
N006 ( 0, 0) [000788] ------------ | /--* NOP void
N007 ( 0, 0) [000789] ------------ \--* COMMA void
N004 ( 0, 0) [000784] ------------ | /--* NOP void
N005 ( 0, 0) [000785] ------------ \--* COMMA void
N002 ( 0, 0) [000780] ------------ | /--* NOP void
N003 ( 0, 0) [000781] ------------ \--* COMMA void
N001 ( 0, 0) [000777] ------------ \--* NOP void
***** BB03, stmt 4
( 0, 0) [000073] ------------ * STMT void (IL ???... ???)
N006 ( 0, 0) [000803] ------------ | /--* NOP void
N007 ( 0, 0) [000804] ------------ \--* COMMA void
N004 ( 0, 0) [000799] ------------ | /--* NOP void
N005 ( 0, 0) [000800] ------------ \--* COMMA void
N002 ( 0, 0) [000795] ------------ | /--* NOP void
N003 ( 0, 0) [000796] ------------ \--* COMMA void
N001 ( 0, 0) [000792] ------------ \--* NOP void
***** BB03, stmt 5
( 0, 0) [000207] ------------ * STMT void (IL 0x010... ???)
N006 ( 0, 0) [000818] ------------ | /--* NOP void
N007 ( 0, 0) [000819] ------------ \--* COMMA void
N004 ( 0, 0) [000814] ------------ | /--* NOP void
N005 ( 0, 0) [000815] ------------ \--* COMMA void
N002 ( 0, 0) [000810] ------------ | /--* NOP void
N003 ( 0, 0) [000811] ------------ \--* COMMA void
N001 ( 0, 0) [000807] ------------ \--* NOP void
***** BB03, stmt 6
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000266] -A------R--- \--* ASG short
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8 d:3
***** BB03, stmt 7
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40 d:3
***** BB03, stmt 8
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000245] -A------R--- \--* ASG int
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41 d:3
***** BB03, stmt 9
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8 u:3 (last use)
N003 ( 1, 3) [000251] -A------R--- \--* ASG short
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42 d:3
***** BB03, stmt 10
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???)
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43 d:3
***** BB03, stmt 11
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???)
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43 u:3 (last use)
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext]
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 (last use)
N032 ( 31, 30) [000852] -A---------- \--* COMMA void
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42 u:3 (last use)
N024 ( 8, 8) [000844] -A---------- | /--* ASG short
N022 ( 5, 5) [000842] *------N---- | | \--* IND short
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token]
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N025 ( 23, 22) [000845] -A---------- \--* COMMA void
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41 u:3 (last use)
N017 ( 6, 6) [000837] -A---------- | /--* ASG int
N015 ( 4, 4) [000835] *------N---- | | \--* IND int
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result]
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N018 ( 15, 14) [000838] -A---------- \--* COMMA void
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40 u:3 (last use)
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj]
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3
N011 ( 9, 8) [000831] -A---------- \--* COMMA void
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45 d:3
***** BB03, stmt 12
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???)
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy)
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000274] ------------ \--* ADDR byref
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 d:3[+0] Fseq[_value]
***** BB03, stmt 13
( 7, 5) [000084] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5 u:3 (last use)
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy)
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4 d:3
***** BB03, stmt 14
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???)
N003 ( 6, 7) [000295] x---G------- | /--* IND struct
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 u:3[+0] Fseq[_value] (last use)
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy)
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11 d:3
***** BB03, stmt 15
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???)
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11 u:3 (last use)
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy)
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct
N003 ( 3, 5) [000308] ------------ \--* ADDR byref
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 d:3[+0] Fseq[_value]
***** BB03, stmt 16
( 7, 5) [000093] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10 u:3 (last use)
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2
***** BB03, stmt 17
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???)
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj]
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13 d:3
***** BB03, stmt 18
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000339] ------------ \--* JTRUE void
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000338] J------N---- \--* NE int
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13 u:3
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08}
***** BB04, stmt 19
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12 d:5
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07}
***** BB05, stmt 20
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???)
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 u:3
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14 d:3
***** BB05, stmt 21
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???)
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14 u:3
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15 d:3
***** BB05, stmt 22
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???)
N004 ( 5, 5) [000357] ------------ \--* JTRUE void
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null
N003 ( 3, 3) [000356] J------N---- \--* EQ int
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14 u:3 (last use)
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08}
***** BB06, stmt 23
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???)
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15 u:3 (last use)
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16 d:3
***** BB06, stmt 24
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???)
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0
N005 ( 10, 9) [000422] N----------- | /--* NE int
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000420] ------------ | | \--* AND int
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16 u:3 (last use)
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12 d:4
------------ BB07 [022..023), preds={BB05} succs={BB08}
***** BB07, stmt 25
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???)
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 u:3 (last use)
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token]
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12 d:3
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11}
***** BB08, stmt 26
( 3, 3) [000999] ------------ * STMT void (IL ???... ???)
N007 ( 3, 3) [000997] ------------ | * PHI bool
N001 ( 0, 0) [001004] ------------ | /--* PHI_ARG bool V19 tmp12 u:5
N002 ( 0, 0) [001002] ------------ | +--* PHI_ARG bool V19 tmp12 u:4
N003 ( 0, 0) [001000] ------------ | \--* PHI_ARG bool V19 tmp12 u:3
N009 ( 3, 3) [000998] -A------R--- \--* ASG bool
N008 ( 1, 1) [000996] D------N---- \--* LCL_VAR bool V19 tmp12 d:6
***** BB08, stmt 27
( 5, 5) [000102] ------------ * STMT void (IL ???... ???)
N004 ( 5, 5) [000101] ------------ \--* JTRUE void
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N003 ( 3, 3) [000100] J------N---- \--* NE int
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12 u:6 (last use)
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28}
***** BB09, stmt 28
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F)
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this u:2
***** BB09, stmt 29
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036)
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy)
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1]
N004 ( 3, 3) [000870] ------------ \--* ADD byref
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this u:2
***** BB09, stmt 30
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???)
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000875] ------------ | /--* ADD byref
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this u:2
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this u:2
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17 d:3
***** BB09, stmt 31
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???)
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder]
N003 ( 2, 2) [000879] -------N---- \--* ADD byref
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17 u:3
***** BB09, stmt 32
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???)
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder]
N010 ( 3, 3) [000884] ------------ | /--* ADD byref
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 u:3 (last use)
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 u:3
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment