Skip to content

Instantly share code, notes, and snippets.

@benaadams
Created June 23, 2018 05:46
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/4820895dda5234a097903bd14a4c535f to your computer and use it in GitHub Desktop.
Save benaadams/4820895dda5234a097903bd14a4c535f to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
****** START compiling <Task1>d__1:MoveNext():this (MethodHash=39840edc)
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 3d brfalse.s 61 (IL_0047)
IL_000a 28 03 00 00 06 call 0x6000003
IL_000f 16 ldc.i4.0
IL_0010 6f 1b 00 00 0a callvirt 0xA00001B
IL_0015 0d stloc.3
IL_0016 12 03 ldloca.s 0x3
IL_0018 28 1c 00 00 0a call 0xA00001C
IL_001d 0c stloc.2
IL_001e 12 02 ldloca.s 0x2
IL_0020 28 1d 00 00 0a call 0xA00001D
IL_0025 2d 3c brtrue.s 60 (IL_0063)
IL_0027 02 ldarg.0
IL_0028 16 ldc.i4.0
IL_0029 25 dup
IL_002a 0a stloc.0
IL_002b 7d 09 00 00 04 stfld 0x4000009
IL_0030 02 ldarg.0
IL_0031 08 ldloc.2
IL_0032 7d 0b 00 00 04 stfld 0x400000B
IL_0037 02 ldarg.0
IL_0038 7c 0a 00 00 04 ldflda 0x400000A
IL_003d 12 02 ldloca.s 0x2
IL_003f 02 ldarg.0
IL_0040 28 05 00 00 2b call 0x2B000005
IL_0045 de 53 leave.s 83 (IL_009a)
IL_0047 02 ldarg.0
IL_0048 7b 0b 00 00 04 ldfld 0x400000B
IL_004d 0c stloc.2
IL_004e 02 ldarg.0
IL_004f 7c 0b 00 00 04 ldflda 0x400000B
IL_0054 fe 15 05 00 00 1b initobj 0x1B000005
IL_005a 02 ldarg.0
IL_005b 15 ldc.i4.m1
IL_005c 25 dup
IL_005d 0a stloc.0
IL_005e 7d 09 00 00 04 stfld 0x4000009
IL_0063 12 02 ldloca.s 0x2
IL_0065 28 1e 00 00 0a call 0xA00001E
IL_006a 0b stloc.1
IL_006b de 19 leave.s 25 (IL_0086)
IL_006d 13 04 stloc.s 0x4
IL_006f 02 ldarg.0
IL_0070 1f fe ldc.i4.s 0xFFFFFFFE
IL_0072 7d 09 00 00 04 stfld 0x4000009
IL_0077 02 ldarg.0
IL_0078 7c 0a 00 00 04 ldflda 0x400000A
IL_007d 11 04 ldloc.s 0x4
IL_007f 28 18 00 00 0a call 0xA000018
IL_0084 de 14 leave.s 20 (IL_009a)
IL_0086 02 ldarg.0
IL_0087 1f fe ldc.i4.s 0xFFFFFFFE
IL_0089 7d 09 00 00 04 stfld 0x4000009
IL_008e 02 ldarg.0
IL_008f 7c 0a 00 00 04 ldflda 0x400000A
IL_0094 07 ldloc.1
IL_0095 28 19 00 00 0a call 0xA000019
IL_009a 2a ret
Set preferred register for V00 to [rcx]
'this' passed in register rcx
lvaSetClass: setting class for V05 to (00007FFC60CEA6B0) Exception
lvaGrabTemp returning 6 (V06 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 ref class-hnd
; V06 OutArgs lclBlk (na)
*************** In compInitDebuggingInfo() for <Task1>d__1:MoveNext():this
getVars() returned cVars = 0, extendOthers = true
info.compVarScopesCount = 6
VarNum LVNum Name Beg End
0: 00h 00h V00 this 000h 09Bh
1: 01h 01h V01 loc0 000h 09Bh
2: 02h 02h V02 loc1 000h 09Bh
3: 03h 03h V03 loc2 000h 09Bh
4: 04h 04h V04 loc3 000h 09Bh
5: 05h 05h V05 loc4 000h 09Bh
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for <Task1>d__1:MoveNext():this
Jump targets:
IL_0007 addr
IL_0047
IL_0063
IL_006d addr
IL_0086
IL_009a 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..027)
New Basic Block BB04 [0003] created.
BB04 [027..047)
New Basic Block BB05 [0004] created.
BB05 [047..063)
New Basic Block BB06 [0005] created.
BB06 [063..06D)
New Basic Block BB07 [0006] created.
BB07 [06D..086)
New Basic Block BB08 [0007] created.
BB08 [086..09A)
New Basic Block BB09 [0008] created.
BB09 [09A..09B)
EH clause #0:
Flags: 0x0 (catch)
TryOffset: 0x7
TryLength: 0x66
HandlerOffset: 0x6d
HandlerLength: 0x19
ClassToken: 0x1000015
*************** After fgFindBasicBlocks() has created the EH table
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
*************** 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..027)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [027..047)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [047..063) T0
BB06 [0005] 2 0 1 [063..06D)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A)
BB09 [0008] 3 1 [09A..09B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
No EH normalization performed.
IL Code Size,Instr 155, 61, Basic Block count 9, Local Variable Num,Ref count 7, 28 for method <Task1>d__1:MoveNext():this
OPTIONS: opts.MinOpts() == false
Basic block list for '<Task1>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..027)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [027..047)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [047..063) T0
BB06 [0005] 2 0 1 [063..06D)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A)
BB09 [0008] 3 1 [09A..09B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for <Task1>d__1:MoveNext():this
impImportBlockPending for BB01
Importing BB01 (PC=000) of '<Task1>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 '<Task1>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=071) of '<Task1>d__1:MoveNext():this'
[ 0] 71 (0x047) ldarg.0
[ 1] 72 (0x048) ldfld 0400000B
[ 1] 77 (0x04d) stloc.2
[000020] ------------ * STMT void (IL 0x047... ???)
[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] 78 (0x04e) ldarg.0
[ 1] 79 (0x04f) ldflda 0400000B
[ 1] 84 (0x054) initobj 1B000005
[000027] ------------ * STMT void (IL 0x04E... ???)
[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] 90 (0x05a) ldarg.0
[ 1] 91 (0x05b) ldc.i4.m1 -1
[ 2] 92 (0x05c) dup
lvaGrabTemp returning 7 (V07 tmp1) called for dup spill.
[000032] ------------ * STMT void (IL 0x05A... ???)
[000029] ------------ | /--* CNS_INT int -1
[000031] -A---------- \--* ASG int
[000030] D------N---- \--* LCL_VAR int V07 tmp1
[ 3] 93 (0x05d) stloc.0
[000037] ------------ * STMT void (IL ???... ???)
[000034] ------------ | /--* LCL_VAR int V07 tmp1
[000036] -A---------- \--* ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
[ 2] 94 (0x05e) stfld 04000009
[000040] ------------ * STMT void (IL ???... ???)
[000033] ------------ | /--* LCL_VAR int V07 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=099) of '<Task1>d__1:MoveNext():this'
[ 0] 99 (0x063) ldloca.s 2
[ 1] 101 (0x065) call 0A00001E
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0
[000045] ------------ * STMT void (IL 0x063... ???)
[000044] I-C-G------- \--* CALL int ConfiguredTaskAwaiter.GetResult (exactContextHnd=0x00007FFC60D227B9)
[000043] L----------- this in rcx \--* ADDR byref
[000042] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 106 (0x06a) 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] 107 (0x06b) leave.s 0086
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..027)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [027..047)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (leave ) T0 }
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A)
BB09 [0008] 3 1 [09A..09B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0
BB04 [0003] 1 0 1 [027..047)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 }
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A)
BB09 [0008] 3 1 [09A..09B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
impImportBlockPending for BB08
Importing BB08 (PC=134) of '<Task1>d__1:MoveNext():this'
[ 0] 134 (0x086) ldarg.0
[ 1] 135 (0x087) ldc.i4.s -2
[ 2] 137 (0x089) stfld 04000009
[000055] ------------ * STMT void (IL 0x086... ???)
[000052] ------------ | /--* CNS_INT int -2
[000054] -A-XG------- \--* ASG int
[000053] ---XG--N---- \--* FIELD int <>1__state
[000051] ------------ \--* LCL_VAR byref V00 this
[ 0] 142 (0x08e) ldarg.0
[ 1] 143 (0x08f) ldflda 0400000A
[ 1] 148 (0x094) ldloc.1
[ 2] 149 (0x095) call 0A000019 (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 0x08E... ???)
[000060] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC60CF5471)
[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=154) of '<Task1>d__1:MoveNext():this'
[ 0] 154 (0x09a) ret
[000065] ------------ * STMT void (IL 0x09A... ???)
[000064] ------------ \--* RETURN void
Importing BB03 (PC=010) of '<Task1>d__1:MoveNext():this'
[ 0] 10 (0x00a) call 06000003
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0
[000068] ------------ * STMT void (IL 0x00A... ???)
[000067] I-C-G------- \--* CALL ref Program.Task2 (exactContextHnd=0x00007FFC0D5C5491)
[ 1] 15 (0x00f) ldc.i4.0 0
[ 2] 16 (0x010) callvirt 0A00001B
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is struct, structSize is 16
[000073] ------------ * STMT void (IL ???... ???)
[000071] I-C-G------- \--* CALL nullcheck struct Task`1.ConfigureAwait (exactContextHnd=0x00007FFC60CEFBD9)
[000069] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000067])
[000070] ------------ arg1 \--* CNS_INT int 0
[ 1] 21 (0x015) stloc.3
[000078] ------------ * STMT void (IL ???... ???)
[000074] --C--------- \--* RET_EXPR void (inl return from call [000071])
[ 0] 22 (0x016) ldloca.s 3
[ 1] 24 (0x018) call 0A00001C
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16
[000082] ------------ * STMT void (IL 0x016... ???)
[000081] I-C-G------- \--* CALL struct ConfiguredTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC60D22129)
[000080] L----------- this in rcx \--* ADDR byref
[000079] ------------ \--* LCL_VAR struct V04 loc3
[ 1] 29 (0x01d) stloc.2
[000087] ------------ * STMT void (IL ???... ???)
[000083] --C--------- \--* RET_EXPR void (inl return from call [000081])
[ 0] 30 (0x01e) ldloca.s 2
[ 1] 32 (0x020) call 0A00001D
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000091] ------------ * STMT void (IL 0x01E... ???)
[000090] I-C-G------- \--* CALL int ConfiguredTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC60D227B9)
[000089] L----------- this in rcx \--* ADDR byref
[000088] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 37 (0x025) brtrue.s
[000096] ------------ * STMT void (IL ???... ???)
[000095] --C--------- \--* JTRUE void
[000093] ------------ | /--* CNS_INT int 0
[000094] --C--------- \--* NE int
[000092] --C--------- \--* RET_EXPR int (inl return from call [000090])
impImportBlockPending for BB04
impImportBlockPending for BB06
Importing BB04 (PC=039) of '<Task1>d__1:MoveNext():this'
[ 0] 39 (0x027) ldarg.0
[ 1] 40 (0x028) ldc.i4.0 0
[ 2] 41 (0x029) dup
[ 3] 42 (0x02a) stloc.0
[000103] ------------ * STMT void (IL 0x027... ???)
[000100] ------------ | /--* CNS_INT int 0
[000102] -A---------- \--* ASG int
[000101] D------N---- \--* LCL_VAR int V01 loc0
[ 2] 43 (0x02b) stfld 04000009
[000106] ------------ * STMT void (IL ???... ???)
[000099] ------------ | /--* CNS_INT int 0
[000105] -A-XG------- \--* ASG int
[000104] ---XG--N---- \--* FIELD int <>1__state
[000098] ------------ \--* LCL_VAR byref V00 this
[ 0] 48 (0x030) ldarg.0
[ 1] 49 (0x031) ldloc.2
[ 2] 50 (0x032) stfld 0400000B
[000113] ------------ * STMT void (IL 0x030... ???)
[000108] ------------ | /--* LCL_VAR struct V03 loc2
[000112] -A-XG---R--- \--* ASG struct (copy)
[000111] ---XG------- \--* OBJ(16) struct
[000110] ---XG------- \--* ADDR byref
[000109] ---XG------- \--* FIELD struct <>u__1
[000107] ------------ \--* LCL_VAR byref V00 this
[ 0] 55 (0x037) ldarg.0
[ 1] 56 (0x038) ldflda 0400000A
[ 1] 61 (0x03d) ldloca.s 2
[ 2] 63 (0x03f) ldarg.0
[ 3] 64 (0x040) call 2B000005
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 '<Task1>d__1:MoveNext():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'
[000123] ------------ * STMT void (IL 0x037... ???)
[000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000116] ---XG------- this in rcx +--* ADDR byref
[000115] ---XG------- | \--* FIELD struct <>t__builder
[000114] ------------ | \--* LCL_VAR byref V00 this
[000118] L----------- arg1 +--* ADDR byref
[000117] ------------ | \--* LCL_VAR struct V03 loc2
[000119] ------------ arg2 \--* LCL_VAR byref V00 this
[ 0] 69 (0x045) leave.s 009A
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (leave ) T0
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A) i
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A) i
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
impImportBlockPending for BB09
Importing BB07 (PC=109) of '<Task1>d__1:MoveNext():this'
lvaGrabTemp returning 8 (V08 tmp2) called for impSpillSpecialSideEff.
[000127] ------------ * STMT void (IL 0x06D... ???)
[000007] -----O------ | /--* CATCH_ARG ref
[000126] -A---O------ \--* ASG ref
[000125] D------N---- \--* LCL_VAR ref V08 tmp2
lvaSetClass: setting class for V08 to (00007FFC60CEA6B0) Exception
[ 1] 109 (0x06d) stloc.s 4
[000131] ------------ * STMT void (IL ???... ???)
[000128] ------------ | /--* LCL_VAR ref V08 tmp2
[000130] -A---------- \--* ASG ref
[000129] D------N---- \--* LCL_VAR ref V05 loc4
[ 0] 111 (0x06f) ldarg.0
[ 1] 112 (0x070) ldc.i4.s -2
[ 2] 114 (0x072) stfld 04000009
[000136] ------------ * STMT void (IL 0x06F... ???)
[000133] ------------ | /--* CNS_INT int -2
[000135] -A-XG------- \--* ASG int
[000134] ---XG--N---- \--* FIELD int <>1__state
[000132] ------------ \--* LCL_VAR byref V00 this
[ 0] 119 (0x077) ldarg.0
[ 1] 120 (0x078) ldflda 0400000A
[ 1] 125 (0x07d) ldloc.s 4
[ 2] 127 (0x07f) call 0A000018
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 '<Task1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:SetException(ref):this'
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'within catch region'
[000143] ------------ * STMT void (IL 0x077... ???)
[000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException
[000139] ---XG------- this in rcx +--* ADDR byref
[000138] ---XG------- | \--* FIELD struct <>t__builder
[000137] ------------ | \--* LCL_VAR byref V00 this
[000140] ------------ arg1 \--* LCL_VAR ref V05 loc4
[ 0] 132 (0x084) leave.s 009A
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [06D..086)-> BB09 (leave ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A) i
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep label target
BB08 [0007] 1 1 [086..09A) i
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB06 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D)-> BB08 (always) T0 } i
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB09 [0008] 3 1 [09A..09B) (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...0x015)
[000067] I-C-G------- \--* CALL ref Program.Task2 (exactContextHnd=0x00007FFC0D5C5491)
INLINER: inlineInfo.tokenLookupContextHandle for Program:Task2():ref set to 0x00007FFC0D5C5491:
Invoking compiler for the inlinee method Program:Task2():ref :
IL to import:
IL_0000 12 00 ldloca.s 0x0
IL_0002 28 10 00 00 0a call 0xA000010
IL_0007 7d 0d 00 00 04 stfld 0x400000D
IL_000c 12 00 ldloca.s 0x0
IL_000e 15 ldc.i4.m1
IL_000f 7d 0c 00 00 04 stfld 0x400000C
IL_0014 06 ldloc.0
IL_0015 7b 0d 00 00 04 ldfld 0x400000D
IL_001a 0b stloc.1
IL_001b 12 01 ldloca.s 0x1
IL_001d 12 00 ldloca.s 0x0
IL_001f 28 03 00 00 2b call 0x2B000003
IL_0024 12 00 ldloca.s 0x0
IL_0026 7c 0d 00 00 04 ldflda 0x400000D
IL_002b 28 12 00 00 0a call 0xA000012
IL_0030 2a ret
INLINER impTokenLookupContextHandle for Program:Task2():ref is 0x00007FFC0D5C5491.
*************** In fgFindBasicBlocks() for Program:Task2():ref
weight= 61 : state 19 [ ldloca.s ]
weight= 79 : state 40 [ call ]
weight= 31 : state 111 [ stfld ]
weight= 61 : state 19 [ ldloca.s ]
weight= 22 : state 22 [ ldc.i4.m1 ]
weight= 31 : state 111 [ stfld ]
weight= 12 : state 7 [ ldloc.0 ]
weight= 18 : state 109 [ ldfld ]
weight= 34 : state 12 [ stloc.1 ]
weight= 61 : state 19 [ ldloca.s ]
weight= 61 : state 19 [ ldloca.s ]
weight= 79 : state 40 [ call ]
weight= 61 : state 19 [ ldloca.s ]
weight= 17 : state 110 [ ldflda ]
weight= 79 : state 40 [ call ]
weight= 19 : state 42 [ ret ]
Inline candidate looks like a wrapper method. Multiplier increased to 1.
Inline candidate callsite is boring. Multiplier increased to 2.3.
calleeNativeSizeEstimate=726
callsiteNativeSizeEstimate=55
benefit multiplier=2.3
threshold=126
Native estimate for function size exceeds threshold for inlining 72.6 > 12.6 (multiplier = 2.3)
Inline expansion aborted, inline not profitable
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for '<Task1>d__1:MoveNext():this' calling 'Program:Task2():ref'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement [000073] in BB03:
[000073] ------------ * STMT void (IL ???... ???)
[000071] I-C-G------- \--* CALL nullcheck void Task`1.ConfigureAwait (exactContextHnd=0x00007FFC60CEFBD9)
[000069] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000067])
[000076] L----------- arg1 +--* ADDR byref
[000075] ------------ | \--* LCL_VAR struct V04 loc3
[000070] ------------ arg2 \--* CNS_INT int 0
thisArg: has global refs has side effects
[000067] --C-G------- * CALL ref Program.Task2
Argument #1: is a constant
[000070] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000145] ------------ * CAST int <- bool <- int
[000070] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000145] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:ConfigureAwait(bool):struct:this set to 0x00007FFC60CEFBD9:
Invoking compiler for the inlinee method Task`1:ConfigureAwait(bool):struct:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 73 9d 07 00 0a newobj 0xA00079D
IL_0007 2a ret
INLINER impTokenLookupContextHandle for Task`1:ConfigureAwait(bool):struct:this is 0x00007FFC60CEFBD9.
*************** In fgFindBasicBlocks() for Task`1:ConfigureAwait(bool):struct:this
Jump targets:
none
New Basic Block BB10 [0009] created.
BB10 [000..008)
Basic block list for 'Task`1:ConfigureAwait(bool):struct:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB10 [0009] 1 1 [000..008) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task`1:ConfigureAwait(bool):struct:this
impImportBlockPending for BB10
Importing BB10 (PC=000) of 'Task`1:ConfigureAwait(bool):struct:this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 9 (V09 tmp3) called for Inlining Arg.
lvaSetClass: setting class for V09 to (00007FFC60CEFBD8) Task`1
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) newobj
lvaGrabTemp returning 10 (V10 tmp4) called for NewObj constructor temp.
[000152] ------------ * STMT void
[000150] ------------ | /--* CNS_INT int 0
[000151] IA------R--- \--* ASG struct (init)
[000149] D------N---- \--* LCL_VAR struct V10 tmp4
0A00079D
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000158] ------------ * STMT void
[000155] I-C-G------- \--* CALL void ConfiguredTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC60D22129)
[000154] L----------- this in rcx +--* ADDR byref
[000153] ------------ | \--* LCL_VAR struct V10 tmp4
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000148] ------------ arg2 \--* CNS_INT int 0
[ 1] 7 (0x007) ret
Inlinee Return expression (before normalization) =>
[000159] ------------ * LCL_VAR struct V10 tmp4
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..008) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000071] -----------
Arguments setup:
[000167] ------------ * STMT void (IL ???... ???)
[000067] --C-G------- | /--* CALL ref Program.Task2
[000166] -AC-G------- \--* ASG ref
[000165] D------N---- \--* LCL_VAR ref V09 tmp3
Inlinee method body:
[000152] ------------ * STMT void (IL ???... ???)
[000150] ------------ | /--* CNS_INT int 0
[000151] IA------R--- \--* ASG struct (init)
[000149] D------N---- \--* LCL_VAR struct V10 tmp4
[000158] ------------ * STMT void (IL ???... ???)
[000155] I-C-G------- \--* CALL void ConfiguredTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC60D22129)
[000154] L----------- this in rcx +--* ADDR byref
[000153] ------------ | \--* LCL_VAR struct V10 tmp4
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000148] ------------ arg2 \--* CNS_INT int 0
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000071] is
[000159] ------------ /--* LCL_VAR struct V10 tmp4
[000162] -A------R--- * ASG struct (copy)
[000161] D----------- \--* LCL_VAR struct V04 loc3
Successfully inlined Task`1:ConfigureAwait(bool):struct:this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'Task`1:ConfigureAwait(bool):struct:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000158] in BB03:
[000158] ------------ * STMT void (IL ???... ???)
[000155] I-C-G------- \--* CALL void ConfiguredTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC60D22129)
[000154] L----------- this in rcx +--* ADDR byref
[000153] ------------ | \--* LCL_VAR struct V10 tmp4
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000148] ------------ arg2 \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000154] L----------- * ADDR byref
[000153] ------------ \--* LCL_VAR struct V10 tmp4
Argument #1: is a local var
[000147] ------------ * LCL_VAR ref V09 tmp3
Argument #2: is a constant
[000148] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000170] ------------ * CAST int <- bool <- int
[000148] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000170] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredTaskAwaitable`1:.ctor(ref,bool):this set to 0x00007FFC60D22129:
Invoking compiler for the inlinee method ConfiguredTaskAwaitable`1:.ctor(ref,bool):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 04 ldarg.2
IL_0003 73 36 0c 00 0a newobj 0xA000C36
IL_0008 7d 37 0c 00 0a stfld 0xA000C37
IL_000d 2a ret
INLINER impTokenLookupContextHandle for ConfiguredTaskAwaitable`1:.ctor(ref,bool):this is 0x00007FFC60D22129.
*************** In fgFindBasicBlocks() for ConfiguredTaskAwaitable`1:.ctor(ref,bool):this
Jump targets:
none
New Basic Block BB11 [0010] created.
BB11 [000..00E)
Basic block list for 'ConfiguredTaskAwaitable`1:.ctor(ref,bool):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB11 [0010] 1 1 [000..00E) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredTaskAwaitable`1:.ctor(ref,bool):this
impImportBlockPending for BB11
Importing BB11 (PC=000) of 'ConfiguredTaskAwaitable`1:.ctor(ref,bool):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) ldarg.2
[ 3] 3 (0x003) newobj
lvaGrabTemp returning 11 (V11 tmp5) called for NewObj constructor temp.
[000178] ------------ * STMT void
[000176] ------------ | /--* CNS_INT int 0
[000177] IA------R--- \--* ASG struct (init)
[000175] D------N---- \--* LCL_VAR struct V11 tmp5
0A000C36
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000184] ------------ * STMT void
[000181] I-C-G------- \--* CALL void ConfiguredTaskAwaiter..ctor (exactContextHnd=0x00007FFC60D227B9)
[000180] L----------- this in rcx +--* ADDR byref
[000179] ------------ | \--* LCL_VAR struct V11 tmp5
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000174] ------------ arg2 \--* CNS_INT int 0
[ 2] 8 (0x008) stfld 0A000C37
[000190] ------------ * STMT void
[000185] ------------ | /--* LCL_VAR struct V11 tmp5
[000189] -A------R--- \--* ASG struct (copy)
[000188] ------------ \--* OBJ(16) struct
[000187] ------------ \--* ADDR byref
[000186] ------------ \--* FIELD struct m_configuredTaskAwaiter
[000172] L----------- \--* ADDR byref
[000173] ------------ \--* LCL_VAR struct V10 tmp4
[ 0] 13 (0x00d) 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..00E) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000155] -----------
Arguments setup:
Inlinee method body:
[000178] ------------ * STMT void (IL ???... ???)
[000176] ------------ | /--* CNS_INT int 0
[000177] IA------R--- \--* ASG struct (init)
[000175] D------N---- \--* LCL_VAR struct V11 tmp5
[000184] ------------ * STMT void (IL ???... ???)
[000181] I-C-G------- \--* CALL void ConfiguredTaskAwaiter..ctor (exactContextHnd=0x00007FFC60D227B9)
[000180] L----------- this in rcx +--* ADDR byref
[000179] ------------ | \--* LCL_VAR struct V11 tmp5
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000174] ------------ arg2 \--* CNS_INT int 0
[000190] ------------ * STMT void (IL ???... ???)
[000185] ------------ | /--* LCL_VAR struct V11 tmp5
[000189] -A------R--- \--* ASG struct (copy)
[000188] ------------ \--* OBJ(16) struct
[000187] ------------ \--* ADDR byref
[000186] ------------ \--* FIELD struct m_configuredTaskAwaiter
[000172] L----------- \--* ADDR byref
[000173] ------------ \--* LCL_VAR struct V10 tmp4
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ConfiguredTaskAwaitable`1:.ctor(ref,bool):this (14 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'ConfiguredTaskAwaitable`1:.ctor(ref,bool):this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000184] in BB03:
[000184] ------------ * STMT void (IL ???... ???)
[000181] I-C-G------- \--* CALL void ConfiguredTaskAwaiter..ctor (exactContextHnd=0x00007FFC60D227B9)
[000180] L----------- this in rcx +--* ADDR byref
[000179] ------------ | \--* LCL_VAR struct V11 tmp5
[000147] ------------ arg1 +--* LCL_VAR ref V09 tmp3
[000174] ------------ arg2 \--* CNS_INT int 0
thisArg: is a constant is byref to a struct local
[000180] L----------- * ADDR byref
[000179] ------------ \--* LCL_VAR struct V11 tmp5
Argument #1: is a local var
[000147] ------------ * LCL_VAR ref V09 tmp3
Argument #2: is a constant
[000174] ------------ * CNS_INT int 0
Folding operator with constant nodes into a constant:
[000192] ------------ * CAST int <- bool <- int
[000174] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000192] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredTaskAwaiter:.ctor(ref,bool):this set to 0x00007FFC60D227B9:
Invoking compiler for the inlinee method ConfiguredTaskAwaiter:.ctor(ref,bool):this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 03 ldarg.1
IL_0002 7d 38 0c 00 0a stfld 0xA000C38
IL_0007 02 ldarg.0
IL_0008 04 ldarg.2
IL_0009 7d 39 0c 00 0a stfld 0xA000C39
IL_000e 2a ret
INLINER impTokenLookupContextHandle for ConfiguredTaskAwaiter:.ctor(ref,bool):this is 0x00007FFC60D227B9.
*************** In fgFindBasicBlocks() for ConfiguredTaskAwaiter:.ctor(ref,bool):this
Jump targets:
none
New Basic Block BB12 [0011] created.
BB12 [000..00F)
Basic block list for 'ConfiguredTaskAwaiter:.ctor(ref,bool):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB12 [0011] 1 1 [000..00F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredTaskAwaiter:.ctor(ref,bool):this
impImportBlockPending for BB12
Importing BB12 (PC=000) of 'ConfiguredTaskAwaiter:.ctor(ref,bool):this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) stfld 0A000C38
[000198] ------------ * STMT void
[000147] ------------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---------- \--* ASG ref
[000196] -------N---- \--* FIELD ref m_task
[000194] L----------- \--* ADDR byref
[000195] ------------ \--* LCL_VAR struct V11 tmp5
[ 0] 7 (0x007) ldarg.0
[ 1] 8 (0x008) ldarg.2
[ 2] 9 (0x009) stfld 0A000C39
[000204] ------------ * STMT void
[000201] ------------ | /--* CNS_INT int 0
[000203] -A---------- \--* ASG bool
[000202] -------N---- \--* FIELD bool m_continueOnCapturedContext
[000199] L----------- \--* ADDR byref
[000200] ------------ \--* LCL_VAR struct V11 tmp5
[ 0] 14 (0x00e) ret
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..00F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000181] -----------
Arguments setup:
Inlinee method body:
[000198] ------------ * STMT void (IL ???... ???)
[000147] ------------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---------- \--* ASG ref
[000196] -------N---- \--* FIELD ref m_task
[000194] L----------- \--* ADDR byref
[000195] ------------ \--* LCL_VAR struct V11 tmp5
[000204] ------------ * STMT void (IL ???... ???)
[000201] ------------ | /--* CNS_INT int 0
[000203] -A---------- \--* ASG bool
[000202] -------N---- \--* FIELD bool m_continueOnCapturedContext
[000199] L----------- \--* ADDR byref
[000200] ------------ \--* LCL_VAR struct V11 tmp5
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined ConfiguredTaskAwaiter:.ctor(ref,bool):this (15 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'ConfiguredTaskAwaiter:.ctor(ref,bool):this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000074] with [000162]
[000074] --C--------- * RET_EXPR void (inl return from call [000162])
Inserting the inline return expression
[000159] ------------ /--* LCL_VAR struct V10 tmp4
[000162] -A------R--- * ASG struct (copy)
[000161] D----------- \--* LCL_VAR struct V04 loc3
Expanding INLINE_CANDIDATE in statement [000082] in BB03:
[000082] ------------ * STMT void (IL 0x016...0x01D)
[000081] I-C-G------- \--* CALL void ConfiguredTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC60D22129)
[000080] L----------- this in rcx +--* ADDR byref
[000079] ------------ | \--* LCL_VAR struct V04 loc3
[000085] L----------- arg1 \--* ADDR byref
[000084] ------------ \--* LCL_VAR struct V03 loc2
thisArg: is a constant is byref to a struct local
[000080] L----------- * ADDR byref
[000079] ------------ \--* LCL_VAR struct V04 loc3
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredTaskAwaitable`1:GetAwaiter():struct:this set to 0x00007FFC60D22129:
Invoking compiler for the inlinee method ConfiguredTaskAwaitable`1:GetAwaiter():struct:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 37 0c 00 0a ldfld 0xA000C37
IL_0006 2a ret
INLINER impTokenLookupContextHandle for ConfiguredTaskAwaitable`1:GetAwaiter():struct:this is 0x00007FFC60D22129.
*************** In fgFindBasicBlocks() for ConfiguredTaskAwaitable`1:GetAwaiter():struct:this
Jump targets:
none
New Basic Block BB13 [0012] created.
BB13 [000..007)
Basic block list for 'ConfiguredTaskAwaitable`1:GetAwaiter():struct:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB13 [0012] 1 1 [000..007) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredTaskAwaitable`1:GetAwaiter():struct:this
impImportBlockPending for BB13
Importing BB13 (PC=000) of 'ConfiguredTaskAwaitable`1:GetAwaiter():struct:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000C37
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[000209] ------------ * FIELD struct m_configuredTaskAwaiter
[000207] L----------- \--* ADDR byref
[000208] ------------ \--* LCL_VAR struct V04 loc3
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..007) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000081] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000081] is
[000209] ------------ /--* FIELD struct m_configuredTaskAwaiter
[000207] L----------- | \--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V04 loc3
[000212] -A------R--- * ASG struct (copy)
[000211] D----------- \--* LCL_VAR struct V03 loc2
Successfully inlined ConfiguredTaskAwaitable`1:GetAwaiter():struct:this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'ConfiguredTaskAwaitable`1:GetAwaiter():struct:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000083] with [000212]
[000083] --C--------- * RET_EXPR void (inl return from call [000212])
Inserting the inline return expression
[000209] ------------ /--* FIELD struct m_configuredTaskAwaiter
[000207] L----------- | \--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V04 loc3
[000212] -A------R--- * ASG struct (copy)
[000211] D----------- \--* LCL_VAR struct V03 loc2
Expanding INLINE_CANDIDATE in statement [000091] in BB03:
[000091] ------------ * STMT void (IL 0x01E...0x025)
[000090] I-C-G------- \--* CALL int ConfiguredTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC60D227B9)
[000089] L----------- this in rcx \--* ADDR byref
[000088] ------------ \--* LCL_VAR struct V03 loc2
thisArg: is a constant is byref to a struct local
[000089] L----------- * ADDR byref
[000088] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredTaskAwaiter:get_IsCompleted():bool:this set to 0x00007FFC60D227B9:
Invoking compiler for the inlinee method ConfiguredTaskAwaiter:get_IsCompleted():bool:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 38 0c 00 0a ldfld 0xA000C38
IL_0006 6f e5 29 00 06 callvirt 0x60029E5
IL_000b 2a ret
INLINER impTokenLookupContextHandle for ConfiguredTaskAwaiter:get_IsCompleted():bool:this is 0x00007FFC60D227B9.
*************** In fgFindBasicBlocks() for ConfiguredTaskAwaiter:get_IsCompleted():bool:this
Jump targets:
none
New Basic Block BB14 [0013] created.
BB14 [000..00C)
Basic block list for 'ConfiguredTaskAwaiter:get_IsCompleted():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB14 [0013] 1 1 [000..00C) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredTaskAwaiter:get_IsCompleted():bool:this
impImportBlockPending for BB14
Importing BB14 (PC=000) of 'ConfiguredTaskAwaiter:get_IsCompleted():bool:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000C38
[ 1] 6 (0x006) callvirt 060029E5
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0
[000219] ------------ * STMT void
[000218] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC60CEFAC1)
[000217] ------------ this in rcx \--* FIELD ref m_task
[000215] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 11 (0x00b) ret
Inlinee Return expression (before normalization) =>
[000220] --C--------- * RET_EXPR int (inl return from call [000218])
Inlinee Return expression (after normalization) =>
[000221] --C--------- * CAST int <- bool <- int
[000220] --C--------- \--* RET_EXPR int (inl return from call [000218])
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..00C) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000090] -----------
Arguments setup:
Inlinee method body:
[000219] ------------ * STMT void (IL 0x01E... ???)
[000218] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC60CEFAC1)
[000217] ------------ this in rcx \--* FIELD ref m_task
[000215] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V03 loc2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000090] is
[000221] --C--------- * CAST int <- bool <- int
[000220] --C--------- \--* RET_EXPR int (inl return from call [000218])
Successfully inlined ConfiguredTaskAwaiter:get_IsCompleted():bool:this (12 IL bytes) (depth 1) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'ConfiguredTaskAwaiter:get_IsCompleted():bool:this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000219] in BB03:
[000219] ------------ * STMT void (IL 0x01E... ???)
[000218] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC60CEFAC1)
[000217] ------------ this in rcx \--* FIELD ref m_task
[000215] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V03 loc2
thisArg: has caller local ref
[000217] ------------ * FIELD ref m_task
[000215] L----------- \--* ADDR byref
[000216] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsCompleted():bool:this set to 0x00007FFC60CEFAC1:
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 0x00007FFC60CEFAC1.
*************** In fgFindBasicBlocks() for Task:get_IsCompleted():bool:this
Jump targets:
none
New Basic Block BB15 [0014] created.
BB15 [000..010)
Basic block list for 'Task:get_IsCompleted():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB15 [0014] 1 1 [000..010) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:get_IsCompleted():bool:this
impImportBlockPending for BB15
Importing BB15 (PC=000) of 'Task:get_IsCompleted():bool:this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 12 (V12 tmp6) called for Inlining Arg.
lvaSetClass: setting class for V12 to (00007FFC60CEFBD8) Task`1
[ 1] 1 (0x001) volatile.ldfld 04000DFB
[ 1] 8 (0x008) stloc.0
lvaGrabTemp returning 13 (V13 tmp7) (a long lifetime temp) called for Inline stloc first use temp.
[000228] ------------ * STMT void
[000225] V--XGO-N---- | /--* FIELD int m_stateFlags
[000224] ------------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XGO------ \--* ASG int
[000226] D------N---- \--* LCL_VAR int V13 tmp7
[ 0] 9 (0x009) ldloc.0
[ 1] 10 (0x00a) call 060029E6
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0
[000232] ------------ * STMT void
[000230] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC60CEFAC1)
[000229] ------------ arg0 \--* LCL_VAR int V13 tmp7
[ 1] 15 (0x00f) ret
Inlinee Return expression (before normalization) =>
[000233] --C--------- * RET_EXPR int (inl return from call [000230])
Inlinee Return expression (after normalization) =>
[000234] --C--------- * CAST int <- bool <- int
[000233] --C--------- \--* RET_EXPR int (inl return from call [000230])
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..010) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000218] -----------
Arguments setup:
[000237] ------------ * STMT void (IL 0x01E... ???)
[000217] ------------ | /--* FIELD ref m_task
[000215] L----------- | | \--* ADDR byref
[000216] ------------ | | \--* LCL_VAR struct V03 loc2
[000236] -A---------- \--* ASG ref
[000235] D------N---- \--* LCL_VAR ref V12 tmp6
Inlinee method body:
[000228] ------------ * STMT void (IL 0x01E... ???)
[000225] V--XGO-N---- | /--* FIELD int m_stateFlags
[000224] ------------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XGO------ \--* ASG int
[000226] D------N---- \--* LCL_VAR int V13 tmp7
[000232] ------------ * STMT void (IL 0x01E... ???)
[000230] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC60CEFAC1)
[000229] ------------ arg0 \--* LCL_VAR int V13 tmp7
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000218] is
[000234] --C--------- * CAST int <- bool <- int
[000233] --C--------- \--* RET_EXPR int (inl return from call [000230])
Successfully inlined Task:get_IsCompleted():bool:this (16 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>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 [000232] in BB03:
[000232] ------------ * STMT void (IL 0x01E... ???)
[000230] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC60CEFAC1)
[000229] ------------ arg0 \--* LCL_VAR int V13 tmp7
Argument #0: is a local var
[000229] ------------ * LCL_VAR int V13 tmp7
INLINER: inlineInfo.tokenLookupContextHandle for Task:IsCompletedMethod(int):bool set to 0x00007FFC60CEFAC1:
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 0x00007FFC60CEFAC1.
*************** In fgFindBasicBlocks() for Task:IsCompletedMethod(int):bool
Jump targets:
none
New Basic Block BB16 [0015] created.
BB16 [000..00B)
Basic block list for 'Task:IsCompletedMethod(int):bool'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB16 [0015] 1 1 [000..00B) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:IsCompletedMethod(int):bool
impImportBlockPending for BB16
Importing BB16 (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) =>
[000242] ------------ /--* CNS_INT int 0
[000243] N--------U-- * GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
Inlinee Return expression (after normalization) =>
[000242] ------------ /--* CNS_INT int 0
[000243] N--------U-- * GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
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..00B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000230] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000230] is
[000242] ------------ /--* CNS_INT int 0
[000243] N--------U-- * GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
Successfully inlined Task:IsCompletedMethod(int):bool (11 IL bytes) (depth 3) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'Task:IsCompletedMethod(int):bool'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000092] with [000221]
[000092] --C--------- * RET_EXPR int (inl return from call [000221])
Inserting the inline return expression
[000221] --C--------- * CAST int <- bool <- int
[000220] --C--------- \--* RET_EXPR int (inl return from call [000234])
Replacing the return expression placeholder [000220] with [000234]
[000220] --C--------- * RET_EXPR int (inl return from call [000234])
Inserting the inline return expression
[000234] --C--------- * CAST int <- bool <- int
[000233] --C--------- \--* RET_EXPR int (inl return from call [000243])
Replacing the return expression placeholder [000233] with [000243]
[000233] --C--------- * RET_EXPR int (inl return from call [000243])
Inserting the inline return expression
[000242] ------------ /--* CNS_INT int 0
[000243] N--------U-- * GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
Expanding INLINE_CANDIDATE in statement [000045] in BB06:
[000045] ------------ * STMT void (IL 0x063...0x06A)
[000044] I-C-G------- \--* CALL int ConfiguredTaskAwaiter.GetResult (exactContextHnd=0x00007FFC60D227B9)
[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 ConfiguredTaskAwaiter:GetResult():int:this set to 0x00007FFC60D227B9:
Invoking compiler for the inlinee method ConfiguredTaskAwaiter:GetResult():int:this :
IL to import:
IL_0000 02 ldarg.0
IL_0001 7b 38 0c 00 0a ldfld 0xA000C38
IL_0006 28 c2 50 00 06 call 0x60050C2
IL_000b 02 ldarg.0
IL_000c 7b 38 0c 00 0a ldfld 0xA000C38
IL_0011 6f 0e 09 00 0a callvirt 0xA00090E
IL_0016 2a ret
INLINER impTokenLookupContextHandle for ConfiguredTaskAwaiter:GetResult():int:this is 0x00007FFC60D227B9.
*************** In fgFindBasicBlocks() for ConfiguredTaskAwaiter:GetResult():int:this
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight= 79 : state 40 [ call ]
weight= 31 : state 191 [ ldarg.0 -> ldfld ]
weight= 83 : state 99 [ callvirt ]
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=243
callsiteNativeSizeEstimate=85
benefit multiplier=5.3
threshold=450
Native estimate for function size is within threshold for inlining 24.3 <= 45 (multiplier = 5.3)
Jump targets:
none
New Basic Block BB17 [0016] created.
BB17 [000..017)
Basic block list for 'ConfiguredTaskAwaiter:GetResult():int:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB17 [0016] 1 1 [000..017) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for ConfiguredTaskAwaiter:GetResult():int:this
impImportBlockPending for BB17
Importing BB17 (PC=000) of 'ConfiguredTaskAwaiter:GetResult():int:this'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ldfld 0A000C38
[ 1] 6 (0x006) call 060050C2
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0
[000251] ------------ * STMT void
[000249] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC60CF3209)
[000248] ------------ arg0 \--* FIELD ref m_task
[000246] L----------- \--* ADDR byref
[000247] ------------ \--* LCL_VAR struct V03 loc2
[ 0] 11 (0x00b) ldarg.0
[ 1] 12 (0x00c) ldfld 0A000C38
[ 1] 17 (0x011) callvirt 0A00090E
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0
[000256] ------------ * STMT void
[000255] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC60CEFBD9)
[000254] ------------ this in rcx \--* FIELD ref m_task
[000252] L----------- \--* ADDR byref
[000253] ------------ \--* LCL_VAR struct V03 loc2
[ 1] 22 (0x016) ret
Inlinee Return expression (before normalization) =>
[000257] --C--------- * RET_EXPR int (inl return from call [000255])
Inlinee Return expression (after normalization) =>
[000257] --C--------- * RET_EXPR int (inl return from call [000255])
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..017) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000044] -----------
Arguments setup:
Inlinee method body:
[000251] ------------ * STMT void (IL 0x063... ???)
[000249] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC60CF3209)
[000248] ------------ arg0 \--* FIELD ref m_task
[000246] L----------- \--* ADDR byref
[000247] ------------ \--* LCL_VAR struct V03 loc2
[000256] ------------ * STMT void (IL 0x063... ???)
[000255] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC60CEFBD9)
[000254] ------------ this in rcx \--* FIELD ref m_task
[000252] L----------- \--* ADDR byref
[000253] ------------ \--* LCL_VAR struct V03 loc2
fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000044] is
[000257] --C--------- * RET_EXPR int (inl return from call [000255])
Successfully inlined ConfiguredTaskAwaiter:GetResult():int:this (23 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<Task1>d__1:MoveNext():this' calling 'ConfiguredTaskAwaiter:GetResult():int:this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000251] in BB06:
[000251] ------------ * STMT void (IL 0x063... ???)
[000249] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC60CF3209)
[000248] ------------ arg0 \--* FIELD ref m_task
[000246] L----------- \--* ADDR byref
[000247] ------------ \--* LCL_VAR struct V03 loc2
Argument #0: has caller local ref
[000248] ------------ * FIELD ref m_task
[000246] L----------- \--* ADDR byref
[000247] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:ValidateEnd(ref) set to 0x00007FFC60CF3209:
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 0x00007FFC60CF3209.
*************** In fgFindBasicBlocks() for TaskAwaiter:ValidateEnd(ref)
Jump targets:
IL_000e
New Basic Block BB18 [0017] created.
BB18 [000..008)
New Basic Block BB19 [0018] created.
BB19 [008..00E)
New Basic Block BB20 [0019] created.
BB20 [00E..00F)
Basic block list for 'TaskAwaiter:ValidateEnd(ref)'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 1 [000..008)-> BB20 ( cond )
BB19 [0018] 1 1 [008..00E)
BB20 [0019] 2 1 [00E..00F) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for TaskAwaiter:ValidateEnd(ref)
impImportBlockPending for BB18
Importing BB18 (PC=000) of 'TaskAwaiter:ValidateEnd(ref)'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 14 (V14 tmp8) called for Inlining Arg.
lvaSetClass: setting class for V14 to (00007FFC60CEFBD8) Task`1
[ 1] 1 (0x001) callvirt 060029C9
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0
[000262] ------------ * STMT void
[000261] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC60CEFAC1)
[000260] ------------ this in rcx \--* LCL_VAR ref V14 tmp8
[ 1] 6 (0x006) brfalse.s
[000267] ------------ * STMT void
[000266] --C--------- \--* JTRUE void
[000264] ------------ | /--* CNS_INT int 0
[000265] --C--------- \--* EQ int
[000263] --C--------- \--* RET_EXPR int (inl return from call [000261])
impImportBlockPending for BB19
impImportBlockPending for BB20
Importing BB20 (PC=014) of 'TaskAwaiter:ValidateEnd(ref)'
[ 0] 14 (0x00e) ret
Importing BB19 (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
[000273] ------------ * STMT void
[000271] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC60CF3209)
[000270] ------------ arg0 \--* LCL_VAR ref V14 tmp8
impImportBlockPending for BB20
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..008)-> BB20 ( cond ) i
BB19 [0018] 1 1 [008..00E) i
BB20 [0019] 2 1 [00E..00F) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000249] -----------
Arguments setup:
[000276] ------------ * STMT void (IL 0x063... ???)
[000248] ------------ | /--* FIELD ref m_task
[000246] L----------- | | \--* ADDR byref
[000247] ------------ | | \--* LCL_VAR struct V03 loc2
[000275] -A---------- \--* ASG ref
[000274] D------N---- \--* LCL_VAR ref V14 tmp8
Inlinee method body:New Basic Block BB21 [0020] created.
EH#0: New last block of try: BB21
Convert bbJumpKind of BB20 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB18 [063..064) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18, stmt 1
[000262] ------------ * STMT void (IL 0x063... ???)
[000261] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC60CEFAC1)
[000260] ------------ this in rcx \--* LCL_VAR ref V14 tmp8
***** BB18, stmt 2
[000267] ------------ * STMT void (IL 0x063... ???)
[000266] --C--------- \--* JTRUE void
[000264] ------------ | /--* CNS_INT int 0
[000265] --C--------- \--* EQ int
[000263] --C--------- \--* RET_EXPR int (inl return from call [000261])
------------ BB19 [063..064), preds={} succs={BB20}
***** BB19, stmt 3
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC60CF3209)
[000270] ------------ arg0 \--* LCL_VAR ref V14 tmp8
------------ BB20 [063..064), preds={} succs={BB21}
-------------------------------------------------------------------------------------------------------------------
Successfully inlined TaskAwaiter:ValidateEnd(ref) (15 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'TaskAwaiter:ValidateEnd(ref)'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Expanding INLINE_CANDIDATE in statement [000262] in BB18:
[000262] ------------ * STMT void (IL 0x063... ???)
[000261] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC60CEFAC1)
[000260] ------------ this in rcx \--* LCL_VAR ref V14 tmp8
thisArg: is a local var
[000260] ------------ * LCL_VAR ref V14 tmp8
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this set to 0x00007FFC60CEFAC1:
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 0x00007FFC60CEFAC1.
*************** In fgFindBasicBlocks() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
Jump targets:
none
New Basic Block BB22 [0021] created.
BB22 [000..019)
Basic block list for 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB22 [0021] 1 1 [000..019) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
impImportBlockPending for BB22
Importing BB22 (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) =>
[000284] ------------ /--* CNS_INT int 0
[000285] ---XGO------ * EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
Inlinee Return expression (after normalization) =>
[000284] ------------ /--* CNS_INT int 0
[000285] ---XGO------ * EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB22 [0021] 1 1 [000..019) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000261] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000261] is
[000284] ------------ /--* CNS_INT int 0
[000285] ---XGO------ * EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
Successfully inlined Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this (25 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<Task1>d__1:MoveNext():this' calling 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000263] with [000285]
[000263] --C--------- * RET_EXPR int (inl return from call [000285])
Inserting the inline return expression
[000284] ------------ /--* CNS_INT int 0
[000285] ---XGO------ * EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
Expanding INLINE_CANDIDATE in statement [000273] in BB19:
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC60CF3209)
[000270] ------------ arg0 \--* LCL_VAR ref V14 tmp8
Argument #0: is a local var
[000270] ------------ * LCL_VAR ref V14 tmp8
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) set to 0x00007FFC60CF3209:
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 0x00007FFC60CF3209.
*************** 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 '<Task1>d__1:MoveNext():this' calling 'TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)'
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline'
Expanding INLINE_CANDIDATE in statement [000256] in BB21:
[000256] ------------ * STMT void (IL 0x063... ???)
[000255] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC60CEFBD9)
[000254] ------------ this in rcx \--* FIELD ref m_task
[000252] L----------- \--* ADDR byref
[000253] ------------ \--* LCL_VAR struct V03 loc2
thisArg: has caller local ref
[000254] ------------ * FIELD ref m_task
[000252] L----------- \--* ADDR byref
[000253] ------------ \--* LCL_VAR struct V03 loc2
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:get_ResultOnSuccess():int:this set to 0x00007FFC60CEFBD9:
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 0x00007FFC60CEFBD9.
*************** In fgFindBasicBlocks() for Task`1:get_ResultOnSuccess():int:this
Jump targets:
none
New Basic Block BB23 [0022] created.
BB23 [000..007)
Basic block list for 'Task`1:get_ResultOnSuccess():int:this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB23 [0022] 1 1 [000..007) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task`1:get_ResultOnSuccess():int:this
impImportBlockPending for BB23
Importing BB23 (PC=000) of 'Task`1:get_ResultOnSuccess():int:this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 15 (V15 tmp9) called for Inlining Arg.
lvaSetClass: setting class for V15 to (00007FFC60CEFBD8) Task`1
[ 1] 1 (0x001) ldfld 0A000794
[ 1] 6 (0x006) ret
Inlinee Return expression (before normalization) =>
[000289] ---XG------- * FIELD int m_result
[000288] ------------ \--* LCL_VAR ref V15 tmp9
Inlinee Return expression (after normalization) =>
[000289] ---XG------- * FIELD int m_result
[000288] ------------ \--* LCL_VAR ref V15 tmp9
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB23 [0022] 1 1 [000..007) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000255] -----------
Arguments setup:
[000292] ------------ * STMT void (IL 0x063... ???)
[000254] ------------ | /--* FIELD ref m_task
[000252] L----------- | | \--* ADDR byref
[000253] ------------ | | \--* LCL_VAR struct V03 loc2
[000291] -A---------- \--* ASG ref
[000290] D------N---- \--* LCL_VAR ref V15 tmp9
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000255] is
[000289] ---XG------- * FIELD int m_result
[000288] ------------ \--* LCL_VAR ref V15 tmp9
Successfully inlined Task`1:get_ResultOnSuccess():int:this (7 IL bytes) (depth 2) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>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 [000046] with [000257]
[000046] --C--------- * RET_EXPR int (inl return from call [000257])
Inserting the inline return expression
[000257] --C--------- * RET_EXPR int (inl return from call [000289])
Replacing the return expression placeholder [000257] with [000289]
[000257] --C--------- * RET_EXPR int (inl return from call [000289])
Inserting the inline return expression
[000289] ---XG------- * FIELD int m_result
[000288] ------------ \--* LCL_VAR ref V15 tmp9
Expanding INLINE_CANDIDATE in statement [000062] in BB08:
[000062] ------------ * STMT void (IL 0x08E...0x095)
[000060] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC60CF5471)
[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 AsyncTaskMethodBuilder`1:SetResult(int):this set to 0x00007FFC60CF5471:
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 0x00007FFC60CF5471.
*************** 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 BB24 [0023] created.
BB24 [000..008)
New Basic Block BB25 [0024] created.
BB25 [008..015)
New Basic Block BB26 [0025] created.
BB26 [015..01D)
Basic block list for 'AsyncTaskMethodBuilder`1:SetResult(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [000..008)-> BB26 ( cond )
BB25 [0024] 1 1 [008..015) (return)
BB26 [0025] 1 1 [015..01D) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncTaskMethodBuilder`1:SetResult(int):this
impImportBlockPending for BB24
Importing BB24 (PC=000) of 'AsyncTaskMethodBuilder`1:SetResult(int):this'
[ 0] 0 (0x000) ldarg.0
lvaGrabTemp returning 16 (V16 tmp10) called for Inlining Arg.
[ 1] 1 (0x001) ldfld 0A000C05
[ 1] 6 (0x006) brtrue.s
[000300] ------------ * STMT void
[000299] ---XG------- \--* JTRUE void
[000297] ------------ | /--* CNS_INT ref null
[000298] ---XG------- \--* NE int
[000296] ---XG------- \--* FIELD ref m_task
[000295] ------------ \--* LCL_VAR byref V16 tmp10
impImportBlockPending for BB25
impImportBlockPending for BB26
Importing BB26 (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 [000303]
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'
[000305] ------------ * STMT void
[000303] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
[ 0] 28 (0x01c) ret
Importing BB25 (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
[000311] ------------ * STMT void
[000309] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC60CF5471)
[000308] ------------ arg0 \--* LCL_VAR int V02 loc1
[ 2] 15 (0x00f) stfld 0A000C05
[000315] ------------ * STMT void
[000312] --C--------- | /--* RET_EXPR ref (inl return from call [000309])
[000314] -ACXG------- \--* ASG ref
[000313] ---XG--N---- \--* FIELD ref m_task
[000307] ------------ \--* LCL_VAR byref V16 tmp10
[ 0] 20 (0x014) ret
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..008)-> BB26 ( cond ) i
BB25 [0024] 1 1 [008..015) (return) i
BB26 [0025] 1 1 [015..01D) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000060] -----------
Arguments setup:
[000318] ------------ * STMT void (IL 0x08E... ???)
[000058] ---XG------- | /--* ADDR byref
[000057] ---XG------- | | \--* FIELD struct <>t__builder
[000056] ------------ | | \--* LCL_VAR byref V00 this
[000317] -A-XG------- \--* ASG byref
[000316] D------N---- \--* LCL_VAR byref V16 tmp10
Inlinee method body:New Basic Block BB27 [0026] created.
Convert bbJumpKind of BB25 to BBJ_ALWAYS to bottomBlock BB27
Convert bbJumpKind of BB26 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F)-> BB27 (always) i
BB26 [0025] 1 1 [08E..08F) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB24 [08E..08F) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 1
[000300] ------------ * STMT void (IL 0x08E... ???)
[000299] ---XG------- \--* JTRUE void
[000297] ------------ | /--* CNS_INT ref null
[000298] ---XG------- \--* NE int
[000296] ---XG------- \--* FIELD ref m_task
[000295] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB25 [08E..08F) -> BB27 (always), preds={} succs={BB27}
***** BB25, stmt 2
[000311] ------------ * STMT void (IL 0x08E... ???)
[000309] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC60CF5471)
[000308] ------------ arg0 \--* LCL_VAR int V02 loc1
***** BB25, stmt 3
[000315] ------------ * STMT void (IL 0x08E... ???)
[000312] --C--------- | /--* RET_EXPR ref (inl return from call [000309])
[000314] -ACXG------- \--* ASG ref
[000313] ---XG--N---- \--* FIELD ref m_task
[000307] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB26 [08E..08F), preds={} succs={BB27}
***** BB26, stmt 4
[000305] ------------ * STMT void (IL 0x08E... ???)
[000303] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
-------------------------------------------------------------------------------------------------------------------
Successfully inlined AsyncTaskMethodBuilder`1:SetResult(int):this (29 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<Task1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:SetResult(int):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000311] in BB25:
[000311] ------------ * STMT void (IL 0x08E... ???)
[000309] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC60CF5471)
[000308] ------------ arg0 \--* LCL_VAR int V02 loc1
Argument #0: is a local var
[000308] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref set to 0x00007FFC60CF5471:
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 0x00007FFC60CF5471.
*************** 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 BB28 [0027] created.
BB28 [000..013)
New Basic Block BB29 [0028] created.
BB29 [013..02E)
New Basic Block BB30 [0029] created.
BB30 [02E..03D)
New Basic Block BB31 [0030] created.
BB31 [03D..044)
New Basic Block BB32 [0031] created.
BB32 [044..049)
New Basic Block BB33 [0032] created.
BB33 [049..051)
New Basic Block BB34 [0033] created.
BB34 [051..06C)
New Basic Block BB35 [0034] created.
BB35 [06C..080)
New Basic Block BB36 [0035] created.
BB36 [080..087)
New Basic Block BB37 [0036] created.
BB37 [087..09A)
New Basic Block BB38 [0037] created.
BB38 [09A..0B5)
New Basic Block BB39 [0038] created.
BB39 [0B5..0C5)
New Basic Block BB40 [0039] created.
BB40 [0C5..0E0)
New Basic Block BB41 [0040] created.
BB41 [0E0..0F0)
New Basic Block BB42 [0041] created.
BB42 [0F0..10B)
New Basic Block BB43 [0042] created.
BB43 [10B..11B)
New Basic Block BB44 [0043] created.
BB44 [11B..136)
New Basic Block BB45 [0044] created.
BB45 [136..146)
New Basic Block BB46 [0045] created.
BB46 [146..161)
New Basic Block BB47 [0046] created.
BB47 [161..171)
New Basic Block BB48 [0047] created.
BB48 [171..18C)
New Basic Block BB49 [0048] created.
BB49 [18C..19C)
New Basic Block BB50 [0049] created.
BB50 [19C..1B7)
New Basic Block BB51 [0050] created.
BB51 [1B7..1C7)
New Basic Block BB52 [0051] created.
BB52 [1C7..1E2)
New Basic Block BB53 [0052] created.
BB53 [1E2..1EF)
New Basic Block BB54 [0053] created.
BB54 [1EF..20A)
New Basic Block BB55 [0054] created.
BB55 [20A..21E)
New Basic Block BB56 [0055] created.
BB56 [21E..239)
New Basic Block BB57 [0056] created.
BB57 [239..24D)
New Basic Block BB58 [0057] created.
BB58 [24D..253)
New Basic Block BB59 [0058] created.
BB59 [253..25B)
New Basic Block BB60 [0059] created.
BB60 [25B..261)
New Basic Block BB61 [0060] created.
BB61 [261..268)
lvaGrabTemp returning 17 (V17 tmp11) (a long lifetime temp) called for Inline return value spill temp.
lvaSetClass: setting class for V17 to (00007FFC60CEFBD8) Task`1
Basic block list for 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB28 [0027] 1 1 [000..013)-> BB59 ( cond )
BB29 [0028] 1 1 [013..02E)-> BB34 ( cond )
BB30 [0029] 1 1 [02E..03D)-> BB32 ( cond )
BB31 [0030] 1 1 [03D..044)-> BB33 (always)
BB32 [0031] 1 1 [044..049)
BB33 [0032] 2 1 [049..051) (return)
BB34 [0033] 1 1 [051..06C)-> BB38 ( cond )
BB35 [0034] 1 1 [06C..080)-> BB61 ( cond )
BB36 [0035] 1 1 [080..087)-> BB61 ( cond )
BB37 [0036] 1 1 [087..09A) (return)
BB38 [0037] 1 1 [09A..0B5)-> BB40 ( cond )
BB39 [0038] 1 1 [0B5..0C5)-> BB58 ( cond )
BB40 [0039] 2 1 [0C5..0E0)-> BB42 ( cond )
BB41 [0040] 1 1 [0E0..0F0)-> BB58 ( cond )
BB42 [0041] 2 1 [0F0..10B)-> BB44 ( cond )
BB43 [0042] 1 1 [10B..11B)-> BB58 ( cond )
BB44 [0043] 2 1 [11B..136)-> BB46 ( cond )
BB45 [0044] 1 1 [136..146)-> BB58 ( cond )
BB46 [0045] 2 1 [146..161)-> BB48 ( cond )
BB47 [0046] 1 1 [161..171)-> BB58 ( cond )
BB48 [0047] 2 1 [171..18C)-> BB50 ( cond )
BB49 [0048] 1 1 [18C..19C)-> BB58 ( cond )
BB50 [0049] 2 1 [19C..1B7)-> BB52 ( cond )
BB51 [0050] 1 1 [1B7..1C7)-> BB58 ( cond )
BB52 [0051] 2 1 [1C7..1E2)-> BB54 ( cond )
BB53 [0052] 1 1 [1E2..1EF)-> BB58 ( cond )
BB54 [0053] 2 1 [1EF..20A)-> BB56 ( cond )
BB55 [0054] 1 1 [20A..21E)-> BB58 ( cond )
BB56 [0055] 2 1 [21E..239)-> BB61 ( cond )
BB57 [0056] 1 1 [239..24D)-> BB61 ( cond )
BB58 [0057] 10 1 [24D..253) (return)
BB59 [0058] 1 1 [253..25B)-> BB61 ( cond )
BB60 [0059] 1 1 [25B..261) (return)
BB61 [0060] 5 1 [261..268) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref
impImportBlockPending for BB28
Importing BB28 (PC=000) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 0 (0x000) ldloca.s 0
lvaGrabTemp returning 18 (V18 tmp12) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 1] 2 (0x002) initobj 1B000003
[000326] ------------ * STMT void
[000323] ------------ | /--* CNS_INT int 0
[000325] IA------R--- \--* ASG struct (init)
[000324] -------N---- \--* BLK(4) struct
[000322] L----------- \--* ADDR byref
[000321] ------------ \--* LCL_VAR int V18 tmp12
[ 0] 8 (0x008) ldloc.0
[ 1] 9 (0x009) box 1B000003
Compiler::impImportAndPushBox -- handling BOX(value class) via inline allocate/copy sequence
lvaGrabTemp returning 19 (V19 tmp13) called for Single-def Box Helper.
lvaSetClass: setting class for V19 to (00007FFC60CE92C8) Int32 [exact]
[000332] ------------ * STMT void
[000329] ------------ | /--* ALLOCOBJ ref
[000328] ------------ | | \--* CNS_INT(h) long 0x7ffc60ce92c8 class
[000331] -A---------- \--* ASG ref
[000330] D------N---- \--* LCL_VAR ref V19 tmp13
[000338] ------------ * STMT void
[000327] ------------ | /--* LCL_VAR int V18 tmp12
[000337] -A---------- \--* ASG int
[000336] -------N---- \--* IND int
[000334] ------------ | /--* CNS_INT long 8
[000335] ------------ \--* ADD byref
[000333] ------------ \--* LCL_VAR ref V19 tmp13
[ 1] 14 (0x00e) brfalse
Attempting to optimize BOX(valueType) EQ null [000342]
gtTryRemoveBoxUpstreamEffects: attempting to remove side effects of BOX (valuetype) [000340] (assign/newobj [000332] copy [000338])
Bashing NEWOBJ [000331] to NOP
Bashing COPY [000337] to NOP; no source side effects.
Success: replacing BOX(valueType) EQ null with 0
The block falls through into the next BB29
impImportBlockPending for BB29
Importing BB29 (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 00007FFC60CE92C8 (Int32) and 00007FFC60CE7468 (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:
[000353] ------------ /--* CNS_INT int 0
[000354] ------------ * EQ int
[000352] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000354] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB34
impImportBlockPending for BB34
Importing BB34 (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 00007FFC60CE92C8 (Int32) and 00007FFC60CE92C8 (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:
[000364] ------------ /--* CNS_INT int 0
[000365] ------------ * EQ int
[000363] ------------ \--* CNS_INT int 1
Bashed to int constant:
[000365] ------------ * CNS_INT int 0
The block falls through into the next BB35
impImportBlockPending for BB35
Importing BB35 (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 20 (V20 tmp14) (a long lifetime temp) called for Inline stloc first use temp.
[000369] ------------ * STMT void
[000308] ------------ | /--* LCL_VAR int V02 loc1
[000368] -A---------- \--* ASG int
[000367] D------N---- \--* LCL_VAR int V20 tmp14
[ 0] 120 (0x078) ldloc.3
[ 1] 121 (0x079) ldc.i4.s 9
[ 2] 123 (0x07b) bge
[000374] ------------ * STMT void
[000373] ------------ \--* JTRUE void
[000371] ------------ | /--* CNS_INT int 9
[000372] ------------ \--* GE int
[000370] ------------ \--* LCL_VAR int V20 tmp14
impImportBlockPending for BB36
impImportBlockPending for BB61
Importing BB61 (PC=609) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 609 (0x261) ldarg.0
[ 1] 610 (0x262) newobj
lvaGrabTemp returning 21 (V21 tmp15) called for NewObj constructor temp.
[000381] ------------ * STMT void
[000378] ------------ | /--* ALLOCOBJ ref
[000377] ------------ | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -A---------- \--* ASG ref
[000379] D------N---- \--* LCL_VAR ref V21 tmp15
lvaSetClass: setting class for V21 to (00007FFC60CEFBD8) Task`1 [exact]
0A000C15
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
[000385] ------------ * STMT void
[000383] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC60CEFBD9)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000376] ------------ arg1 \--* LCL_VAR int V02 loc1
[ 1] 615 (0x267) ret
Inlinee Return expression (before normalization) =>
[000386] ------------ * LCL_VAR ref V21 tmp15
[000389] ------------ * STMT void
[000386] ------------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---------- \--* ASG ref
[000387] D------N---- \--* LCL_VAR ref V17 tmp11
Inlinee Return expression (after normalization) =>
[000390] ------------ * LCL_VAR ref V17 tmp11
Importing BB36 (PC=128) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
[ 0] 128 (0x080) ldloc.3
[ 1] 129 (0x081) ldc.i4.m1 -1
[ 2] 130 (0x082) blt
[000396] ------------ * STMT void
[000395] ------------ \--* JTRUE void
[000393] ------------ | /--* CNS_INT int -1
[000394] ------------ \--* LT int
[000392] ------------ \--* LCL_VAR int V20 tmp14
impImportBlockPending for BB37
impImportBlockPending for BB61
Importing BB37 (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 22 (V22 tmp16) (a long lifetime temp) called for Inline stloc first use temp.
lvaSetClass: setting class for V22 to (00007FFC60CEFBD8) Task`1
[000412] ------------ * STMT void
[000407] ------------ | /--* CNS_INT int -1
[000408] ------------ | /--* SUB int
[000406] ------------ | | \--* LCL_VAR int V20 tmp14
[000409] R-CXG------- | /--* INDEX ref
[000398] ----G------- | | | /--* FIELD ref Int32Tasks
[000405] --CXG------- | | \--* COMMA ref
[000404] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] ------------ arg1 | | \--* CNS_INT int 0x70A
[000411] -ACXG------- \--* ASG ref
[000410] D------N---- \--* LCL_VAR ref V22 tmp16
[ 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
[000418] ------------ * STMT void
[000414] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6040EF98)
[000415] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6040ef98 method
[000413] ------------ arg1 \--* LCL_VAR ref V22 tmp16
[ 1] 153 (0x099) ret
Inlinee Return expression (before normalization) =>
[000419] --C--------- * RET_EXPR ref (inl return from call [000414])
[000422] ------------ * STMT void
[000419] --C--------- | /--* RET_EXPR ref (inl return from call [000414])
[000421] -AC--------- \--* ASG ref
[000420] D------N---- \--* LCL_VAR ref V17 tmp11
Inlinee Return expression (after normalization) =>
[000423] ------------ * LCL_VAR ref V17 tmp11
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..013) i newobj
BB29 [0028] 1 1 [013..02E)-> BB34 (always) i
BB30 [0029] 1 1 [02E..03D)-> BB32 ( cond )
BB31 [0030] 1 1 [03D..044)-> BB33 (always)
BB32 [0031] 1 1 [044..049)
BB33 [0032] 2 1 [049..051) (return)
BB34 [0033] 1 1 [051..06C) i
BB35 [0034] 1 1 [06C..080)-> BB61 ( cond ) i
BB36 [0035] 1 1 [080..087)-> BB61 ( cond ) i
BB37 [0036] 1 1 [087..09A) (return) i
BB38 [0037] 1 1 [09A..0B5)-> BB40 ( cond )
BB39 [0038] 1 1 [0B5..0C5)-> BB58 ( cond )
BB40 [0039] 2 1 [0C5..0E0)-> BB42 ( cond )
BB41 [0040] 1 1 [0E0..0F0)-> BB58 ( cond )
BB42 [0041] 2 1 [0F0..10B)-> BB44 ( cond )
BB43 [0042] 1 1 [10B..11B)-> BB58 ( cond )
BB44 [0043] 2 1 [11B..136)-> BB46 ( cond )
BB45 [0044] 1 1 [136..146)-> BB58 ( cond )
BB46 [0045] 2 1 [146..161)-> BB48 ( cond )
BB47 [0046] 1 1 [161..171)-> BB58 ( cond )
BB48 [0047] 2 1 [171..18C)-> BB50 ( cond )
BB49 [0048] 1 1 [18C..19C)-> BB58 ( cond )
BB50 [0049] 2 1 [19C..1B7)-> BB52 ( cond )
BB51 [0050] 1 1 [1B7..1C7)-> BB58 ( cond )
BB52 [0051] 2 1 [1C7..1E2)-> BB54 ( cond )
BB53 [0052] 1 1 [1E2..1EF)-> BB58 ( cond )
BB54 [0053] 2 1 [1EF..20A)-> BB56 ( cond )
BB55 [0054] 1 1 [20A..21E)-> BB58 ( cond )
BB56 [0055] 2 1 [21E..239)-> BB61 ( cond )
BB57 [0056] 1 1 [239..24D)-> BB61 ( cond )
BB58 [0057] 10 1 [24D..253) (return)
BB59 [0058] 1 1 [253..25B)-> BB61 ( cond )
BB60 [0059] 1 1 [25B..261) (return)
BB61 [0060] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
BB30 was not imported, marked as removed (1)
BB31 was not imported, marked as removed (2)
BB32 was not imported, marked as removed (3)
BB33 was not imported, marked as removed (4)
BB38 was not imported, marked as removed (5)
BB39 was not imported, marked as removed (6)
BB40 was not imported, marked as removed (7)
BB41 was not imported, marked as removed (8)
BB42 was not imported, marked as removed (9)
BB43 was not imported, marked as removed (10)
BB44 was not imported, marked as removed (11)
BB45 was not imported, marked as removed (12)
BB46 was not imported, marked as removed (13)
BB47 was not imported, marked as removed (14)
BB48 was not imported, marked as removed (15)
BB49 was not imported, marked as removed (16)
BB50 was not imported, marked as removed (17)
BB51 was not imported, marked as removed (18)
BB52 was not imported, marked as removed (19)
BB53 was not imported, marked as removed (20)
BB54 was not imported, marked as removed (21)
BB55 was not imported, marked as removed (22)
BB56 was not imported, marked as removed (23)
BB57 was not imported, marked as removed (24)
BB58 was not imported, marked as removed (25)
BB59 was not imported, marked as removed (26)
BB60 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]
--------------------------------------------------------------------------------------------------------------------------------------
BB28 [0027] 1 1 [000..013) i newobj
BB29 [0028] 1 1 [013..02E)-> BB34 (always) i
BB34 [0033] 1 1 [051..06C) i
BB35 [0034] 1 1 [06C..080)-> BB61 ( cond ) i
BB36 [0035] 1 1 [080..087)-> BB61 ( cond ) i
BB37 [0036] 1 1 [087..09A) (return) i
BB61 [0060] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
Renumber BB28 to BB62
Renumber BB29 to BB63
Renumber BB34 to BB64
Renumber BB35 to BB65
Renumber BB36 to BB66
Renumber BB37 to BB67
Renumber BB61 to BB68
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB62 [0027] 1 1 [000..013) i newobj
BB63 [0028] 1 1 [013..02E)-> BB64 (always) i
BB64 [0033] 1 1 [051..06C) i
BB65 [0034] 1 1 [06C..080)-> BB68 ( cond ) i
BB66 [0035] 1 1 [080..087)-> BB68 ( cond ) i
BB67 [0036] 1 1 [087..09A) (return) i
BB68 [0060] 5 1 [261..268) (return) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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 [000309] -----------
Arguments setup:
Inlinee method body:New Basic Block BB69 [0061] created.
Convert bbJumpKind of BB67 to BBJ_ALWAYS to bottomBlock BB69
Convert bbJumpKind of BB68 to BBJ_NONE
fgInlineAppendStatements: nulling out gc ref inlinee locals.
[000427] ------------ * STMT void (IL 0x08E... ???)
[000424] ------------ | /--* CNS_INT ref null
[000426] -A---------- \--* ASG ref
[000425] D------N---- \--* LCL_VAR ref V22 tmp16
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB62 [08E..08F), preds={} succs={BB63}
***** BB62, stmt 1
[000326] ------------ * STMT void (IL 0x08E... ???)
[000323] ------------ | /--* CNS_INT int 0
[000325] IA------R--- \--* ASG struct (init)
[000324] -------N---- \--* BLK(4) struct
[000322] L----------- \--* ADDR byref
[000321] ------------ \--* LCL_VAR int V18 tmp12
***** BB62, stmt 2
[000332] ------------ * STMT void (IL 0x08E... ???)
[000331] ------------ \--* NOP void
***** BB62, stmt 3
[000338] ------------ * STMT void (IL 0x08E... ???)
[000337] ------------ \--* NOP void
------------ BB63 [08E..08F) -> BB64 (always), preds={} succs={BB64}
------------ BB64 [08E..08F), preds={} succs={BB65}
------------ BB65 [08E..08F) -> BB68 (cond), preds={} succs={BB66,BB68}
***** BB65, stmt 4
[000369] ------------ * STMT void (IL 0x08E... ???)
[000308] ------------ | /--* LCL_VAR int V02 loc1
[000368] -A---------- \--* ASG int
[000367] D------N---- \--* LCL_VAR int V20 tmp14
***** BB65, stmt 5
[000374] ------------ * STMT void (IL 0x08E... ???)
[000373] ------------ \--* JTRUE void
[000371] ------------ | /--* CNS_INT int 9
[000372] ------------ \--* GE int
[000370] ------------ \--* LCL_VAR int V20 tmp14
------------ BB66 [08E..08F) -> BB68 (cond), preds={} succs={BB67,BB68}
***** BB66, stmt 6
[000396] ------------ * STMT void (IL 0x08E... ???)
[000395] ------------ \--* JTRUE void
[000393] ------------ | /--* CNS_INT int -1
[000394] ------------ \--* LT int
[000392] ------------ \--* LCL_VAR int V20 tmp14
------------ BB67 [08E..08F) -> BB69 (always), preds={} succs={BB69}
***** BB67, stmt 7
[000412] ------------ * STMT void (IL 0x08E... ???)
[000407] ------------ | /--* CNS_INT int -1
[000408] ------------ | /--* SUB int
[000406] ------------ | | \--* LCL_VAR int V20 tmp14
[000409] R-CXG------- | /--* INDEX ref
[000398] ----G------- | | | /--* FIELD ref Int32Tasks
[000405] --CXG------- | | \--* COMMA ref
[000404] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] ------------ arg1 | | \--* CNS_INT int 0x70A
[000411] -ACXG------- \--* ASG ref
[000410] D------N---- \--* LCL_VAR ref V22 tmp16
***** BB67, stmt 8
[000418] ------------ * STMT void (IL 0x08E... ???)
[000414] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6040EF98)
[000415] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6040ef98 method
[000413] ------------ arg1 \--* LCL_VAR ref V22 tmp16
***** BB67, stmt 9
[000422] ------------ * STMT void (IL 0x08E... ???)
[000419] --C--------- | /--* RET_EXPR ref (inl return from call [000414])
[000421] -AC--------- \--* ASG ref
[000420] D------N---- \--* LCL_VAR ref V17 tmp11
------------ BB68 [08E..08F), preds={} succs={BB69}
***** BB68, stmt 10
[000381] ------------ * STMT void (IL 0x08E... ???)
[000378] ------------ | /--* ALLOCOBJ ref
[000377] ------------ | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -A---------- \--* ASG ref
[000379] D------N---- \--* LCL_VAR ref V21 tmp15
***** BB68, stmt 11
[000385] ------------ * STMT void (IL 0x08E... ???)
[000383] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC60CEFBD9)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000376] ------------ arg1 \--* LCL_VAR int V02 loc1
***** BB68, stmt 12
[000389] ------------ * STMT void (IL 0x08E... ???)
[000386] ------------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---------- \--* ASG ref
[000387] D------N---- \--* LCL_VAR ref V17 tmp11
-------------------------------------------------------------------------------------------------------------------
INLINER: Updating optMethodFlags -- root:0 callee:2 new:2
Return expression for call at [000309] is
[000423] ------------ * LCL_VAR ref V17 tmp11
Successfully inlined AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref (616 IL bytes) (depth 2) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
BB25 becomes empty
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<Task1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Expanding INLINE_CANDIDATE in statement [000418] in BB67:
[000418] ------------ * STMT void (IL 0x08E... ???)
[000414] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6040EF98)
[000415] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6040ef98 method
[000413] ------------ arg1 \--* LCL_VAR ref V22 tmp16
Argument #0: is a local var
[000413] ------------ * LCL_VAR ref V22 tmp16
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6040EF98:
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 0x00007FFC6040EF98.
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref
Jump targets:
none
New Basic Block BB70 [0062] created.
BB70 [000..002)
Basic block list for 'Unsafe:As(ref):ref'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB70 [0062] 1 1 [000..002) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Unsafe:As(ref):ref
impImportBlockPending for BB70
Importing BB70 (PC=000) of 'Unsafe:As(ref):ref'
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) ret
Inlinee Return expression (before normalization) =>
[000413] ------------ * LCL_VAR ref V22 tmp16
Inlinee Return expression (after normalization) =>
[000413] ------------ * LCL_VAR ref V22 tmp16
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB70 [0062] 1 1 [000..002) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000414] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Return expression for call at [000414] is
[000413] ------------ * LCL_VAR ref V22 tmp16
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 3) [aggressive inline attribute]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<Task1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref'
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute'
Replacing the return expression placeholder [000419] with [000413]
[000419] --C--------- * RET_EXPR ref (inl return from call [000413])
Inserting the inline return expression
[000413] ------------ * LCL_VAR ref V22 tmp16
Expanding INLINE_CANDIDATE in statement [000385] in BB68:
[000385] ------------ * STMT void (IL 0x08E... ???)
[000383] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC60CEFBD9)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000376] ------------ arg1 \--* LCL_VAR int V02 loc1
thisArg: is a local var
[000382] ------------ * LCL_VAR ref V21 tmp15
Argument #1: is a local var
[000376] ------------ * LCL_VAR int V02 loc1
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:.ctor(int):this set to 0x00007FFC60CEFBD9:
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 0x00007FFC60CEFBD9.
*************** 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 BB71 [0063] created.
BB71 [000..019)
Basic block list for 'Task`1:.ctor(int):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB71 [0063] 1 1 [000..019) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task`1:.ctor(int):this
impImportBlockPending for BB71
Importing BB71 (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 23 (V23 tmp17) (a long lifetime temp) called for Inline ldloca(s) first use temp.
[ 4] 5 (0x005) initobj 02000338
[000438] ------------ * STMT void
[000436] ------------ | /--* CNS_INT int 0
[000437] IA------R--- \--* ASG struct (init)
[000434] D------N---- \--* LCL_VAR struct V23 tmp17
[ 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:
[000439] ------------ * LCL_VAR struct V23 tmp17
resulting tree:
[000442] x----------- * OBJ(8) struct
[000441] L----------- \--* ADDR byref
[000439] ------------ \--* LCL_VAR struct V23 tmp17
[000446] ------------ * STMT void
[000440] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC60CEFAC1)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000432] ------------ arg1 +--* CNS_INT int 0
[000433] ------------ arg2 +--* CNS_INT int 0
[000442] x----------- arg3 \--* OBJ(8) struct
[000441] L----------- \--* ADDR byref
[000439] ------------ \--* LCL_VAR struct V23 tmp17
[ 0] 17 (0x011) ldarg.0
[ 1] 18 (0x012) ldarg.1
[ 2] 19 (0x013) stfld 0A000794
[000450] ------------ * STMT void
[000376] ------------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG------- \--* ASG int
[000448] ---XG--N---- \--* FIELD int m_result
[000447] ------------ \--* LCL_VAR ref V21 tmp15
[ 0] 24 (0x018) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB71 [0063] 1 1 [000..019) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000383] -----------
Arguments setup:
Inlinee method body:
[000438] ------------ * STMT void (IL 0x08E... ???)
[000436] ------------ | /--* CNS_INT int 0
[000437] IA------R--- \--* ASG struct (init)
[000434] D------N---- \--* LCL_VAR struct V23 tmp17
[000446] ------------ * STMT void (IL 0x08E... ???)
[000440] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC60CEFAC1)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000432] ------------ arg1 +--* CNS_INT int 0
[000433] ------------ arg2 +--* CNS_INT int 0
[000442] x----------- arg3 \--* OBJ(8) struct
[000441] L----------- \--* ADDR byref
[000439] ------------ \--* LCL_VAR struct V23 tmp17
[000450] ------------ * STMT void (IL 0x08E... ???)
[000376] ------------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG------- \--* ASG int
[000448] ---XG--N---- \--* FIELD int m_result
[000447] ------------ \--* LCL_VAR ref V21 tmp15
fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Task`1:.ctor(int):this (25 IL bytes) (depth 3) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<Task1>d__1:MoveNext():this' calling 'Task`1:.ctor(int):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000446] in BB68:
[000446] ------------ * STMT void (IL 0x08E... ???)
[000440] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC60CEFAC1)
[000382] ------------ this in rcx +--* LCL_VAR ref V21 tmp15
[000432] ------------ arg1 +--* CNS_INT int 0
[000433] ------------ arg2 +--* CNS_INT int 0
[000442] x----------- arg3 \--* OBJ(8) struct
[000441] L----------- \--* ADDR byref
[000439] ------------ \--* LCL_VAR struct V23 tmp17
thisArg: is a local var
[000382] ------------ * LCL_VAR ref V21 tmp15
Argument #1: is a constant
[000432] ------------ * CNS_INT int 0
Argument #2: is a constant
[000433] ------------ * CNS_INT int 0
Argument #3: has caller local ref
[000442] x----------- * OBJ(8) struct
[000441] L----------- \--* ADDR byref
[000439] ------------ \--* LCL_VAR struct V23 tmp17
Folding operator with constant nodes into a constant:
[000452] ------------ * CAST int <- bool <- int
[000432] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000452] ------------ * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Task:.ctor(bool,int,struct):this set to 0x00007FFC60CEFAC1:
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 0x00007FFC60CEFAC1.
*************** 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 BB72 [0064] created.
BB72 [000..00B)
New Basic Block BB73 [0065] created.
BB73 [00B..036)
New Basic Block BB74 [0066] created.
BB74 [036..046)
Basic block list for 'Task:.ctor(bool,int,struct):this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB72 [0064] 1 1 [000..00B)-> BB74 ( cond )
BB73 [0065] 1 1 [00B..036) (return)
BB74 [0066] 1 1 [036..046) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Task:.ctor(bool,int,struct):this
impImportBlockPending for BB72
Importing BB72 (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
[000455] ------------ * STMT void
[000454] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC60CE7DB9)
[000382] ------------ this in rcx \--* LCL_VAR ref V21 tmp15
[ 0] 6 (0x006) ldarg.2
[ 1] 7 (0x007) stloc.0
lvaGrabTemp returning 24 (V24 tmp18) (a long lifetime temp) called for Inline stloc first use temp.
[000459] ------------ * STMT void
[000456] ------------ | /--* CNS_INT int 0
[000458] -A---------- \--* ASG int
[000457] D------N---- \--* LCL_VAR int V24 tmp18
[ 0] 8 (0x008) ldarg.1
[ 1] 9 (0x009) brfalse.s
Folding operator with constant nodes into a constant:
[000461] ------------ /--* CNS_INT int 0
[000462] ------------ * EQ int
[000460] ------------ \--* CNS_INT int 0
Bashed to int constant:
[000462] ------------ * CNS_INT int 1
The conditional jump becomes an unconditional jump to BB74
impImportBlockPending for BB74
Importing BB74 (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
[000470] ------------ * STMT void
[000466] ------------ | /--* LCL_VAR int V24 tmp18
[000467] ------------ | /--* OR int
[000465] ------------ | | \--* CNS_INT int 0x1000000
[000469] -A-XGO------ \--* ASG int
[000468] V--XGO-N---- \--* FIELD int m_stateFlags
[000464] ------------ \--* LCL_VAR ref V21 tmp15
[ 0] 69 (0x045) ret
After impImport() added block for try,catch,finally
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB72 [0064] 1 1 [000..00B)-> BB74 (always) i
BB73 [0065] 1 1 [00B..036) (return)
BB74 [0066] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
BB73 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]
--------------------------------------------------------------------------------------------------------------------------------------
BB72 [0064] 1 1 [000..00B)-> BB74 (always) i
BB74 [0066] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
Renumber BB72 to BB75
Renumber BB74 to BB76
*************** After renumbering the basic blocks
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB75 [0064] 1 1 [000..00B)-> BB76 (always) i
BB76 [0066] 1 1 [036..046) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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 [000440] -----------
Arguments setup:
Inlinee method body:New Basic Block BB77 [0067] created.
Convert bbJumpKind of BB76 to BBJ_NONE
fgInlineAppendStatements: no gc ref inline locals.
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB75 [08E..08F) -> BB76 (always), preds={} succs={BB76}
***** BB75, stmt 1
[000455] ------------ * STMT void (IL 0x08E... ???)
[000454] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC60CE7DB9)
[000382] ------------ this in rcx \--* LCL_VAR ref V21 tmp15
***** BB75, stmt 2
[000459] ------------ * STMT void (IL 0x08E... ???)
[000456] ------------ | /--* CNS_INT int 0
[000458] -A---------- \--* ASG int
[000457] D------N---- \--* LCL_VAR int V24 tmp18
------------ BB76 [08E..08F), preds={} succs={BB77}
***** BB76, stmt 3
[000470] ------------ * STMT void (IL 0x08E... ???)
[000466] ------------ | /--* LCL_VAR int V24 tmp18
[000467] ------------ | /--* OR int
[000465] ------------ | | \--* CNS_INT int 0x1000000
[000469] -A-XGO------ \--* ASG int
[000468] V--XGO-N---- \--* FIELD int m_stateFlags
[000464] ------------ \--* LCL_VAR ref V21 tmp15
-------------------------------------------------------------------------------------------------------------------
Successfully inlined Task:.ctor(bool,int,struct):this (70 IL bytes) (depth 4) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<Task1>d__1:MoveNext():this' calling 'Task:.ctor(bool,int,struct):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
Expanding INLINE_CANDIDATE in statement [000455] in BB75:
[000455] ------------ * STMT void (IL 0x08E... ???)
[000454] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC60CE7DB9)
[000382] ------------ this in rcx \--* LCL_VAR ref V21 tmp15
thisArg: is a local var
[000382] ------------ * LCL_VAR ref V21 tmp15
INLINER: inlineInfo.tokenLookupContextHandle for Object:.ctor():this set to 0x00007FFC60CE7DB9:
Invoking compiler for the inlinee method Object:.ctor():this :
IL to import:
IL_0000 2a ret
INLINER impTokenLookupContextHandle for Object:.ctor():this is 0x00007FFC60CE7DB9.
*************** In fgFindBasicBlocks() for Object:.ctor():this
Jump targets:
none
New Basic Block BB78 [0068] created.
BB78 [000..001)
Basic block list for 'Object:.ctor():this'
--------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags]
--------------------------------------------------------------------------------------------------------------------------------------
BB78 [0068] 1 1 [000..001) (return)
--------------------------------------------------------------------------------------------------------------------------------------
*************** In impImport() for Object:.ctor():this
impImportBlockPending for BB78
Importing BB78 (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]
--------------------------------------------------------------------------------------------------------------------------------------
BB78 [0068] 1 1 [000..001) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
----------- Statements (and blocks) added due to the inlining of call [000454] -----------
Arguments setup:
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals.
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 5) [below ALWAYS_INLINE size]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<Task1>d__1:MoveNext():this' calling 'Object:.ctor():this'
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size'
Replacing the return expression placeholder [000312] with [000423]
[000312] --C--------- * RET_EXPR ref (inl return from call [000423])
Inserting the inline return expression
[000423] ------------ * LCL_VAR ref V17 tmp11
*************** 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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (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..027) -> BB06 (cond), preds={} succs={BB04,BB06}
***** BB03, stmt 3
[000167] ------------ * STMT void (IL ???... ???)
[000067] --C-G------- | /--* CALL ref Program.Task2
[000166] -AC-G------- \--* ASG ref
[000165] D------N---- \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 4
[000168] ------------ * STMT void (IL ???... ???)
[000164] ---X-------- \--* IND int
[000163] ------------ \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 5
[000152] ------------ * STMT void (IL ???... ???)
[000150] ------------ | /--* CNS_INT int 0
[000151] IA------R--- \--* ASG struct (init)
[000149] D------N---- \--* LCL_VAR struct V10 tmp4
***** BB03, stmt 6
[000178] ------------ * STMT void (IL ???... ???)
[000176] ------------ | /--* CNS_INT int 0
[000177] IA------R--- \--* ASG struct (init)
[000175] D------N---- \--* LCL_VAR struct V11 tmp5
***** BB03, stmt 7
[000198] ------------ * STMT void (IL ???... ???)
[000147] ------------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---------- \--* ASG ref
[000196] -------N---- \--* FIELD ref m_task
[000194] L----------- \--* ADDR byref
[000195] ------------ \--* LCL_VAR struct V11 tmp5
***** BB03, stmt 8
[000204] ------------ * STMT void (IL ???... ???)
[000201] ------------ | /--* CNS_INT int 0
[000203] -A---------- \--* ASG bool
[000202] -------N---- \--* FIELD bool m_continueOnCapturedContext
[000199] L----------- \--* ADDR byref
[000200] ------------ \--* LCL_VAR struct V11 tmp5
***** BB03, stmt 9
[000190] ------------ * STMT void (IL ???... ???)
[000185] ------------ | /--* LCL_VAR struct V11 tmp5
[000189] -A------R--- \--* ASG struct (copy)
[000188] ------------ \--* OBJ(16) struct
[000187] ------------ \--* ADDR byref
[000186] ------------ \--* FIELD struct m_configuredTaskAwaiter
[000172] L----------- \--* ADDR byref
[000173] ------------ \--* LCL_VAR struct V10 tmp4
***** BB03, stmt 10
[000078] ------------ * STMT void (IL ???... ???)
[000159] ------------ | /--* LCL_VAR struct V10 tmp4
[000162] -A------R--- \--* ASG struct (copy)
[000161] D----------- \--* LCL_VAR struct V04 loc3
***** BB03, stmt 11
[000087] ------------ * STMT void (IL ???... ???)
[000209] ------------ | /--* FIELD struct m_configuredTaskAwaiter
[000207] L----------- | | \--* ADDR byref
[000208] ------------ | | \--* LCL_VAR struct V04 loc3
[000212] -A------R--- \--* ASG struct (copy)
[000211] D----------- \--* LCL_VAR struct V03 loc2
***** BB03, stmt 12
[000237] ------------ * STMT void (IL 0x01E... ???)
[000217] ------------ | /--* FIELD ref m_task
[000215] L----------- | | \--* ADDR byref
[000216] ------------ | | \--* LCL_VAR struct V03 loc2
[000236] -A---------- \--* ASG ref
[000235] D------N---- \--* LCL_VAR ref V12 tmp6
***** BB03, stmt 13
[000228] ------------ * STMT void (IL 0x01E... ???)
[000225] V--XGO-N---- | /--* FIELD int m_stateFlags
[000224] ------------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XGO------ \--* ASG int
[000226] D------N---- \--* LCL_VAR int V13 tmp7
***** BB03, stmt 14
[000096] ------------ * STMT void (IL ???... ???)
[000095] --C--------- \--* JTRUE void
[000093] ------------ | /--* CNS_INT int 0
[000094] --C--------- \--* NE int
[000221] --C--------- \--* CAST int <- bool <- int
[000234] --C--------- \--* CAST int <- bool <- int
[000242] ------------ | /--* CNS_INT int 0
[000243] N--------U-- \--* GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
------------ BB04 [027..047) -> BB09 (always), preds={} succs={BB09}
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x027...0x02A)
[000100] ------------ | /--* CNS_INT int 0
[000102] -A---------- \--* ASG int
[000101] D------N---- \--* LCL_VAR int V01 loc0
***** BB04, stmt 16
[000106] ------------ * STMT void (IL ???...0x02B)
[000099] ------------ | /--* CNS_INT int 0
[000105] -A-XG------- \--* ASG int
[000104] ---XG--N---- \--* FIELD int <>1__state
[000098] ------------ \--* LCL_VAR byref V00 this
***** BB04, stmt 17
[000113] ------------ * STMT void (IL 0x030...0x032)
[000108] ------------ | /--* LCL_VAR struct V03 loc2
[000112] -A-XG---R--- \--* ASG struct (copy)
[000111] ---XG------- \--* OBJ(16) struct
[000110] ---XG------- \--* ADDR byref
[000109] ---XG------- \--* FIELD struct <>u__1
[000107] ------------ \--* LCL_VAR byref V00 this
***** BB04, stmt 18
[000123] ------------ * STMT void (IL 0x037...0x045)
[000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000116] ---XG------- this in rcx +--* ADDR byref
[000115] ---XG------- | \--* FIELD struct <>t__builder
[000114] ------------ | \--* LCL_VAR byref V00 this
[000118] L----------- arg1 +--* ADDR byref
[000117] ------------ | \--* LCL_VAR struct V03 loc2
[000119] ------------ arg2 \--* LCL_VAR byref V00 this
------------ BB05 [047..063), preds={} succs={BB06}
***** BB05, stmt 19
[000020] ------------ * STMT void (IL 0x047...0x04D)
[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 20
[000027] ------------ * STMT void (IL 0x04E...0x055)
[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 21
[000032] ------------ * STMT void (IL 0x05A...0x05D)
[000029] ------------ | /--* CNS_INT int -1
[000031] -A---------- \--* ASG int
[000030] D------N---- \--* LCL_VAR int V07 tmp1
***** BB05, stmt 22
[000037] ------------ * STMT void (IL ???... ???)
[000034] ------------ | /--* LCL_VAR int V07 tmp1
[000036] -A---------- \--* ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
***** BB05, stmt 23
[000040] ------------ * STMT void (IL ???...0x05E)
[000033] ------------ | /--* LCL_VAR int V07 tmp1
[000039] -A-XG------- \--* ASG int
[000038] ---XG--N---- \--* FIELD int <>1__state
[000028] ------------ \--* LCL_VAR byref V00 this
------------ BB06 [063..06D), preds={} succs={BB18}
***** BB06, stmt 24
[000276] ------------ * STMT void (IL 0x063... ???)
[000248] ------------ | /--* FIELD ref m_task
[000246] L----------- | | \--* ADDR byref
[000247] ------------ | | \--* LCL_VAR struct V03 loc2
[000275] -A---------- \--* ASG ref
[000274] D------N---- \--* LCL_VAR ref V14 tmp8
------------ BB18 [063..064) -> BB20 (cond), preds={} succs={BB19,BB20}
***** BB18, stmt 25
[000267] ------------ * STMT void (IL 0x063... ???)
[000266] --C--------- \--* JTRUE void
[000264] ------------ | /--* CNS_INT int 0
[000265] --C--------- \--* EQ int
[000284] ------------ | /--* CNS_INT int 0
[000285] ---XGO------ \--* EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
------------ BB19 [063..064), preds={} succs={BB20}
***** BB19, stmt 26
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] --C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] ------------ arg0 \--* LCL_VAR ref V14 tmp8
------------ BB20 [063..064), preds={} succs={BB21}
------------ BB21 [???..???) -> BB08 (always), preds={} succs={BB08}
***** BB21, stmt 27
[000292] ------------ * STMT void (IL 0x063... ???)
[000254] ------------ | /--* FIELD ref m_task
[000252] L----------- | | \--* ADDR byref
[000253] ------------ | | \--* LCL_VAR struct V03 loc2
[000291] -A---------- \--* ASG ref
[000290] D------N---- \--* LCL_VAR ref V15 tmp9
***** BB21, stmt 28
[000049] ------------ * STMT void (IL ???... ???)
[000289] ---XG------- | /--* FIELD int m_result
[000288] ------------ | | \--* LCL_VAR ref V15 tmp9
[000048] -AC--------- \--* ASG int
[000047] D------N---- \--* LCL_VAR int V02 loc1
------------ BB07 [06D..086) -> BB09 (cret), preds={} succs={BB09}
***** BB07, stmt 29
[000127] ------------ * STMT void (IL 0x06D...0x06D)
[000007] -----O------ | /--* CATCH_ARG ref
[000126] -A---O------ \--* ASG ref
[000125] D------N---- \--* LCL_VAR ref V08 tmp2
***** BB07, stmt 30
[000131] ------------ * STMT void (IL ???... ???)
[000128] ------------ | /--* LCL_VAR ref V08 tmp2
[000130] -A---------- \--* ASG ref
[000129] D------N---- \--* LCL_VAR ref V05 loc4
***** BB07, stmt 31
[000136] ------------ * STMT void (IL 0x06F...0x072)
[000133] ------------ | /--* CNS_INT int -2
[000135] -A-XG------- \--* ASG int
[000134] ---XG--N---- \--* FIELD int <>1__state
[000132] ------------ \--* LCL_VAR byref V00 this
***** BB07, stmt 32
[000143] ------------ * STMT void (IL 0x077...0x084)
[000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException
[000139] ---XG------- this in rcx +--* ADDR byref
[000138] ---XG------- | \--* FIELD struct <>t__builder
[000137] ------------ | \--* LCL_VAR byref V00 this
[000140] ------------ arg1 \--* LCL_VAR ref V05 loc4
------------ BB08 [086..09A), preds={} succs={BB24}
***** BB08, stmt 33
[000055] ------------ * STMT void (IL 0x086...0x089)
[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 34
[000318] ------------ * STMT void (IL 0x08E... ???)
[000058] ---XG------- | /--* ADDR byref
[000057] ---XG------- | | \--* FIELD struct <>t__builder
[000056] ------------ | | \--* LCL_VAR byref V00 this
[000317] -A-XG------- \--* ASG byref
[000316] D------N---- \--* LCL_VAR byref V16 tmp10
------------ BB24 [08E..08F) -> BB26 (cond), preds={} succs={BB25,BB26}
***** BB24, stmt 35
[000300] ------------ * STMT void (IL 0x08E... ???)
[000299] ---XG------- \--* JTRUE void
[000297] ------------ | /--* CNS_INT ref null
[000298] ---XG------- \--* NE int
[000296] ---XG------- \--* FIELD ref m_task
[000295] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB25 [08E..08F), preds={} succs={BB62}
------------ BB62 [08E..08F), preds={} succs={BB63}
***** BB62, stmt 36
[000326] ------------ * STMT void (IL 0x08E... ???)
[000323] ------------ | /--* CNS_INT int 0
[000325] IA------R--- \--* ASG struct (init)
[000324] -------N---- \--* BLK(4) struct
[000322] L----------- \--* ADDR byref
[000321] ------------ \--* LCL_VAR int V18 tmp12
***** BB62, stmt 37
[000332] ------------ * STMT void (IL 0x08E... ???)
[000331] ------------ \--* NOP void
***** BB62, stmt 38
[000338] ------------ * STMT void (IL 0x08E... ???)
[000337] ------------ \--* NOP void
------------ BB63 [08E..08F) -> BB64 (always), preds={} succs={BB64}
------------ BB64 [08E..08F), preds={} succs={BB65}
------------ BB65 [08E..08F) -> BB68 (cond), preds={} succs={BB66,BB68}
***** BB65, stmt 39
[000369] ------------ * STMT void (IL 0x08E... ???)
[000308] ------------ | /--* LCL_VAR int V02 loc1
[000368] -A---------- \--* ASG int
[000367] D------N---- \--* LCL_VAR int V20 tmp14
***** BB65, stmt 40
[000374] ------------ * STMT void (IL 0x08E... ???)
[000373] ------------ \--* JTRUE void
[000371] ------------ | /--* CNS_INT int 9
[000372] ------------ \--* GE int
[000370] ------------ \--* LCL_VAR int V20 tmp14
------------ BB66 [08E..08F) -> BB68 (cond), preds={} succs={BB67,BB68}
***** BB66, stmt 41
[000396] ------------ * STMT void (IL 0x08E... ???)
[000395] ------------ \--* JTRUE void
[000393] ------------ | /--* CNS_INT int -1
[000394] ------------ \--* LT int
[000392] ------------ \--* LCL_VAR int V20 tmp14
------------ BB67 [08E..08F) -> BB69 (always), preds={} succs={BB69}
***** BB67, stmt 42
[000412] ------------ * STMT void (IL 0x08E... ???)
[000407] ------------ | /--* CNS_INT int -1
[000408] ------------ | /--* SUB int
[000406] ------------ | | \--* LCL_VAR int V20 tmp14
[000409] R-CXG------- | /--* INDEX ref
[000398] ----G------- | | | /--* FIELD ref Int32Tasks
[000405] --CXG------- | | \--* COMMA ref
[000404] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] ------------ arg1 | | \--* CNS_INT int 0x70A
[000411] -ACXG------- \--* ASG ref
[000410] D------N---- \--* LCL_VAR ref V22 tmp16
***** BB67, stmt 43
[000422] ------------ * STMT void (IL 0x08E... ???)
[000413] ------------ | /--* LCL_VAR ref V22 tmp16
[000421] -AC--------- \--* ASG ref
[000420] D------N---- \--* LCL_VAR ref V17 tmp11
------------ BB68 [08E..08F), preds={} succs={BB75}
***** BB68, stmt 44
[000381] ------------ * STMT void (IL 0x08E... ???)
[000378] ------------ | /--* ALLOCOBJ ref
[000377] ------------ | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -A---------- \--* ASG ref
[000379] D------N---- \--* LCL_VAR ref V21 tmp15
***** BB68, stmt 45
[000438] ------------ * STMT void (IL 0x08E... ???)
[000436] ------------ | /--* CNS_INT int 0
[000437] IA------R--- \--* ASG struct (init)
[000434] D------N---- \--* LCL_VAR struct V23 tmp17
------------ BB75 [08E..08F) -> BB76 (always), preds={} succs={BB76}
***** BB75, stmt 46
[000459] ------------ * STMT void (IL 0x08E... ???)
[000456] ------------ | /--* CNS_INT int 0
[000458] -A---------- \--* ASG int
[000457] D------N---- \--* LCL_VAR int V24 tmp18
------------ BB76 [08E..08F), preds={} succs={BB77}
***** BB76, stmt 47
[000470] ------------ * STMT void (IL 0x08E... ???)
[000466] ------------ | /--* LCL_VAR int V24 tmp18
[000467] ------------ | /--* OR int
[000465] ------------ | | \--* CNS_INT int 0x1000000
[000469] -A-XGO------ \--* ASG int
[000468] V--XGO-N---- \--* FIELD int m_stateFlags
[000464] ------------ \--* LCL_VAR ref V21 tmp15
------------ BB77 [???..???), preds={} succs={BB69}
***** BB77, stmt 48
[000450] ------------ * STMT void (IL 0x08E... ???)
[000376] ------------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG------- \--* ASG int
[000448] ---XG--N---- \--* FIELD int m_result
[000447] ------------ \--* LCL_VAR ref V21 tmp15
***** BB77, stmt 49
[000389] ------------ * STMT void (IL 0x08E... ???)
[000386] ------------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---------- \--* ASG ref
[000387] D------N---- \--* LCL_VAR ref V17 tmp11
------------ BB69 [???..???) -> BB27 (always), preds={} succs={BB27}
***** BB69, stmt 50
[000427] ------------ * STMT void (IL 0x08E... ???)
[000424] ------------ | /--* CNS_INT ref null
[000426] -A---------- \--* ASG ref
[000425] D------N---- \--* LCL_VAR ref V22 tmp16
***** BB69, stmt 51
[000315] ------------ * STMT void (IL 0x08E... ???)
[000423] ------------ | /--* LCL_VAR ref V17 tmp11
[000314] -ACXG------- \--* ASG ref
[000313] ---XG--N---- \--* FIELD ref m_task
[000307] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB26 [08E..08F), preds={} succs={BB27}
***** BB26, stmt 52
[000305] ------------ * STMT void (IL 0x08E... ???)
[000303] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
------------ BB27 [???..???), preds={} succs={BB09}
------------ BB09 [09A..09B) (return), preds={} succs={}
***** BB09, stmt 53
[000065] ------------ * STMT void (IL 0x09A...0x09A)
[000064] ------------ \--* RETURN void
-------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
**************** Inline Tree
Inlines into 0600001F <Task1>d__1:MoveNext():this
[0 IL=0010 TR=000067 06000003] [FAILED: unprofitable inline] Program:Task2():ref
[1 IL=0016 TR=000071 06002931] [below ALWAYS_INLINE size] Task`1:ConfigureAwait(bool):struct:this
[2 IL=0002 TR=000155 060050D7] [below ALWAYS_INLINE size] ConfiguredTaskAwaitable`1:.ctor(ref,bool):this
[3 IL=0003 TR=000181 060050D9] [below ALWAYS_INLINE size] ConfiguredTaskAwaiter:.ctor(ref,bool):this
[0 IL=0010 TR=000067 06000003] [FAILED: unprofitable inline] Program:Task2():ref
[4 IL=0024 TR=000081 060050D8] [below ALWAYS_INLINE size] ConfiguredTaskAwaitable`1:GetAwaiter():struct:this
[5 IL=0032 TR=000090 060050DA] [below ALWAYS_INLINE size] ConfiguredTaskAwaiter:get_IsCompleted():bool:this
[6 IL=0006 TR=000218 060029E5] [below ALWAYS_INLINE size] Task:get_IsCompleted():bool:this
[7 IL=0010 TR=000230 060029E6] [below ALWAYS_INLINE size] Task:IsCompletedMethod(int):bool
[0 IL=0064 TR=000120 06005017] [FAILED: has exception handling] AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this
[8 IL=0101 TR=000044 060050DD] [profitable inline] ConfiguredTaskAwaiter:GetResult():int:this
[9 IL=0006 TR=000249 060050C2] [below ALWAYS_INLINE size] TaskAwaiter:ValidateEnd(ref)
[10 IL=0001 TR=000261 060029C9] [aggressive inline attribute] Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this
[0 IL=0009 TR=000271 060050C3] [FAILED: unprofitable inline] TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)
[11 IL=0017 TR=000255 06002929] [below ALWAYS_INLINE size] Task`1:get_ResultOnSuccess():int:this
[0 IL=0127 TR=000141 06005020] [FAILED: within catch region] AsyncTaskMethodBuilder`1:SetException(ref):this
[12 IL=0149 TR=000060 0600501C] [profitable inline] AsyncTaskMethodBuilder`1:SetResult(int):this
[13 IL=0010 TR=000309 06005023] [aggressive inline attribute] AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref
[14 IL=0148 TR=000414 06000125] [aggressive inline attribute] Unsafe:As(ref):ref
[15 IL=0610 TR=000383 06002916] [profitable inline] Task`1:.ctor(int):this
[16 IL=0012 TR=000440 060029B1] [profitable inline] Task:.ctor(bool,int,struct):this
[17 IL=0001 TR=000454 06000198] [below ALWAYS_INLINE size] Object:.ctor():this
[0 IL=0023 TR=000303 0600501D] [FAILED: noinline per IL/cached result] AsyncTaskMethodBuilder`1:SetExistingTaskResult(int):this
Budget: initialTime=525, finalTime=2079, initialBudget=5250, currentBudget=5250
Budget: discretionary inline caused a force inline
Budget: initialSize=3665, finalSize=4743
*************** 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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
*************** 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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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..027)-> BB06 ( cond ) T0 i
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
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 ref class-hnd
; V06 OutArgs lclBlk (na)
; V07 tmp1 int
; V08 tmp2 ref class-hnd
; V09 tmp3 ref class-hnd
; V10 tmp4 struct (16)
; V11 tmp5 struct (16)
; V12 tmp6 ref class-hnd
; V13 tmp7 int
; V14 tmp8 ref class-hnd
; V15 tmp9 ref class-hnd
; V16 tmp10 byref
; V17 tmp11 ref class-hnd
; V18 tmp12 int ld-addr-op
; V19 tmp13 ref class-hnd exact
; V20 tmp14 int
; V21 tmp15 ref class-hnd exact
; V22 tmp16 ref class-hnd
; V23 tmp17 struct ( 8) ld-addr-op
; V24 tmp18 int
Promoting struct local V03 (ConfiguredTaskAwaiter):
lvaGrabTemp returning 25 (V25 tmp19) (a long lifetime temp) called for field V03.m_task (fldOffset=0x0).
lvaGrabTemp returning 26 (V26 tmp20) (a long lifetime temp) called for field V03.m_continueOnCapturedContext (fldOffset=0x8).
Promoting struct local V11 (ConfiguredTaskAwaiter):
lvaGrabTemp returning 27 (V27 tmp21) (a long lifetime temp) called for field V11.m_task (fldOffset=0x0).
lvaGrabTemp returning 28 (V28 tmp22) (a long lifetime temp) called for field V11.m_continueOnCapturedContext (fldOffset=0x8).
Promoting struct local V23 (CancellationToken):
lvaGrabTemp returning 29 (V29 tmp23) (a long lifetime temp) called for field V23._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 ref class-hnd
; V06 OutArgs lclBlk (na)
; V07 tmp1 int
; V08 tmp2 ref class-hnd
; V09 tmp3 ref class-hnd
; V10 tmp4 struct (16)
; V11 tmp5 struct (16)
; V12 tmp6 ref class-hnd
; V13 tmp7 int
; V14 tmp8 ref class-hnd
; V15 tmp9 ref class-hnd
; V16 tmp10 byref
; V17 tmp11 ref class-hnd
; V18 tmp12 int ld-addr-op
; V19 tmp13 ref class-hnd exact
; V20 tmp14 int
; V21 tmp15 ref class-hnd exact
; V22 tmp16 ref class-hnd
; V23 tmp17 struct ( 8) ld-addr-op
; V24 tmp18 int
; V25 tmp19 ref V03.m_task(offs=0x00) P-INDEP
; V26 tmp20 bool V03.m_continueOnCapturedContext(offs=0x08) P-INDEP
; V27 tmp21 ref V11.m_task(offs=0x00) P-INDEP
; V28 tmp22 bool V11.m_continueOnCapturedContext(offs=0x08) P-INDEP
; V29 tmp23 ref V23._source(offs=0x00) P-INDEP
*************** In fgMarkAddressExposedLocals()
Replacing the field in promoted struct with a local var:
[000147] ------------ /--* LCL_VAR ref V09 tmp3
[000197] -A---------- * ASG ref
[000196] D------N---- \--* LCL_VAR ref V27 tmp21
Replacing the field in promoted struct with a local var:
[000201] ------------ /--* CNS_INT int 0
[000203] -A---------- * ASG bool
[000202] D------N---- \--* LCL_VAR bool V28 tmp22
Replacing the field in promoted struct with a local var:
[000217] ------------ /--* LCL_VAR ref V25 tmp19
[000236] -A---------- * ASG ref
[000235] D------N---- \--* LCL_VAR ref V12 tmp6
Local V25 should not be enregistered because: it is address exposed
Local V26 should not be enregistered because: it is address exposed
Local V03 should not be enregistered because: it is address exposed
Replacing the field in promoted struct with a local var:
[000248] ------------ /--* LCL_VAR ref (AX) V25 tmp19
[000275] -A---------- * ASG ref
[000274] D------N---- \--* LCL_VAR ref V14 tmp8
Replacing the field in promoted struct with a local var:
[000254] ------------ /--* LCL_VAR ref (AX) V25 tmp19
[000291] -A---------- * ASG ref
[000290] D------N---- \--* LCL_VAR ref V15 tmp9
*************** In fgRetypeImplicitByRefArgs()
*************** In fgMorphBlocks()
Morphing BB01 of '<Task1>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 '<Task1>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 '<Task1>d__1:MoveNext():this'
fgMorphTree BB03, stmt 3 (before)
[000067] --C-G------- /--* CALL ref Program.Task2
[000166] -AC-G------- * ASG ref
[000165] D------N---- \--* LCL_VAR ref V09 tmp3
argSlots=0, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
fgMorphTree BB03, stmt 4 (before)
[000164] ---X-------- * IND int
[000163] ------------ \--* LCL_VAR ref V09 tmp3
GenTreeNode creates assertion:
[000164] ---X-------- * IND int
In BB03 New Local Constant Assertion: V09 != null index=#01, mask=0000000000000001
fgMorphTree BB03, stmt 5 (before)
[000150] ------------ /--* CNS_INT int 0
[000151] IA------R--- * ASG struct (init)
[000149] D------N---- \--* LCL_VAR struct V10 tmp4
fgMorphInitBlock: this requires an InitBlock.
Local V10 should not be enregistered because: written in a block op
GenTreeNode creates assertion:
[000151] IA------R--- * ASG struct (init)
In BB03 New Local Constant Assertion: V10 == 0 index=#02, mask=0000000000000002
fgMorphTree BB03, stmt 6 (before)
[000176] ------------ /--* CNS_INT int 0
[000177] IA------R--- * ASG struct (init)
[000175] D------N---- \--* LCL_VAR struct(P) V11 tmp5
\--* ref V11.m_task (offs=0x00) -> V27 tmp21
\--* bool V11.m_continueOnCapturedContext (offs=0x08) -> V28 tmp22
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization.
GenTreeNode creates assertion:
[000476] -A---------- * ASG ref
In BB03 New Local Constant Assertion: V27 == null index=#03, mask=0000000000000004
GenTreeNode creates assertion:
[000479] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V28 == 0 index=#04, mask=0000000000000008
fgMorphInitBlock (after):
[000478] ------------ /--* CNS_INT bool 0
[000479] -A---------- /--* ASG bool
[000477] D------N---- | \--* LCL_VAR bool V28 tmp22
[000480] -A---+------ * COMMA void
[000475] ------------ | /--* CNS_INT ref null
[000476] -A---------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp21
fgMorphTree BB03, stmt 6 (after)
[000478] ------------ /--* CNS_INT bool 0
[000479] -A---------- /--* ASG bool
[000477] D------N---- | \--* LCL_VAR bool V28 tmp22
[000480] -A---+------ * COMMA void
[000475] ------------ | /--* CNS_INT ref null
[000476] -A---------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp21
fgMorphTree BB03, stmt 7 (before)
[000147] ------------ /--* LCL_VAR ref V09 tmp3
[000197] -A---------- * ASG ref
[000196] D------N---- \--* LCL_VAR ref V27 tmp21
The assignment [000197] using V27 removes: Constant Assertion: V27 == null
GenTreeNode creates assertion:
[000197] -A---------- * ASG ref
In BB03 New Local Copy Assertion: V27 == V09 index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 8 (before)
[000201] ------------ /--* CNS_INT int 0
[000203] -A---------- * ASG bool
[000202] D------N---- \--* LCL_VAR bool V28 tmp22
The assignment [000203] using V28 removes: Constant Assertion: V28 == 0
GenTreeNode creates assertion:
[000203] -A---------- * ASG bool
In BB03 New Local Constant Assertion: V28 == 0 index=#04, mask=0000000000000008
fgMorphTree BB03, stmt 9 (before)
[000185] ------------ /--* LCL_VAR struct(P) V11 tmp5
/--* ref V11.m_task (offs=0x00) -> V27 tmp21
/--* bool V11.m_continueOnCapturedContext (offs=0x08) -> V28 tmp22
[000189] -A------R--- * ASG struct (copy)
[000188] ------------ \--* OBJ(16) struct
[000187] ------------ \--* ADDR byref
[000186] ------------ \--* FIELD struct m_configuredTaskAwaiter
[000172] L----------- \--* ADDR byref
[000173] ------------ \--* LCL_VAR struct V10 tmp4
Local V10 should not be enregistered because: was accessed as a local field
The assignment [000188] using V10 removes: Constant Assertion: V10 == 0
fgMorphCopyBlock:block assignment to morph:
[000185] -----+------ /--* LCL_VAR struct(P) V11 tmp5
/--* ref V11.m_task (offs=0x00) -> V27 tmp21
/--* bool V11.m_continueOnCapturedContext (offs=0x08) -> V28 tmp22
[000189] -A------R--- * ASG struct (copy)
[000188] x----+------ \--* OBJ(16) struct
[000187] -----+------ \--* ADDR byref
[000173] D----+-N---- \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
(srcDoFldAsg=true) using field by field assignments.
Local V10 should not be enregistered because: written in a block op
lvaGrabTemp returning 30 (V30 tmp24) called for BlockOp address local.
Local V10 should not be enregistered because: it is address exposed
fgMorphCopyBlock (after):
[000496] -------N---- /--* LCL_VAR bool V28 tmp22
[000497] -A---------- /--* ASG bool
[000495] *------N---- | \--* IND bool
[000493] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000494] ------------ | \--* ADD byref
[000492] ------------ | \--* LCL_VAR byref V30 tmp24
[000498] -A---+------ * COMMA void
[000489] -------N---- | /--* LCL_VAR ref V27 tmp21
[000490] -A---------- | /--* ASG ref
[000488] *------N---- | | \--* IND ref
[000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000487] ------------ | | \--* ADD byref
[000485] ------------ | | \--* LCL_VAR byref V30 tmp24
[000491] -A---------- \--* COMMA void
[000481] ------------ | /--* ADDR byref
[000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
[000484] -A---------- \--* ASG byref
[000483] D------N---- \--* LCL_VAR byref V30 tmp24
fgMorphTree BB03, stmt 9 (after)
[000496] -------N---- /--* LCL_VAR bool V28 tmp22
[000497] -A---------- /--* ASG bool
[000495] *------N---- | \--* IND bool
[000493] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000494] ------------ | \--* ADD byref
[000492] ------------ | \--* LCL_VAR byref V30 tmp24
[000498] -A---+------ * COMMA void
[000489] -------N---- | /--* LCL_VAR ref V27 tmp21
[000490] -A---------- | /--* ASG ref
[000488] *------N---- | | \--* IND ref
[000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000487] ------------ | | \--* ADD byref
[000485] ------------ | | \--* LCL_VAR byref V30 tmp24
[000491] -A---------- \--* COMMA void
[000481] ------------ | /--* ADDR byref
[000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
[000484] -A---------- \--* ASG byref
[000483] D------N---- \--* LCL_VAR byref V30 tmp24
fgMorphTree BB03, stmt 10 (before)
[000159] ------------ /--* LCL_VAR struct(AX) V10 tmp4
[000162] -A------R--- * ASG struct (copy)
[000161] D----------- \--* LCL_VAR struct V04 loc3
fgMorphCopyBlock:block assignment to morph:
[000159] ----G+------ /--* LCL_VAR struct(AX) V10 tmp4
[000162] -A--G---R--- * ASG struct (copy)
[000161] D----+-N---- \--* LCL_VAR struct V04 loc3
with no promoted structs this requires a CopyBlock.
Local V04 should not be enregistered because: written in a block op
Local V10 should not be enregistered because: written in a block op
fgMorphTree BB03, stmt 11 (before)
[000209] ------------ /--* FIELD struct m_configuredTaskAwaiter
[000207] L----------- | \--* ADDR byref
[000208] ------------ | \--* LCL_VAR struct V04 loc3
[000212] -A------R--- * ASG struct (copy)
[000211] D----------- \--* LCL_VAR struct(AX)(P) V03 loc2
\--* ref V03.m_task (offs=0x00) -> V25 tmp19
\--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
Local V04 should not be enregistered because: was accessed as a local field
fgMorphCopyBlock:block assignment to morph:
[000208] -----+-N---- /--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000212] -A--G---R--- * ASG struct (copy)
[000211] D---G+-N---- \--* LCL_VAR struct(AX)(P) V03 loc2
\--* ref V03.m_task (offs=0x00) -> V25 tmp19
\--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
(destDoFldAsg=true) using field by field assignments.
Local V04 should not be enregistered because: written in a block op
lvaGrabTemp returning 31 (V31 tmp25) called for BlockOp address local.
Local V04 should not be enregistered because: it is address exposed
fgMorphCopyBlock (after):
[000516] ---X-------- /--* IND bool
[000514] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000515] ------------ | \--* ADD byref
[000513] ------------ | \--* LCL_VAR byref V31 tmp25
[000517] -A-XG------- /--* ASG bool
[000512] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
[000518] -A-XG+------ * COMMA void
[000509] ---X-------- | /--* IND ref
[000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000508] ------------ | | \--* ADD byref
[000506] ------------ | | \--* LCL_VAR byref V31 tmp25
[000510] -A-XG------- | /--* ASG ref
[000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000511] -A-XG------- \--* COMMA void
[000501] ------------ | /--* ADDR byref
[000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000504] -A---------- \--* ASG byref
[000503] D------N---- \--* LCL_VAR byref V31 tmp25
fgMorphTree BB03, stmt 11 (after)
[000516] ---X-------- /--* IND bool
[000514] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000515] ------------ | \--* ADD byref
[000513] ------------ | \--* LCL_VAR byref V31 tmp25
[000517] -A-XG------- /--* ASG bool
[000512] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
[000518] -A-XG+------ * COMMA void
[000509] ---X-------- | /--* IND ref
[000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000508] ------------ | | \--* ADD byref
[000506] ------------ | | \--* LCL_VAR byref V31 tmp25
[000510] -A-XG------- | /--* ASG ref
[000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000511] -A-XG------- \--* COMMA void
[000501] ------------ | /--* ADDR byref
[000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000504] -A---------- \--* ASG byref
[000503] D------N---- \--* LCL_VAR byref V31 tmp25
fgMorphTree BB03, stmt 12 (before)
[000217] ------------ /--* LCL_VAR ref (AX) V25 tmp19
[000236] -A---------- * ASG ref
[000235] D------N---- \--* LCL_VAR ref V12 tmp6
fgMorphTree BB03, stmt 13 (before)
[000225] V--XGO-N---- /--* FIELD int m_stateFlags
[000224] ------------ | \--* LCL_VAR ref V12 tmp6
[000227] -A-XGO------ * ASG int
[000226] D------N---- \--* LCL_VAR int V13 tmp7
GenTreeNode creates assertion:
[000225] V--XGO-N---- * IND int
In BB03 New Local Constant Assertion: V12 != null index=#04, mask=0000000000000008
GenTreeNode creates assertion:
[000227] -A-XGO------ * ASG int
In BB03 New Local Subrange Assertion: V13 in [-2147483648..2147483647] index=#05, mask=0000000000000010
fgMorphTree BB03, stmt 13 (after)
[000225] V--XG+-N---- /--* IND int
[000519] -----+------ | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000520] -----+------ | \--* ADD byref
[000224] -----+------ | \--* LCL_VAR ref V12 tmp6
[000227] -A-XG+------ * ASG int
[000226] D----+-N---- \--* LCL_VAR int V13 tmp7
fgMorphTree BB03, stmt 14 (before)
[000095] --C--------- * JTRUE void
[000093] ------------ | /--* CNS_INT int 0
[000094] --C--------- \--* NE int
[000221] --C--------- \--* CAST int <- bool <- int
[000234] --C--------- \--* CAST int <- bool <- int
[000242] ------------ | /--* CNS_INT int 0
[000243] N--------U-- \--* GT int
[000240] ------------ | /--* CNS_INT int 0x1600000
[000241] ------------ \--* AND int
[000229] ------------ \--* LCL_VAR int V13 tmp7
fgMorphTree BB03, stmt 14 (after)
[000095] -----+------ * JTRUE void
[000242] -----+------ | /--* CNS_INT int 0
[000243] N----+-N---- \--* NE int
[000240] -----+------ | /--* CNS_INT int 0x1600000
[000241] -----+------ \--* AND int
[000229] -----+------ \--* LCL_VAR int V13 tmp7
Morphing BB04 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB04, stmt 15 (before)
[000100] ------------ /--* CNS_INT int 0
[000102] -A---------- * ASG int
[000101] D------N---- \--* LCL_VAR int V01 loc0
GenTreeNode creates assertion:
[000102] -A---------- * ASG int
In BB04 New Local Constant Assertion: V01 == 0 index=#01, mask=0000000000000001
fgMorphTree BB04, stmt 16 (before)
[000099] ------------ /--* CNS_INT int 0
[000105] -A-XG------- * ASG int
[000104] ---XG--N---- \--* FIELD int <>1__state
[000098] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 16 (after)
[000099] -----+------ /--* CNS_INT int 0
[000105] -A-XG+------ * ASG int
[000104] *--XG+-N---- \--* IND int
[000098] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB04, stmt 17 (before)
[000108] ------------ /--* LCL_VAR struct(AX)(P) V03 loc2
/--* ref V03.m_task (offs=0x00) -> V25 tmp19
/--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000112] -A-XG---R--- * ASG struct (copy)
[000111] ---XG------- \--* OBJ(16) struct
[000110] ---XG------- \--* ADDR byref
[000109] ---XG------- \--* FIELD struct <>u__1
[000107] ------------ \--* LCL_VAR byref V00 this
fgMorphCopyBlock:block assignment to morph:
[000108] ----G+------ /--* LCL_VAR struct(AX)(P) V03 loc2
/--* ref V03.m_task (offs=0x00) -> V25 tmp19
/--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000112] -A-XG---R--- * ASG struct (copy)
[000111] ---XG+------ \--* OBJ(16) struct
[000521] -----+------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000522] -----+------ \--* ADD byref
[000107] -----+------ \--* LCL_VAR byref V00 this
(srcDoFldAsg=true) using field by field assignments.
lvaGrabTemp returning 32 (V32 tmp26) called for BlockOp address local.
fgMorphCopyBlock (after):
[000539] ----G--N---- /--* LCL_VAR bool (AX) V26 tmp20
[000540] -A-XG------- /--* ASG bool
[000538] *--X---N---- | \--* IND bool
[000536] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000537] ------------ | \--* ADD byref
[000535] ------------ | \--* LCL_VAR byref V32 tmp26
[000541] -A-XG+------ * COMMA void
[000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
[000533] -A-XG------- | /--* ASG ref
[000531] *--X---N---- | | \--* IND ref
[000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000530] ------------ | | \--* ADD byref
[000528] ------------ | | \--* LCL_VAR byref V32 tmp26
[000534] -A-XG------- \--* COMMA void
[000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000523] ------------ | /--* ADD byref
[000524] ------------ | | \--* LCL_VAR byref V00 this
[000527] -A---------- \--* ASG byref
[000526] D------N---- \--* LCL_VAR byref V32 tmp26
fgMorphTree BB04, stmt 17 (after)
[000539] ----G--N---- /--* LCL_VAR bool (AX) V26 tmp20
[000540] -A-XG------- /--* ASG bool
[000538] *--X---N---- | \--* IND bool
[000536] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000537] ------------ | \--* ADD byref
[000535] ------------ | \--* LCL_VAR byref V32 tmp26
[000541] -A-XG+------ * COMMA void
[000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
[000533] -A-XG------- | /--* ASG ref
[000531] *--X---N---- | | \--* IND ref
[000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000530] ------------ | | \--* ADD byref
[000528] ------------ | | \--* LCL_VAR byref V32 tmp26
[000534] -A-XG------- \--* COMMA void
[000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000523] ------------ | /--* ADD byref
[000524] ------------ | | \--* LCL_VAR byref V00 this
[000527] -A---------- \--* ASG byref
[000526] D------N---- \--* LCL_VAR byref V32 tmp26
fgMorphTree BB04, stmt 18 (before)
[000120] --CXG------- * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
[000116] ---XG------- this in rcx +--* ADDR byref
[000115] ---XG------- | \--* FIELD struct <>t__builder
[000114] ------------ | \--* LCL_VAR byref V00 this
[000118] L----------- arg1 +--* ADDR byref
[000117] ------------ | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000119] ------------ arg2 \--* LCL_VAR byref V00 this
Before explicit null check morphing:
[000115] ---XG--N---- * FIELD struct <>t__builder
[000114] ------------ \--* LCL_VAR byref V00 this
After adding explicit null check:
[000115] *--XG--N---- * IND struct
[000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000546] ------------ | /--* ADD byref
[000544] ------------ | | \--* LCL_VAR byref V00 this
[000547] ---X-------- \--* COMMA byref
[000543] ---X---N---- \--* NULLCHECK byte
[000542] ------------ \--* LCL_VAR byref V00 this
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
( 1, 1) [000545] ------------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
( 5, 4) [000546] ------------ /--* ADD byref
( 3, 2) [000544] ------------ | \--* LCL_VAR byref V00 this
( 9, 7) [000547] ---XG--N---- * COMMA byref
( 4, 3) [000543] ---X---N---- \--* NULLCHECK byte
( 3, 2) [000542] ------------ \--* LCL_VAR byref V00 this
Replaced with placeholder node:
[000549] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
( 3, 3) [000118] L----------- * ADDR long
( 3, 2) [000117] ----G--N---- \--* LCL_VAR struct(AX)(P) V03 loc2
\--* ref V03.m_task (offs=0x00) -> V25 tmp19
\--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
Replaced with placeholder node:
[000551] ----------L- * ARGPLACE long
Deferred argument ('r8'):
[000119] -----+------ * LCL_VAR byref V00 this
Replaced with placeholder node:
[000553] ----------L- * ARGPLACE byref
Shuffled argument table: rcx rdx r8
fgArgTabEntry[arg 0 547.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 118.ADDR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgArgTabEntry[arg 2 119.LCL_VAR, 1 reg: r8, align=1, lateArgInx=2, processed]
fgMorphTree BB04, stmt 18 (after)
[000120] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
( 5, 4) [000546] ------------ | /--* ADD byref
( 3, 2) [000544] ------------ | | \--* LCL_VAR byref V00 this
( 9, 7) [000547] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000543] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000542] ------------ | \--* LCL_VAR byref V00 this
( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000119] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
Morphing BB05 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB05, stmt 19 (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)(P) V03 loc2
\--* ref V03.m_task (offs=0x00) -> V25 tmp19
\--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
fgMorphCopyBlock:block assignment to morph:
[000016] *--XG+------ /--* IND struct
[000555] -----+------ | | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000556] -----+------ | \--* ADD byref
[000015] -----+------ | \--* LCL_VAR byref V00 this
[000019] -A-XG---R--- * ASG struct (copy)
[000017] D---G+-N---- \--* LCL_VAR struct(AX)(P) V03 loc2
\--* ref V03.m_task (offs=0x00) -> V25 tmp19
\--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
(destDoFldAsg=true) using field by field assignments.
lvaGrabTemp returning 33 (V33 tmp27) called for BlockOp address local.
fgMorphCopyBlock (after):
[000573] ---X-------- /--* IND bool
[000571] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000572] ------------ | \--* ADD byref
[000570] ------------ | \--* LCL_VAR byref V33 tmp27
[000574] -A-XG------- /--* ASG bool
[000569] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
[000575] -A-XG+------ * COMMA void
[000566] ---X-------- | /--* IND ref
[000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000565] ------------ | | \--* ADD byref
[000563] ------------ | | \--* LCL_VAR byref V33 tmp27
[000567] -A-XG------- | /--* ASG ref
[000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000568] -A-XG------- \--* COMMA void
[000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000557] ------------ | /--* ADD byref
[000558] ------------ | | \--* LCL_VAR byref V00 this
[000561] -A---------- \--* ASG byref
[000560] D------N---- \--* LCL_VAR byref V33 tmp27
fgMorphTree BB05, stmt 19 (after)
[000573] ---X-------- /--* IND bool
[000571] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000572] ------------ | \--* ADD byref
[000570] ------------ | \--* LCL_VAR byref V33 tmp27
[000574] -A-XG------- /--* ASG bool
[000569] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
[000575] -A-XG+------ * COMMA void
[000566] ---X-------- | /--* IND ref
[000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000565] ------------ | | \--* ADD byref
[000563] ------------ | | \--* LCL_VAR byref V33 tmp27
[000567] -A-XG------- | /--* ASG ref
[000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000568] -A-XG------- \--* COMMA void
[000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000557] ------------ | /--* ADD byref
[000558] ------------ | | \--* LCL_VAR byref V00 this
[000561] -A---------- \--* ASG byref
[000560] D------N---- \--* LCL_VAR byref V33 tmp27
fgMorphTree BB05, stmt 20 (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 20 (after)
[000024] -----+------ /--* CNS_INT int 0
[000026] IA-XG+--R--- * ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000576] -----+------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000577] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB05, stmt 21 (before)
[000029] ------------ /--* CNS_INT int -1
[000031] -A---------- * ASG int
[000030] D------N---- \--* LCL_VAR int V07 tmp1
GenTreeNode creates assertion:
[000031] -A---------- * ASG int
In BB05 New Local Constant Assertion: V07 == -1 index=#01, mask=0000000000000001
fgMorphTree BB05, stmt 22 (before)
[000034] ------------ /--* LCL_VAR int V07 tmp1
[000036] -A---------- * ASG int
[000035] D------N---- \--* LCL_VAR int V01 loc0
Assertion prop in BB05:
Constant Assertion: V07 == -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 22 (after)
[000034] -----+------ /--* CNS_INT int -1
[000036] -A---+------ * ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
fgMorphTree BB05, stmt 23 (before)
[000033] ------------ /--* LCL_VAR int V07 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: V07 == -1 index=#01, mask=0000000000000001
[000033] ------------ * CNS_INT int -1
fgMorphTree BB05, stmt 23 (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 '<Task1>d__1:MoveNext():this'
fgMorphTree BB06, stmt 24 (before)
[000248] ------------ /--* LCL_VAR ref (AX) V25 tmp19
[000275] -A---------- * ASG ref
[000274] D------N---- \--* LCL_VAR ref V14 tmp8
Morphing BB18 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB18, stmt 25 (before)
[000266] --C--------- * JTRUE void
[000264] ------------ | /--* CNS_INT int 0
[000265] --C--------- \--* EQ int
[000284] ------------ | /--* CNS_INT int 0
[000285] ---XGO------ \--* EQ int
[000282] ------------ | /--* CNS_INT int 0x1000000
[000283] ---XGO------ \--* EQ int
[000280] ------------ | /--* CNS_INT int 0x11000000
[000281] ---XGO------ \--* AND int
[000279] V--XGO-N---- \--* FIELD int m_stateFlags
[000260] ------------ \--* LCL_VAR ref V14 tmp8
GenTreeNode creates assertion:
[000279] V--XGO-N---- * IND int
In BB18 New Local Constant Assertion: V14 != null index=#01, mask=0000000000000001
fgMorphTree BB18, stmt 25 (after)
[000266] ---XG+------ * JTRUE void
[000282] -----+------ | /--* CNS_INT int 0x1000000
[000283] J--XG+-N---- \--* EQ int
[000280] -----+------ | /--* CNS_INT int 0x11000000
[000281] ---XG+------ \--* AND int
[000279] V--XG+-N---- \--* IND int
[000578] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000579] -----+------ \--* ADD byref
[000260] -----+------ \--* LCL_VAR ref V14 tmp8
Morphing BB19 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB19, stmt 26 (before)
[000271] --C-G------- * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] ------------ arg0 \--* LCL_VAR ref V14 tmp8
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000270] -----+------ * LCL_VAR ref V14 tmp8
Replaced with placeholder node:
[000580] ----------L- * ARGPLACE ref
Shuffled argument table: rcx
fgArgTabEntry[arg 0 270.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgMorphTree BB19, stmt 26 (after)
[000271] --CXG+------ * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] -----+------ arg0 in rcx \--* LCL_VAR ref V14 tmp8
Morphing BB20 of '<Task1>d__1:MoveNext():this'
Morphing BB21 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB21, stmt 27 (before)
[000254] ------------ /--* LCL_VAR ref (AX) V25 tmp19
[000291] -A---------- * ASG ref
[000290] D------N---- \--* LCL_VAR ref V15 tmp9
fgMorphTree BB21, stmt 28 (before)
[000289] ---XG------- /--* FIELD int m_result
[000288] ------------ | \--* LCL_VAR ref V15 tmp9
[000048] -AC--------- * ASG int
[000047] D------N---- \--* LCL_VAR int V02 loc1
GenTreeNode creates assertion:
[000289] ---XG------- * IND int
In BB21 New Local Constant Assertion: V15 != null index=#01, mask=0000000000000001
GenTreeNode creates assertion:
[000048] -A-XG------- * ASG int
In BB21 New Local Subrange Assertion: V02 in [-2147483648..2147483647] index=#02, mask=0000000000000002
fgMorphTree BB21, stmt 28 (after)
[000289] ---XG+------ /--* IND int
[000582] -----+------ | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000583] -----+------ | \--* ADD byref
[000288] -----+------ | \--* LCL_VAR ref V15 tmp9
[000048] -A-XG+------ * ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
Morphing BB07 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB07, stmt 29 (before)
[000007] -----O------ /--* CATCH_ARG ref
[000126] -A---O------ * ASG ref
[000125] D------N---- \--* LCL_VAR ref V08 tmp2
fgMorphTree BB07, stmt 30 (before)
[000128] ------------ /--* LCL_VAR ref V08 tmp2
[000130] -A---------- * ASG ref
[000129] D------N---- \--* LCL_VAR ref V05 loc4
GenTreeNode creates assertion:
[000130] -A---------- * ASG ref
In BB07 New Local Copy Assertion: V05 == V08 index=#01, mask=0000000000000001
fgMorphTree BB07, stmt 31 (before)
[000133] ------------ /--* CNS_INT int -2
[000135] -A-XG------- * ASG int
[000134] ---XG--N---- \--* FIELD int <>1__state
[000132] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB07, stmt 31 (after)
[000133] -----+------ /--* CNS_INT int -2
[000135] -A-XG+------ * ASG int
[000134] *--XG+-N---- \--* IND int
[000132] -----+------ \--* LCL_VAR byref V00 this
fgMorphTree BB07, stmt 32 (before)
[000141] --CXG------- * CALL void AsyncTaskMethodBuilder`1.SetException
[000139] ---XG------- this in rcx +--* ADDR byref
[000138] ---XG------- | \--* FIELD struct <>t__builder
[000137] ------------ | \--* LCL_VAR byref V00 this
[000140] ------------ arg1 \--* LCL_VAR ref V05 loc4
Before explicit null check morphing:
[000138] ---XG--N---- * FIELD struct <>t__builder
[000137] ------------ \--* LCL_VAR byref V00 this
After adding explicit null check:
[000138] *--XG--N---- * IND struct
[000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] ------------ | /--* ADD byref
[000586] ------------ | | \--* LCL_VAR byref V00 this
[000589] ---X-------- \--* COMMA byref
[000585] ---X---N---- \--* NULLCHECK byte
[000584] ------------ \--* LCL_VAR byref V00 this
Assertion prop in BB07:
Copy Assertion: V05 == V08 index=#01, mask=0000000000000001
[000140] ------------ * LCL_VAR ref V08 tmp2
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000587] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] -----+------ /--* ADD byref
[000586] -----+------ | \--* LCL_VAR byref V00 this
[000589] ---XG+-N---- * COMMA byref
[000585] ---X-+-N---- \--* NULLCHECK byte
[000584] -----+------ \--* LCL_VAR byref V00 this
Replaced with placeholder node:
[000591] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
[000140] -----+------ * LCL_VAR ref V08 tmp2
Replaced with placeholder node:
[000593] ----------L- * ARGPLACE ref
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 589.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 140.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgMorphTree BB07, stmt 32 (after)
[000141] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.SetException
[000587] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] -----+------ | /--* ADD byref
[000586] -----+------ | | \--* LCL_VAR byref V00 this
[000589] ---XG+-N---- this in rcx +--* COMMA byref
[000585] ---X-+-N---- | \--* NULLCHECK byte
[000584] -----+------ | \--* LCL_VAR byref V00 this
[000140] -----+------ arg1 in rdx \--* LCL_VAR ref V08 tmp2
Morphing BB08 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB08, stmt 33 (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 33 (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 34 (before)
[000058] ---XG------- /--* ADDR byref
[000057] ---XG------- | \--* FIELD struct <>t__builder
[000056] ------------ | \--* LCL_VAR byref V00 this
[000317] -A-XG------- * ASG byref
[000316] D------N---- \--* LCL_VAR byref V16 tmp10
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
[000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000599] ------------ | /--* ADD byref
[000597] ------------ | | \--* LCL_VAR byref V00 this
[000600] ---X-------- \--* COMMA byref
[000596] ---X---N---- \--* NULLCHECK byte
[000595] ------------ \--* LCL_VAR byref V00 this
fgMorphTree BB08, stmt 34 (after)
[000598] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000599] -----+------ /--* ADD byref
[000597] -----+------ | \--* LCL_VAR byref V00 this
[000600] ---XG+-N---- /--* COMMA byref
[000596] ---X-+-N---- | \--* NULLCHECK byte
[000595] -----+------ | \--* LCL_VAR byref V00 this
[000317] -A-XG+------ * ASG byref
[000316] D----+-N---- \--* LCL_VAR byref V16 tmp10
Morphing BB24 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB24, stmt 35 (before)
[000299] ---XG------- * JTRUE void
[000297] ------------ | /--* CNS_INT ref null
[000298] ---XG------- \--* NE int
[000296] ---XG------- \--* FIELD ref m_task
[000295] ------------ \--* LCL_VAR byref V16 tmp10
fgMorphTree BB24, stmt 35 (after)
[000299] ---XG+------ * JTRUE void
[000297] -----+------ | /--* CNS_INT ref null
[000298] J--XG+-N---- \--* NE int
[000296] *--XG+------ \--* IND ref
[000295] -----+------ \--* LCL_VAR byref V16 tmp10
Morphing BB25 of '<Task1>d__1:MoveNext():this'
Morphing BB62 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB62, stmt 36 (before)
[000323] ------------ /--* CNS_INT int 0
[000325] IA------R--- * ASG struct (init)
[000324] -------N---- \--* BLK(4) struct
[000322] L----------- \--* ADDR byref
[000321] ------------ \--* LCL_VAR int V18 tmp12
fgMorphInitBlock:fgMorphOneAsgBlock (after):
[000323] -----+------ /--* CNS_INT int 0
[000325] -A---------- * ASG int
[000321] D----+-N---- \--* LCL_VAR int V18 tmp12
using oneAsgTree.
GenTreeNode creates assertion:
[000325] -A---------- * ASG int
In BB62 New Local Constant Assertion: V18 == 0 index=#01, mask=0000000000000001
fgMorphTree BB62, stmt 36 (after)
[000323] -----+------ /--* CNS_INT int 0
[000325] -A---+------ * ASG int
[000321] D----+-N---- \--* LCL_VAR int V18 tmp12
fgMorphTree BB62, stmt 37 (before)
[000331] ------------ * NOP void
fgMorphTree BB62, stmt 38 (before)
[000337] ------------ * NOP void
Morphing BB63 of '<Task1>d__1:MoveNext():this'
Morphing BB64 of '<Task1>d__1:MoveNext():this'
Morphing BB65 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB65, stmt 39 (before)
[000308] ------------ /--* LCL_VAR int V02 loc1
[000368] -A---------- * ASG int
[000367] D------N---- \--* LCL_VAR int V20 tmp14
GenTreeNode creates assertion:
[000368] -A---------- * ASG int
In BB65 New Local Copy Assertion: V20 == V02 index=#01, mask=0000000000000001
fgMorphTree BB65, stmt 40 (before)
[000373] ------------ * JTRUE void
[000371] ------------ | /--* CNS_INT int 9
[000372] ------------ \--* GE int
[000370] ------------ \--* LCL_VAR int V20 tmp14
Assertion prop in BB65:
Copy Assertion: V20 == V02 index=#01, mask=0000000000000001
[000370] ------------ * LCL_VAR int V02 loc1
fgMorphTree BB65, stmt 40 (after)
[000373] -----+------ * JTRUE void
[000371] -----+------ | /--* CNS_INT int 9
[000372] J----+-N---- \--* GE int
[000370] -----+------ \--* LCL_VAR int V02 loc1
Morphing BB66 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB66, stmt 41 (before)
[000395] ------------ * JTRUE void
[000393] ------------ | /--* CNS_INT int -1
[000394] ------------ \--* LT int
[000392] ------------ \--* LCL_VAR int V20 tmp14
Morphing BB67 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB67, stmt 42 (before)
[000407] ------------ /--* CNS_INT int -1
[000408] ------------ /--* SUB int
[000406] ------------ | \--* LCL_VAR int V20 tmp14
[000409] R-CXG------- /--* INDEX ref
[000398] ----G------- | | /--* FIELD ref Int32Tasks
[000405] --CXG------- | \--* COMMA ref
[000404] H-CXG------- | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] ------------ arg0 | +--* CNS_INT long 0x7ffc0d5c3020
[000401] ------------ arg1 | \--* CNS_INT int 0x70A
[000411] -ACXG------- * ASG ref
[000410] D------N---- \--* LCL_VAR ref V22 tmp16
lvaGrabTemp returning 34 (V34 tmp28) called for arr expr.
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000400] -----+------ * CNS_INT long 0x7ffc0d5c3020
Replaced with placeholder node:
[000619] ----------L- * ARGPLACE long
Deferred argument ('rdx'):
[000401] -----+------ * CNS_INT int 0x70A
Replaced with placeholder node:
[000621] ----------L- * ARGPLACE int
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 400.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 401.CNS_INT, 1 reg: rdx, align=1, lateArgInx=1, processed]
GenTreeNode creates assertion:
[000609] ---X-------- * ARR_LENGTH int
In BB67 New Local Constant Assertion: V34 != null index=#01, mask=0000000000000001
fgMorphTree BB67, stmt 42 (after)
[000409] a---G+------ /--* IND ref
[000615] -----+------ | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000616] -----+------ | \--* ADD byref
[000612] -----+-N---- | | /--* CNS_INT long 3
[000613] -----+------ | | /--* LSH long
[000611] -----+------ | | | \--* CAST long <- int
[000608] -----+------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000606] -----+------ | | | \--* ADD int
[000607] i----+------ | | | \--* LCL_VAR int V20 tmp14
[000614] -----+------ | \--* ADD byref
[000605] -----+------ | \--* LCL_VAR ref V34 tmp28
[000617] ---XG+------ /--* COMMA ref
[000610] ---X-+------ | \--* ARR_BOUNDS_CHECK_Rng void
[000407] -----+------ | | /--* CNS_INT int 1
[000408] -----+------ | +--* ADD int
[000406] -----+------ | | \--* LCL_VAR int V20 tmp14
[000609] ---X-+------ | \--* ARR_LENGTH int
[000604] -----+------ | \--* LCL_VAR ref V34 tmp28
[000618] -ACXG+------ /--* COMMA ref
[000398] x---G+------ | | /--* IND ref
[000623] -----+------ | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
[000405] --CXG+------ | | /--* COMMA ref
[000404] H-CXG+------ | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] -----+------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] -----+------ arg1 in rdx | | | \--* CNS_INT int 0x70A
[000603] -ACXG+------ | \--* ASG ref
[000602] D----+-N---- | \--* LCL_VAR ref V34 tmp28
[000411] -ACXG+------ * ASG ref
[000410] D----+-N---- \--* LCL_VAR ref V22 tmp16
fgMorphTree BB67, stmt 43 (before)
[000413] ------------ /--* LCL_VAR ref V22 tmp16
[000421] -AC--------- * ASG ref
[000420] D------N---- \--* LCL_VAR ref V17 tmp11
GenTreeNode creates assertion:
[000421] -A---------- * ASG ref
In BB67 New Local Copy Assertion: V17 == V22 index=#02, mask=0000000000000002
Morphing BB68 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB68, stmt 44 (before)
[000378] ------------ /--* ALLOCOBJ ref
[000377] ------------ | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -A---------- * ASG ref
[000379] D------N---- \--* LCL_VAR ref V21 tmp15
fgMorphTree BB68, stmt 45 (before)
[000436] ------------ /--* CNS_INT int 0
[000437] IA------R--- * ASG struct (init)
[000434] D------N---- \--* LCL_VAR struct(P) V23 tmp17
\--* ref V23._source (offs=0x00) -> V29 tmp23
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization.
GenTreeNode creates assertion:
[000626] -A---------- * ASG ref
In BB68 New Local Constant Assertion: V29 == null index=#01, mask=0000000000000001
fgMorphInitBlock (after):
[000625] ------------ /--* CNS_INT ref null
[000626] -A---+------ * ASG ref
[000624] D------N---- \--* LCL_VAR ref V29 tmp23
The assignment [000626] using V29 removes: Constant Assertion: V29 == null
GenTreeNode creates assertion:
[000626] -A---+------ * ASG ref
In BB68 New Local Constant Assertion: V29 == null index=#01, mask=0000000000000001
fgMorphTree BB68, stmt 45 (after)
[000625] ------------ /--* CNS_INT ref null
[000626] -A---+------ * ASG ref
[000624] D------N---- \--* LCL_VAR ref V29 tmp23
Morphing BB75 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB75, stmt 46 (before)
[000456] ------------ /--* CNS_INT int 0
[000458] -A---------- * ASG int
[000457] D------N---- \--* LCL_VAR int V24 tmp18
GenTreeNode creates assertion:
[000458] -A---------- * ASG int
In BB75 New Local Constant Assertion: V24 == 0 index=#01, mask=0000000000000001
Morphing BB76 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB76, stmt 47 (before)
[000466] ------------ /--* LCL_VAR int V24 tmp18
[000467] ------------ /--* OR int
[000465] ------------ | \--* CNS_INT int 0x1000000
[000469] -A-XGO------ * ASG int
[000468] V--XGO-N---- \--* FIELD int m_stateFlags
[000464] ------------ \--* LCL_VAR ref V21 tmp15
GenTreeNode creates assertion:
[000468] V--XGO-N---- * IND int
In BB76 New Local Constant Assertion: V21 != null index=#01, mask=0000000000000001
fgMorphTree BB76, stmt 47 (after)
[000465] -----+------ /--* CNS_INT int 0x1000000
[000467] -----+------ /--* OR int
[000466] -----+------ | \--* LCL_VAR int V24 tmp18
[000469] -A-XG+------ * ASG int
[000468] V--XG+-N---- \--* IND int
[000627] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000628] -----+------ \--* ADD byref
[000464] -----+------ \--* LCL_VAR ref V21 tmp15
Morphing BB77 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB77, stmt 48 (before)
[000376] ------------ /--* LCL_VAR int V02 loc1
[000449] -A-XG------- * ASG int
[000448] ---XG--N---- \--* FIELD int m_result
[000447] ------------ \--* LCL_VAR ref V21 tmp15
GenTreeNode creates assertion:
[000448] ---XG--N---- * IND int
In BB77 New Local Constant Assertion: V21 != null index=#01, mask=0000000000000001
fgMorphTree BB77, stmt 48 (after)
[000376] -----+------ /--* LCL_VAR int V02 loc1
[000449] -A-XG+------ * ASG int
[000448] ---XG+-N---- \--* IND int
[000629] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000630] -----+------ \--* ADD byref
[000447] -----+------ \--* LCL_VAR ref V21 tmp15
fgMorphTree BB77, stmt 49 (before)
[000386] ------------ /--* LCL_VAR ref V21 tmp15
[000388] -A---------- * ASG ref
[000387] D------N---- \--* LCL_VAR ref V17 tmp11
GenTreeNode creates assertion:
[000388] -A---------- * ASG ref
In BB77 New Local Copy Assertion: V17 == V21 index=#02, mask=0000000000000002
Morphing BB69 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB69, stmt 50 (before)
[000424] ------------ /--* CNS_INT ref null
[000426] -A---------- * ASG ref
[000425] D------N---- \--* LCL_VAR ref V22 tmp16
GenTreeNode creates assertion:
[000426] -A---------- * ASG ref
In BB69 New Local Constant Assertion: V22 == null index=#01, mask=0000000000000001
fgMorphTree BB69, stmt 51 (before)
[000423] ------------ /--* LCL_VAR ref V17 tmp11
[000314] -ACXG------- * ASG ref
[000313] ---XG--N---- \--* FIELD ref m_task
[000307] ------------ \--* LCL_VAR byref V16 tmp10
fgMorphTree BB69, stmt 51 (after)
[000423] -----+------ /--* LCL_VAR ref V17 tmp11
[000314] -A-XG+------ * ASG ref
[000313] *--XG+-N---- \--* IND ref
[000307] -----+------ \--* LCL_VAR byref V16 tmp10
Morphing BB26 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB26, stmt 52 (before)
[000303] --C-G------- * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1
Rejecting tail call late for call [000303]: Local address taken
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000302] -----+------ * LCL_VAR byref V16 tmp10
Replaced with placeholder node:
[000631] ----------L- * ARGPLACE byref
Deferred argument ('rdx'):
[000059] -----+------ * LCL_VAR int V02 loc1
Replaced with placeholder node:
[000633] ----------L- * ARGPLACE int
Shuffled argument table: rcx rdx
fgArgTabEntry[arg 0 302.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 59.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed]
fgMorphTree BB26, stmt 52 (after)
[000303] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] -----+------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
Morphing BB27 of '<Task1>d__1:MoveNext():this'
Morphing BB09 of '<Task1>d__1:MoveNext():this'
fgMorphTree BB09, stmt 53 (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..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 1 [027..047)-> BB09 (always) T0 i gcsafe
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB18 [0017] 1 0 1 [063..064)-> BB20 ( cond ) T0 i
BB19 [0018] 1 0 0.50 [063..064) T0 i gcsafe
BB20 [0019] 2 0 1 [063..064) T0 i
BB21 [0020] 1 0 1 [???..???)-> BB08 (always) T0 } internal
BB07 [0006] 1 0 1 [06D..086)-> BB09 ( cret ) H0 catch { } keep i label target gcsafe
BB08 [0007] 1 1 [086..09A) i
BB24 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB25 [0024] 1 1 [08E..08F) i
BB62 [0027] 1 1 [08E..08F) i newobj
BB63 [0028] 1 0.50 [08E..08F)-> BB64 (always) i
BB64 [0033] 1 0.50 [08E..08F) i
BB65 [0034] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB66 [0035] 1 0.50 [08E..08F)-> BB68 ( cond ) i
BB67 [0036] 1 1 [08E..08F)-> BB69 (always) i
BB68 [0060] 5 1 [08E..08F) i newobj
BB75 [0064] 1 1 [08E..08F)-> BB76 (always) i
BB76 [0066] 1 1 [08E..08F) i
BB77 [0067] 1 1 [???..???) internal newobj
BB69 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i gcsafe
BB27 [0026] 1 1 [???..???) internal
BB09 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB21 [007..06D), Handler at BB07..BB07 [06D..086)
Renumber BB18 to BB07
Renumber BB19 to BB08
Renumber BB20 to BB09
Renumber BB21 to BB10
Renumber BB07 to BB11
Renumber BB08 to BB12
Renumber BB24 to BB13
Renumber BB25 to BB14
Renumber BB62 to BB15
Renumber BB63 to BB16
Renumber BB64 to BB17
Renumber BB65 to BB18
Renumber BB66 to BB19
Renumber BB67 to BB20
Renumber BB68 to BB21
Renumber BB75 to BB22
Renumber BB76 to BB23
Renumber BB77 to BB24
Renumber BB69 to BB25
Renumber BB09 to BB28
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB07 [0017] 1 0 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 1 [063..064) T0 i
BB10 [0020] 1 0 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 1 [086..09A) i
BB13 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 1 [08E..08F) i
BB15 [0027] 1 1 [08E..08F) i newobj
BB16 [0028] 1 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 0.50 [08E..08F) i
BB18 [0034] 1 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 5 1 [08E..08F) i newobj
BB22 [0064] 1 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 1 [08E..08F) i
BB24 [0067] 1 1 [???..???) internal newobj
BB25 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i gcsafe
BB27 [0026] 1 1 [???..???) internal
BB28 [0008] 3 1 [09A..09B) (return) i
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB10 [007..06D), Handler at BB11..BB11 [06D..086)
New BlockSet epoch 2, # of blocks (including unused BB00): 29, 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 1 [047..063) T0 i
BB06 [0005] 2 0 1 [063..06D) T0 i
BB07 [0017] 1 0 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 1 [063..064) T0 i
BB10 [0020] 1 0 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 1 [086..09A) i
BB13 [0023] 1 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 1 [08E..08F) i
BB15 [0027] 1 1 [08E..08F) i newobj
BB16 [0028] 1 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 0.50 [08E..08F) i
BB18 [0034] 1 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 5 1 [08E..08F) i newobj
BB22 [0064] 1 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 1 [08E..08F) i
BB24 [0067] 1 1 [???..???) internal newobj
BB25 [0061] 1 1 [???..???)-> BB27 (always) internal
BB26 [0025] 1 1 [08E..08F) i gcsafe
BB27 [0026] 1 1 [???..???) internal
BB28 [0008] 3 1 [09A..09B) (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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 1 [08E..08F) i
BB15 [0027] 1 BB14 1 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 1 [08E..08F) i
BB15 [0027] 1 BB14 1 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 0.50 [08E..08F) i
BB15 [0027] 1 BB14 0.50 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights
*************** In fgCreateFunclets()
Relocating handler range BB11..BB11 (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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 catch { } keep i label target gcsafe
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 0.50 [08E..08F) i
BB15 [0027] 1 BB14 0.50 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (return) i label target
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB10 [007..06D), Handler at BB11..BB11 [06D..086)
Relocated block [BB11..BB11] inserted after BB28 at the end of method
Create funclets: moved region
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB10 [007..06D), Handler at BB11..BB11 [06D..086)
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 0.50 [08E..08F) i
BB15 [0027] 1 BB14 0.50 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB10 [007..06D), Handler at BB11..BB11 [06D..086)
*************** In fgDebugCheckBBlist
*************** In optOptimizeLayout()
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB10 [007..06D), Handler at BB11..BB11 [06D..086)
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB28 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D) T0 i label target
BB07 [0017] 1 0 BB06 1 [063..064)-> BB09 ( cond ) T0 i
BB08 [0018] 1 0 BB07 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB07,BB08 1 [063..064) T0 i label target
BB10 [0020] 1 0 BB09 1 [???..???)-> BB12 (always) T0 } internal
BB12 [0007] 1 BB10 1 [086..09A) i label target
BB13 [0023] 1 BB12 1 [08E..08F)-> BB26 ( cond ) i
BB14 [0024] 1 BB13 0.50 [08E..08F) i
BB15 [0027] 1 BB14 0.50 [08E..08F) i newobj
BB16 [0028] 1 BB15 0.50 [08E..08F)-> BB17 (always) i
BB17 [0033] 1 BB16 0.50 [08E..08F) i label target
BB18 [0034] 1 BB17 0.50 [08E..08F)-> BB21 ( cond ) i
BB19 [0035] 1 BB18 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB18,BB19 1 [08E..08F) i label target newobj
BB22 [0064] 1 BB21 1 [08E..08F)-> BB23 (always) i
BB23 [0066] 1 BB22 1 [08E..08F) i label target
BB24 [0067] 1 BB23 1 [???..???) internal newobj
BB25 [0061] 2 BB20,BB24 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB13 1 [08E..08F) i label target gcsafe
BB27 [0026] 2 BB25,BB26 1 [???..???) internal label target
BB28 [0008] 3 BB04,BB11,BB27 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
Compacting blocks BB06 and BB07:
*************** In fgDebugCheckBBlist
Compacting blocks BB09 and BB10:
EH#0: New last block of try: BB09
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB09 -> BB12) (converted BB09 to fall-through)
Compacting blocks BB12 and BB13:
*************** In fgDebugCheckBBlist
Compacting blocks BB14 and BB15:
*************** In fgDebugCheckBBlist
Compacting blocks BB14 and BB16:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB14 -> BB17) (converted BB14 to fall-through)
Compacting blocks BB14 and BB17:
*************** In fgDebugCheckBBlist
Compacting blocks BB14 and BB18:
*************** In fgDebugCheckBBlist
Compacting blocks BB21 and BB22:
*************** In fgDebugCheckBBlist
Removing unconditional jump to next block (BB21 -> BB23) (converted BB21 to fall-through)
Compacting blocks BB21 and BB23:
*************** In fgDebugCheckBBlist
Compacting blocks BB21 and BB24:
*************** In fgDebugCheckBBlist
Compacting blocks BB27 and BB28:
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB27 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB09 ( cond ) T0 i label target
BB08 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB06,BB08 1 [063..064) T0 } i label target
BB12 [0007] 1 BB09 1 [086..09A)-> BB26 ( cond ) i label target
BB14 [0024] 1 BB12 0.50 [08E..08F)-> BB21 ( cond ) i newobj
BB19 [0035] 1 BB14 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB14,BB19 1 [08E..08F) i label target newobj
BB25 [0061] 2 BB20,BB21 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB12 1 [08E..08F) i label target gcsafe
BB27 [0026] 4 BB04,BB11,BB25,BB26 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB27 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB09 [007..06D), Handler at BB11..BB11 [06D..086)
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB27 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB09 ( cond ) T0 i label target
BB08 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB06,BB08 1 [063..064) T0 } i label target
BB12 [0007] 1 BB09 1 [086..09A)-> BB26 ( cond ) i label target
BB14 [0024] 1 BB12 0.50 [08E..08F)-> BB21 ( cond ) i newobj
BB19 [0035] 1 BB14 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB14,BB19 1 [08E..08F) i label target newobj
BB25 [0061] 2 BB20,BB21 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB12 1 [08E..08F) i label target gcsafe
BB27 [0026] 4 BB04,BB11,BB25,BB26 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB27 ( 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB27 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB09 ( cond ) T0 i label target
BB08 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB06,BB08 1 [063..064) T0 } i label target
BB12 [0007] 1 BB09 1 [086..09A)-> BB26 ( cond ) i label target
BB14 [0024] 1 BB12 0.50 [08E..08F)-> BB21 ( cond ) i newobj
BB19 [0035] 1 BB14 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB14,BB19 1 [08E..08F) i label target newobj
BB25 [0061] 2 BB20,BB21 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB12 1 [08E..08F) i label target gcsafe
BB27 [0026] 4 BB04,BB11,BB25,BB26 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB27 ( 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB27 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB09 ( cond ) T0 i label target
BB08 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB09 [0019] 2 0 BB06,BB08 1 [063..064) T0 } i label target
BB12 [0007] 1 BB09 1 [086..09A)-> BB26 ( cond ) i label target
BB14 [0024] 1 BB12 0.50 [08E..08F)-> BB21 ( cond ) i newobj
BB19 [0035] 1 BB14 0.50 [08E..08F)-> BB21 ( cond ) i
BB20 [0036] 1 BB19 1 [08E..08F)-> BB25 (always) i
BB21 [0060] 2 BB14,BB19 1 [08E..08F) i label target newobj
BB25 [0061] 2 BB20,BB21 1 [???..???)-> BB27 (always) internal label target
BB26 [0025] 1 BB12 1 [08E..08F) i label target gcsafe
BB27 [0026] 4 BB04,BB11,BB25,BB26 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB11 [0006] 1 0 1 [06D..086)-> BB27 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB09 [007..06D), Handler at BB11..BB11 [06D..086)
Renumber BB08 to BB07
Renumber BB09 to BB08
Renumber BB12 to BB09
Renumber BB14 to BB10
Renumber BB19 to BB11
Renumber BB20 to BB12
Renumber BB21 to BB13
Renumber BB25 to BB14
Renumber BB26 to BB15
Renumber BB27 to BB16
Renumber BB11 to BB17
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 1 [06D..086)-> BB16 ( cret ) H0 F catch { } keep i label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB08 [007..06D), Handler at BB17..BB17 [06D..086)
New BlockSet epoch 3, # of blocks (including unused BB00): 18, bitset array size: 1 (short)
Enter blocks: BB01 BB17
After computing reachability sets:
------------------------------------------------
BBnum Reachable by
------------------------------------------------
BB01 : BB01
BB02 : BB01 BB02
BB03 : BB01 BB02 BB03
BB04 : BB01 BB02 BB03 BB04
BB05 : BB01 BB02 BB05
BB06 : BB01 BB02 BB03 BB05 BB06
BB07 : BB01 BB02 BB03 BB05 BB06 BB07
BB08 : BB01 BB02 BB03 BB05 BB06 BB07 BB08
BB09 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09
BB10 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB10
BB11 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB10 BB11
BB12 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12
BB13 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB13
BB14 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14
BB15 : BB01 BB02 BB03 BB05 BB06 BB07 BB08 BB09 BB15
BB16 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17
BB17 : BB17
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 1 [06D..086)-> BB16 ( 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 BB17
------------------------------------------------
BBnum Dominated by
------------------------------------------------
BB17: BB17
BB01: BB01
BB02: BB02 BB01
BB03: BB03 BB02 BB01
BB04: BB04 BB03 BB02 BB01
BB05: BB05 BB02 BB01
BB06: BB06 BB02 BB01
BB07: BB07 BB06 BB02 BB01
BB08: BB08 BB06 BB02 BB01
BB09: BB09 BB08 BB06 BB02 BB01
BB10: BB10 BB09 BB08 BB06 BB02 BB01
BB11: BB11 BB10 BB09 BB08 BB06 BB02 BB01
BB12: BB12 BB11 BB10 BB09 BB08 BB06 BB02 BB01
BB13: BB13 BB10 BB09 BB08 BB06 BB02 BB01
BB14: BB14 BB10 BB09 BB08 BB06 BB02 BB01
BB15: BB15 BB09 BB08 BB06 BB02 BB01
BB16: BB16
Inside fgBuildDomTree
After computing the Dominance Tree:
BB01 : BB02
BB02 : BB06 BB05 BB03
BB03 : BB04
BB06 : BB08 BB07
BB08 : BB09
BB09 : BB15 BB10
BB10 : BB14 BB13 BB11
BB11 : BB12
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 1 [06D..086)-> BB16 ( 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) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
[000167] ------------ * STMT void (IL ???... ???)
[000067] --CXG+------ | /--* CALL ref Program.Task2
[000166] -ACXG+------ \--* ASG ref
[000165] D----+-N---- \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 4
[000168] ------------ * STMT void (IL ???... ???)
[000164] ---X-+------ \--* IND int
[000163] -----+------ \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 5
[000152] ------------ * STMT void (IL ???... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000151] IA---+--R--- \--* ASG struct (init)
[000149] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
[000178] ------------ * STMT void (IL ???... ???)
[000478] ------------ | /--* CNS_INT bool 0
[000479] -A---------- | /--* ASG bool
[000477] D------N---- | | \--* LCL_VAR bool V28 tmp22
[000480] -A---+------ \--* COMMA void
[000475] ------------ | /--* CNS_INT ref null
[000476] -A---------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 7
[000198] ------------ * STMT void (IL ???... ???)
[000147] -----+------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---+------ \--* ASG ref
[000196] D----+-N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 8
[000204] ------------ * STMT void (IL ???... ???)
[000201] -----+------ | /--* CNS_INT int 0
[000203] -A---+------ \--* ASG bool
[000202] D----+-N---- \--* LCL_VAR bool V28 tmp22
***** BB03, stmt 9
[000190] ------------ * STMT void (IL ???... ???)
[000496] -------N---- | /--* LCL_VAR bool V28 tmp22
[000497] -A---------- | /--* ASG bool
[000495] *------N---- | | \--* IND bool
[000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000494] ------------ | | \--* ADD byref
[000492] ------------ | | \--* LCL_VAR byref V30 tmp24
[000498] -A---+------ \--* COMMA void
[000489] -------N---- | /--* LCL_VAR ref V27 tmp21
[000490] -A---------- | /--* ASG ref
[000488] *------N---- | | \--* IND ref
[000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000487] ------------ | | \--* ADD byref
[000485] ------------ | | \--* LCL_VAR byref V30 tmp24
[000491] -A---------- \--* COMMA void
[000481] ------------ | /--* ADDR byref
[000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
[000484] -A---------- \--* ASG byref
[000483] D------N---- \--* LCL_VAR byref V30 tmp24
***** BB03, stmt 10
[000078] ------------ * STMT void (IL ???... ???)
[000159] ----G+------ | /--* LCL_VAR struct(AX) V10 tmp4
[000162] -A--G+--R--- \--* ASG struct (copy)
[000161] D----+-N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
[000087] ------------ * STMT void (IL ???... ???)
[000516] ---X-------- | /--* IND bool
[000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000515] ------------ | | \--* ADD byref
[000513] ------------ | | \--* LCL_VAR byref V31 tmp25
[000517] -A-XG------- | /--* ASG bool
[000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000518] -A-XG+------ \--* COMMA void
[000509] ---X-------- | /--* IND ref
[000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000508] ------------ | | \--* ADD byref
[000506] ------------ | | \--* LCL_VAR byref V31 tmp25
[000510] -A-XG------- | /--* ASG ref
[000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000511] -A-XG------- \--* COMMA void
[000501] ------------ | /--* ADDR byref
[000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000504] -A---------- \--* ASG byref
[000503] D------N---- \--* LCL_VAR byref V31 tmp25
***** BB03, stmt 12
[000237] ------------ * STMT void (IL 0x01E... ???)
[000217] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000236] -A--G+------ \--* ASG ref
[000235] D----+-N---- \--* LCL_VAR ref V12 tmp6
***** BB03, stmt 13
[000228] ------------ * STMT void (IL 0x01E... ???)
[000225] V--XG+-N---- | /--* IND int
[000519] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000520] -----+------ | | \--* ADD byref
[000224] -----+------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XG+------ \--* ASG int
[000226] D----+-N---- \--* LCL_VAR int V13 tmp7
***** BB03, stmt 14
[000096] ------------ * STMT void (IL ???... ???)
[000095] -----+------ \--* JTRUE void
[000242] -----+------ | /--* CNS_INT int 0
[000243] N----+-N---- \--* NE int
[000240] -----+------ | /--* CNS_INT int 0x1600000
[000241] -----+------ \--* AND int
[000229] -----+------ \--* LCL_VAR int V13 tmp7
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x027...0x02A)
[000100] -----+------ | /--* CNS_INT int 0
[000102] -A---+------ \--* ASG int
[000101] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB04, stmt 16
[000106] ------------ * STMT void (IL ???...0x02B)
[000099] -----+------ | /--* CNS_INT int 0
[000105] -A-XG+------ \--* ASG int
[000104] *--XG+-N---- \--* IND int
[000098] -----+------ \--* LCL_VAR byref V00 this
***** BB04, stmt 17
[000113] ------------ * STMT void (IL 0x030...0x032)
[000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
[000540] -A-XG------- | /--* ASG bool
[000538] *--X---N---- | | \--* IND bool
[000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000537] ------------ | | \--* ADD byref
[000535] ------------ | | \--* LCL_VAR byref V32 tmp26
[000541] -A-XG+------ \--* COMMA void
[000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
[000533] -A-XG------- | /--* ASG ref
[000531] *--X---N---- | | \--* IND ref
[000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000530] ------------ | | \--* ADD byref
[000528] ------------ | | \--* LCL_VAR byref V32 tmp26
[000534] -A-XG------- \--* COMMA void
[000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000523] ------------ | /--* ADD byref
[000524] ------------ | | \--* LCL_VAR byref V00 this
[000527] -A---------- \--* ASG byref
[000526] D------N---- \--* LCL_VAR byref V32 tmp26
***** BB04, stmt 18
[000123] ------------ * STMT void (IL 0x037...0x045)
[000120] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
( 5, 4) [000546] ------------ | /--* ADD byref
( 3, 2) [000544] ------------ | | \--* LCL_VAR byref V00 this
( 9, 7) [000547] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000543] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000542] ------------ | \--* LCL_VAR byref V00 this
( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000119] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 19
[000020] ------------ * STMT void (IL 0x047...0x04D)
[000573] ---X-------- | /--* IND bool
[000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000572] ------------ | | \--* ADD byref
[000570] ------------ | | \--* LCL_VAR byref V33 tmp27
[000574] -A-XG------- | /--* ASG bool
[000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000575] -A-XG+------ \--* COMMA void
[000566] ---X-------- | /--* IND ref
[000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000565] ------------ | | \--* ADD byref
[000563] ------------ | | \--* LCL_VAR byref V33 tmp27
[000567] -A-XG------- | /--* ASG ref
[000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000568] -A-XG------- \--* COMMA void
[000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000557] ------------ | /--* ADD byref
[000558] ------------ | | \--* LCL_VAR byref V00 this
[000561] -A---------- \--* ASG byref
[000560] D------N---- \--* LCL_VAR byref V33 tmp27
***** BB05, stmt 20
[000027] ------------ * STMT void (IL 0x04E...0x055)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000576] -----+------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000577] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
***** BB05, stmt 21
[000032] ------------ * STMT void (IL 0x05A...0x05D)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V07 tmp1
***** BB05, stmt 22
[000037] ------------ * STMT void (IL ???... ???)
[000034] -----+------ | /--* CNS_INT int -1
[000036] -A---+------ \--* ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB05, stmt 23
[000040] ------------ * STMT void (IL ???...0x05E)
[000033] -----+------ | /--* CNS_INT int -1
[000039] -A-XG+------ \--* ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 24
[000276] ------------ * STMT void (IL 0x063... ???)
[000248] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000275] -A--G+------ \--* ASG ref
[000274] D----+-N---- \--* LCL_VAR ref V14 tmp8
***** BB06, stmt 25
[000267] ------------ * STMT void (IL 0x063... ???)
[000266] ---XG+------ \--* JTRUE void
[000282] -----+------ | /--* CNS_INT int 0x1000000
[000283] J--XG+-N---- \--* EQ int
[000280] -----+------ | /--* CNS_INT int 0x11000000
[000281] ---XG+------ \--* AND int
[000279] V--XG+-N---- \--* IND int
[000578] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000579] -----+------ \--* ADD byref
[000260] -----+------ \--* LCL_VAR ref V14 tmp8
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 26
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] -----+------ arg0 in rcx \--* LCL_VAR ref V14 tmp8
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 27
[000292] ------------ * STMT void (IL 0x063... ???)
[000254] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000291] -A--G+------ \--* ASG ref
[000290] D----+-N---- \--* LCL_VAR ref V15 tmp9
***** BB08, stmt 28
[000049] ------------ * STMT void (IL ???... ???)
[000289] ---XG+------ | /--* IND int
[000582] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000583] -----+------ | | \--* ADD byref
[000288] -----+------ | | \--* LCL_VAR ref V15 tmp9
[000048] -A-XG+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 29
[000055] ------------ * STMT void (IL 0x086...0x089)
[000052] -----+------ | /--* CNS_INT int -2
[000054] -A-XG+------ \--* ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 30
[000318] ------------ * STMT void (IL 0x08E... ???)
[000598] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000599] -----+------ | /--* ADD byref
[000597] -----+------ | | \--* LCL_VAR byref V00 this
[000600] ---XG+-N---- | /--* COMMA byref
[000596] ---X-+-N---- | | \--* NULLCHECK byte
[000595] -----+------ | | \--* LCL_VAR byref V00 this
[000317] -A-XG+------ \--* ASG byref
[000316] D----+-N---- \--* LCL_VAR byref V16 tmp10
***** BB09, stmt 31
[000300] ------------ * STMT void (IL 0x08E... ???)
[000299] ---XG+------ \--* JTRUE void
[000297] -----+------ | /--* CNS_INT ref null
[000298] J--XG+-N---- \--* NE int
[000296] *--XG+------ \--* IND ref
[000295] -----+------ \--* LCL_VAR byref V16 tmp10
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 32
[000326] ------------ * STMT void (IL 0x08E... ???)
[000323] -----+------ | /--* CNS_INT int 0
[000325] -A---+------ \--* ASG int
[000321] D----+-N---- \--* LCL_VAR int V18 tmp12
***** BB10, stmt 33
[000369] ------------ * STMT void (IL 0x08E... ???)
[000308] -----+------ | /--* LCL_VAR int V02 loc1
[000368] -A---+------ \--* ASG int
[000367] D----+-N---- \--* LCL_VAR int V20 tmp14
***** BB10, stmt 34
[000374] ------------ * STMT void (IL 0x08E... ???)
[000373] -----+------ \--* JTRUE void
[000371] -----+------ | /--* CNS_INT int 9
[000372] J----+-N---- \--* GE int
[000370] -----+------ \--* LCL_VAR int V02 loc1
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 35
[000396] ------------ * STMT void (IL 0x08E... ???)
[000395] -----+------ \--* JTRUE void
[000393] -----+------ | /--* CNS_INT int -1
[000394] J----+-N---- \--* LT int
[000392] -----+------ \--* LCL_VAR int V20 tmp14
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 36
[000412] ------------ * STMT void (IL 0x08E... ???)
[000409] a---G+------ | /--* IND ref
[000615] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000616] -----+------ | | \--* ADD byref
[000612] -----+-N---- | | | /--* CNS_INT long 3
[000613] -----+------ | | | /--* LSH long
[000611] -----+------ | | | | \--* CAST long <- int
[000608] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000606] -----+------ | | | | \--* ADD int
[000607] i----+------ | | | | \--* LCL_VAR int V20 tmp14
[000614] -----+------ | | \--* ADD byref
[000605] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000617] ---XG+------ | /--* COMMA ref
[000610] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000407] -----+------ | | | /--* CNS_INT int 1
[000408] -----+------ | | +--* ADD int
[000406] -----+------ | | | \--* LCL_VAR int V20 tmp14
[000609] ---X-+------ | | \--* ARR_LENGTH int
[000604] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000618] -ACXG+------ | /--* COMMA ref
[000398] x---G+------ | | | /--* IND ref
[000623] -----+------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
[000405] --CXG+------ | | | /--* COMMA ref
[000404] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000603] -ACXG+------ | | \--* ASG ref
[000602] D----+-N---- | | \--* LCL_VAR ref V34 tmp28
[000411] -ACXG+------ \--* ASG ref
[000410] D----+-N---- \--* LCL_VAR ref V22 tmp16
***** BB12, stmt 37
[000422] ------------ * STMT void (IL 0x08E... ???)
[000413] -----+------ | /--* LCL_VAR ref V22 tmp16
[000421] -A---+------ \--* ASG ref
[000420] D----+-N---- \--* LCL_VAR ref V17 tmp11
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 38
[000381] ------------ * STMT void (IL 0x08E... ???)
[000378] -----+------ | /--* ALLOCOBJ ref
[000377] -----+------ | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -A---+------ \--* ASG ref
[000379] D----+-N---- \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 39
[000438] ------------ * STMT void (IL 0x08E... ???)
[000625] ------------ | /--* CNS_INT ref null
[000626] -A---+------ \--* ASG ref
[000624] D------N---- \--* LCL_VAR ref V29 tmp23
***** BB13, stmt 40
[000459] ------------ * STMT void (IL 0x08E... ???)
[000456] -----+------ | /--* CNS_INT int 0
[000458] -A---+------ \--* ASG int
[000457] D----+-N---- \--* LCL_VAR int V24 tmp18
***** BB13, stmt 41
[000470] ------------ * STMT void (IL 0x08E... ???)
[000465] -----+------ | /--* CNS_INT int 0x1000000
[000467] -----+------ | /--* OR int
[000466] -----+------ | | \--* LCL_VAR int V24 tmp18
[000469] -A-XG+------ \--* ASG int
[000468] V--XG+-N---- \--* IND int
[000627] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000628] -----+------ \--* ADD byref
[000464] -----+------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 42
[000450] ------------ * STMT void (IL 0x08E... ???)
[000376] -----+------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG+------ \--* ASG int
[000448] ---XG+-N---- \--* IND int
[000629] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000630] -----+------ \--* ADD byref
[000447] -----+------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 43
[000389] ------------ * STMT void (IL 0x08E... ???)
[000386] -----+------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---+------ \--* ASG ref
[000387] D----+-N---- \--* LCL_VAR ref V17 tmp11
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 44
[000427] ------------ * STMT void (IL 0x08E... ???)
[000424] -----+------ | /--* CNS_INT ref null
[000426] -A---+------ \--* ASG ref
[000425] D----+-N---- \--* LCL_VAR ref V22 tmp16
***** BB14, stmt 45
[000315] ------------ * STMT void (IL 0x08E... ???)
[000423] -----+------ | /--* LCL_VAR ref V17 tmp11
[000314] -A-XG+------ \--* ASG ref
[000313] *--XG+-N---- \--* IND ref
[000307] -----+------ \--* LCL_VAR byref V16 tmp10
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 46
[000305] ------------ * STMT void (IL 0x08E... ???)
[000303] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] -----+------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 47
[000065] ------------ * STMT void (IL 0x09A...0x09A)
[000064] -----+------ \--* RETURN void
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 48
[000127] ------------ * STMT void (IL 0x06D...0x06D)
[000007] -----+------ | /--* CATCH_ARG ref
[000126] -A---+------ \--* ASG ref
[000125] D----+-N---- \--* LCL_VAR ref V08 tmp2
***** BB17, stmt 49
[000131] ------------ * STMT void (IL ???... ???)
[000128] -----+------ | /--* LCL_VAR ref V08 tmp2
[000130] -A---+------ \--* ASG ref
[000129] D----+-N---- \--* LCL_VAR ref V05 loc4
***** BB17, stmt 50
[000136] ------------ * STMT void (IL 0x06F...0x072)
[000133] -----+------ | /--* CNS_INT int -2
[000135] -A-XG+------ \--* ASG int
[000134] *--XG+-N---- \--* IND int
[000132] -----+------ \--* LCL_VAR byref V00 this
***** BB17, stmt 51
[000143] ------------ * STMT void (IL 0x077...0x084)
[000141] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetException
[000587] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] -----+------ | /--* ADD byref
[000586] -----+------ | | \--* LCL_VAR byref V00 this
[000589] ---XG+-N---- this in rcx +--* COMMA byref
[000585] ---X-+-N---- | \--* NULLCHECK byte
[000584] -----+------ | \--* LCL_VAR byref V00 this
[000140] -----+------ arg1 in rdx \--* LCL_VAR ref V08 tmp2
-------------------------------------------------------------------------------------------------------------------
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
Sorting the arguments:
Deferred argument ('rcx'):
[000377] -----+------ * CNS_INT(h) long 0x7ffc60cefbd8 token
Replaced with placeholder node:
[000636] ----------L- * ARGPLACE long
Shuffled argument table: rcx
fgArgTabEntry[arg 0 377.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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 1 [06D..086)-> BB16 ( 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) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
[000167] ------------ * STMT void (IL ???... ???)
[000067] --CXG+------ | /--* CALL ref Program.Task2
[000166] -ACXG+------ \--* ASG ref
[000165] D----+-N---- \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 4
[000168] ------------ * STMT void (IL ???... ???)
[000164] ---X-+------ \--* IND int
[000163] -----+------ \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 5
[000152] ------------ * STMT void (IL ???... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000151] IA---+--R--- \--* ASG struct (init)
[000149] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
[000178] ------------ * STMT void (IL ???... ???)
[000478] ------------ | /--* CNS_INT bool 0
[000479] -A---------- | /--* ASG bool
[000477] D------N---- | | \--* LCL_VAR bool V28 tmp22
[000480] -A---+------ \--* COMMA void
[000475] ------------ | /--* CNS_INT ref null
[000476] -A---------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 7
[000198] ------------ * STMT void (IL ???... ???)
[000147] -----+------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---+------ \--* ASG ref
[000196] D----+-N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 8
[000204] ------------ * STMT void (IL ???... ???)
[000201] -----+------ | /--* CNS_INT int 0
[000203] -A---+------ \--* ASG bool
[000202] D----+-N---- \--* LCL_VAR bool V28 tmp22
***** BB03, stmt 9
[000190] ------------ * STMT void (IL ???... ???)
[000496] -------N---- | /--* LCL_VAR bool V28 tmp22
[000497] -A---------- | /--* ASG bool
[000495] *------N---- | | \--* IND bool
[000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000494] ------------ | | \--* ADD byref
[000492] ------------ | | \--* LCL_VAR byref V30 tmp24
[000498] -A---+------ \--* COMMA void
[000489] -------N---- | /--* LCL_VAR ref V27 tmp21
[000490] -A---------- | /--* ASG ref
[000488] *------N---- | | \--* IND ref
[000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000487] ------------ | | \--* ADD byref
[000485] ------------ | | \--* LCL_VAR byref V30 tmp24
[000491] -A---------- \--* COMMA void
[000481] ------------ | /--* ADDR byref
[000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
[000484] -A---------- \--* ASG byref
[000483] D------N---- \--* LCL_VAR byref V30 tmp24
***** BB03, stmt 10
[000078] ------------ * STMT void (IL ???... ???)
[000159] ----G+------ | /--* LCL_VAR struct(AX) V10 tmp4
[000162] -A--G+--R--- \--* ASG struct (copy)
[000161] D----+-N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
[000087] ------------ * STMT void (IL ???... ???)
[000516] ---X-------- | /--* IND bool
[000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000515] ------------ | | \--* ADD byref
[000513] ------------ | | \--* LCL_VAR byref V31 tmp25
[000517] -A-XG------- | /--* ASG bool
[000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000518] -A-XG+------ \--* COMMA void
[000509] ---X-------- | /--* IND ref
[000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000508] ------------ | | \--* ADD byref
[000506] ------------ | | \--* LCL_VAR byref V31 tmp25
[000510] -A-XG------- | /--* ASG ref
[000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000511] -A-XG------- \--* COMMA void
[000501] ------------ | /--* ADDR byref
[000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000504] -A---------- \--* ASG byref
[000503] D------N---- \--* LCL_VAR byref V31 tmp25
***** BB03, stmt 12
[000237] ------------ * STMT void (IL 0x01E... ???)
[000217] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000236] -A--G+------ \--* ASG ref
[000235] D----+-N---- \--* LCL_VAR ref V12 tmp6
***** BB03, stmt 13
[000228] ------------ * STMT void (IL 0x01E... ???)
[000225] V--XG+-N---- | /--* IND int
[000519] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000520] -----+------ | | \--* ADD byref
[000224] -----+------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XG+------ \--* ASG int
[000226] D----+-N---- \--* LCL_VAR int V13 tmp7
***** BB03, stmt 14
[000096] ------------ * STMT void (IL ???... ???)
[000095] -----+------ \--* JTRUE void
[000242] -----+------ | /--* CNS_INT int 0
[000243] N----+-N---- \--* NE int
[000240] -----+------ | /--* CNS_INT int 0x1600000
[000241] -----+------ \--* AND int
[000229] -----+------ \--* LCL_VAR int V13 tmp7
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
[000103] ------------ * STMT void (IL 0x027...0x02A)
[000100] -----+------ | /--* CNS_INT int 0
[000102] -A---+------ \--* ASG int
[000101] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB04, stmt 16
[000106] ------------ * STMT void (IL ???...0x02B)
[000099] -----+------ | /--* CNS_INT int 0
[000105] -A-XG+------ \--* ASG int
[000104] *--XG+-N---- \--* IND int
[000098] -----+------ \--* LCL_VAR byref V00 this
***** BB04, stmt 17
[000113] ------------ * STMT void (IL 0x030...0x032)
[000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
[000540] -A-XG------- | /--* ASG bool
[000538] *--X---N---- | | \--* IND bool
[000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000537] ------------ | | \--* ADD byref
[000535] ------------ | | \--* LCL_VAR byref V32 tmp26
[000541] -A-XG+------ \--* COMMA void
[000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
[000533] -A-XG------- | /--* ASG ref
[000531] *--X---N---- | | \--* IND ref
[000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000530] ------------ | | \--* ADD byref
[000528] ------------ | | \--* LCL_VAR byref V32 tmp26
[000534] -A-XG------- \--* COMMA void
[000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000523] ------------ | /--* ADD byref
[000524] ------------ | | \--* LCL_VAR byref V00 this
[000527] -A---------- \--* ASG byref
[000526] D------N---- \--* LCL_VAR byref V32 tmp26
***** BB04, stmt 18
[000123] ------------ * STMT void (IL 0x037...0x045)
[000120] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
( 5, 4) [000546] ------------ | /--* ADD byref
( 3, 2) [000544] ------------ | | \--* LCL_VAR byref V00 this
( 9, 7) [000547] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000543] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000542] ------------ | \--* LCL_VAR byref V00 this
( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000119] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 19
[000020] ------------ * STMT void (IL 0x047...0x04D)
[000573] ---X-------- | /--* IND bool
[000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000572] ------------ | | \--* ADD byref
[000570] ------------ | | \--* LCL_VAR byref V33 tmp27
[000574] -A-XG------- | /--* ASG bool
[000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000575] -A-XG+------ \--* COMMA void
[000566] ---X-------- | /--* IND ref
[000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000565] ------------ | | \--* ADD byref
[000563] ------------ | | \--* LCL_VAR byref V33 tmp27
[000567] -A-XG------- | /--* ASG ref
[000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000568] -A-XG------- \--* COMMA void
[000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000557] ------------ | /--* ADD byref
[000558] ------------ | | \--* LCL_VAR byref V00 this
[000561] -A---------- \--* ASG byref
[000560] D------N---- \--* LCL_VAR byref V33 tmp27
***** BB05, stmt 20
[000027] ------------ * STMT void (IL 0x04E...0x055)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000576] -----+------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000577] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
***** BB05, stmt 21
[000032] ------------ * STMT void (IL 0x05A...0x05D)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V07 tmp1
***** BB05, stmt 22
[000037] ------------ * STMT void (IL ???... ???)
[000034] -----+------ | /--* CNS_INT int -1
[000036] -A---+------ \--* ASG int
[000035] D----+-N---- \--* LCL_VAR int V01 loc0
***** BB05, stmt 23
[000040] ------------ * STMT void (IL ???...0x05E)
[000033] -----+------ | /--* CNS_INT int -1
[000039] -A-XG+------ \--* ASG int
[000038] *--XG+-N---- \--* IND int
[000028] -----+------ \--* LCL_VAR byref V00 this
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 24
[000276] ------------ * STMT void (IL 0x063... ???)
[000248] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000275] -A--G+------ \--* ASG ref
[000274] D----+-N---- \--* LCL_VAR ref V14 tmp8
***** BB06, stmt 25
[000267] ------------ * STMT void (IL 0x063... ???)
[000266] ---XG+------ \--* JTRUE void
[000282] -----+------ | /--* CNS_INT int 0x1000000
[000283] J--XG+-N---- \--* EQ int
[000280] -----+------ | /--* CNS_INT int 0x11000000
[000281] ---XG+------ \--* AND int
[000279] V--XG+-N---- \--* IND int
[000578] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000579] -----+------ \--* ADD byref
[000260] -----+------ \--* LCL_VAR ref V14 tmp8
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 26
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] -----+------ arg0 in rcx \--* LCL_VAR ref V14 tmp8
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 27
[000292] ------------ * STMT void (IL 0x063... ???)
[000254] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000291] -A--G+------ \--* ASG ref
[000290] D----+-N---- \--* LCL_VAR ref V15 tmp9
***** BB08, stmt 28
[000049] ------------ * STMT void (IL ???... ???)
[000289] ---XG+------ | /--* IND int
[000582] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000583] -----+------ | | \--* ADD byref
[000288] -----+------ | | \--* LCL_VAR ref V15 tmp9
[000048] -A-XG+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 29
[000055] ------------ * STMT void (IL 0x086...0x089)
[000052] -----+------ | /--* CNS_INT int -2
[000054] -A-XG+------ \--* ASG int
[000053] *--XG+-N---- \--* IND int
[000051] -----+------ \--* LCL_VAR byref V00 this
***** BB09, stmt 30
[000318] ------------ * STMT void (IL 0x08E... ???)
[000598] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000599] -----+------ | /--* ADD byref
[000597] -----+------ | | \--* LCL_VAR byref V00 this
[000600] ---XG+-N---- | /--* COMMA byref
[000596] ---X-+-N---- | | \--* NULLCHECK byte
[000595] -----+------ | | \--* LCL_VAR byref V00 this
[000317] -A-XG+------ \--* ASG byref
[000316] D----+-N---- \--* LCL_VAR byref V16 tmp10
***** BB09, stmt 31
[000300] ------------ * STMT void (IL 0x08E... ???)
[000299] ---XG+------ \--* JTRUE void
[000297] -----+------ | /--* CNS_INT ref null
[000298] J--XG+-N---- \--* NE int
[000296] *--XG+------ \--* IND ref
[000295] -----+------ \--* LCL_VAR byref V16 tmp10
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 32
[000326] ------------ * STMT void (IL 0x08E... ???)
[000323] -----+------ | /--* CNS_INT int 0
[000325] -A---+------ \--* ASG int
[000321] D----+-N---- \--* LCL_VAR int V18 tmp12
***** BB10, stmt 33
[000369] ------------ * STMT void (IL 0x08E... ???)
[000308] -----+------ | /--* LCL_VAR int V02 loc1
[000368] -A---+------ \--* ASG int
[000367] D----+-N---- \--* LCL_VAR int V20 tmp14
***** BB10, stmt 34
[000374] ------------ * STMT void (IL 0x08E... ???)
[000373] -----+------ \--* JTRUE void
[000371] -----+------ | /--* CNS_INT int 9
[000372] J----+-N---- \--* GE int
[000370] -----+------ \--* LCL_VAR int V02 loc1
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 35
[000396] ------------ * STMT void (IL 0x08E... ???)
[000395] -----+------ \--* JTRUE void
[000393] -----+------ | /--* CNS_INT int -1
[000394] J----+-N---- \--* LT int
[000392] -----+------ \--* LCL_VAR int V20 tmp14
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 36
[000412] ------------ * STMT void (IL 0x08E... ???)
[000409] a---G+------ | /--* IND ref
[000615] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000616] -----+------ | | \--* ADD byref
[000612] -----+-N---- | | | /--* CNS_INT long 3
[000613] -----+------ | | | /--* LSH long
[000611] -----+------ | | | | \--* CAST long <- int
[000608] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000606] -----+------ | | | | \--* ADD int
[000607] i----+------ | | | | \--* LCL_VAR int V20 tmp14
[000614] -----+------ | | \--* ADD byref
[000605] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000617] ---XG+------ | /--* COMMA ref
[000610] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000407] -----+------ | | | /--* CNS_INT int 1
[000408] -----+------ | | +--* ADD int
[000406] -----+------ | | | \--* LCL_VAR int V20 tmp14
[000609] ---X-+------ | | \--* ARR_LENGTH int
[000604] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000618] -ACXG+------ | /--* COMMA ref
[000398] x---G+------ | | | /--* IND ref
[000623] -----+------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
[000405] --CXG+------ | | | /--* COMMA ref
[000404] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000603] -ACXG+------ | | \--* ASG ref
[000602] D----+-N---- | | \--* LCL_VAR ref V34 tmp28
[000411] -ACXG+------ \--* ASG ref
[000410] D----+-N---- \--* LCL_VAR ref V22 tmp16
***** BB12, stmt 37
[000422] ------------ * STMT void (IL 0x08E... ???)
[000413] -----+------ | /--* LCL_VAR ref V22 tmp16
[000421] -A---+------ \--* ASG ref
[000420] D----+-N---- \--* LCL_VAR ref V17 tmp11
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 38
[000381] ------------ * STMT void (IL 0x08E... ???)
[000378] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000377] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -AC--+------ \--* ASG ref
[000379] D----+-N---- \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 39
[000438] ------------ * STMT void (IL 0x08E... ???)
[000625] ------------ | /--* CNS_INT ref null
[000626] -A---+------ \--* ASG ref
[000624] D------N---- \--* LCL_VAR ref V29 tmp23
***** BB13, stmt 40
[000459] ------------ * STMT void (IL 0x08E... ???)
[000456] -----+------ | /--* CNS_INT int 0
[000458] -A---+------ \--* ASG int
[000457] D----+-N---- \--* LCL_VAR int V24 tmp18
***** BB13, stmt 41
[000470] ------------ * STMT void (IL 0x08E... ???)
[000465] -----+------ | /--* CNS_INT int 0x1000000
[000467] -----+------ | /--* OR int
[000466] -----+------ | | \--* LCL_VAR int V24 tmp18
[000469] -A-XG+------ \--* ASG int
[000468] V--XG+-N---- \--* IND int
[000627] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000628] -----+------ \--* ADD byref
[000464] -----+------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 42
[000450] ------------ * STMT void (IL 0x08E... ???)
[000376] -----+------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG+------ \--* ASG int
[000448] ---XG+-N---- \--* IND int
[000629] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000630] -----+------ \--* ADD byref
[000447] -----+------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 43
[000389] ------------ * STMT void (IL 0x08E... ???)
[000386] -----+------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---+------ \--* ASG ref
[000387] D----+-N---- \--* LCL_VAR ref V17 tmp11
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 44
[000427] ------------ * STMT void (IL 0x08E... ???)
[000424] -----+------ | /--* CNS_INT ref null
[000426] -A---+------ \--* ASG ref
[000425] D----+-N---- \--* LCL_VAR ref V22 tmp16
***** BB14, stmt 45
[000315] ------------ * STMT void (IL 0x08E... ???)
[000423] -----+------ | /--* LCL_VAR ref V17 tmp11
[000314] -A-XG+------ \--* ASG ref
[000313] *--XG+-N---- \--* IND ref
[000307] -----+------ \--* LCL_VAR byref V16 tmp10
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 46
[000305] ------------ * STMT void (IL 0x08E... ???)
[000303] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] -----+------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 47
[000065] ------------ * STMT void (IL 0x09A...0x09A)
[000064] -----+------ \--* RETURN void
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 48
[000127] ------------ * STMT void (IL 0x06D...0x06D)
[000007] -----+------ | /--* CATCH_ARG ref
[000126] -A---+------ \--* ASG ref
[000125] D----+-N---- \--* LCL_VAR ref V08 tmp2
***** BB17, stmt 49
[000131] ------------ * STMT void (IL ???... ???)
[000128] -----+------ | /--* LCL_VAR ref V08 tmp2
[000130] -A---+------ \--* ASG ref
[000129] D----+-N---- \--* LCL_VAR ref V05 loc4
***** BB17, stmt 50
[000136] ------------ * STMT void (IL 0x06F...0x072)
[000133] -----+------ | /--* CNS_INT int -2
[000135] -A-XG+------ \--* ASG int
[000134] *--XG+-N---- \--* IND int
[000132] -----+------ \--* LCL_VAR byref V00 this
***** BB17, stmt 51
[000143] ------------ * STMT void (IL 0x077...0x084)
[000141] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetException
[000587] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] -----+------ | /--* ADD byref
[000586] -----+------ | | \--* LCL_VAR byref V00 this
[000589] ---XG+-N---- this in rcx +--* COMMA byref
[000585] ---X-+-N---- | \--* NULLCHECK byte
[000584] -----+------ | \--* LCL_VAR byref V00 this
[000140] -----+------ arg1 in rdx \--* LCL_VAR ref V08 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In optOptimizeLoops()
*************** In fgDebugCheckBBlist
*************** In optCloneLoops()
*************** In lvaMarkLocalVars()
lvaGrabTemp returning 35 (V35 tmp29) (a long lifetime temp) called for PSPSym.
Local V35 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 )
[000167] ------------ * STMT void (IL ???... ???)
[000067] --CXG+------ | /--* CALL ref Program.Task2
[000166] -ACXG+------ \--* ASG ref
[000165] D----+-N---- \--* LCL_VAR ref V09 tmp3
New refCnts for V09: refCnt = 1, refCntWtd = 2
[000168] ------------ * STMT void (IL ???... ???)
[000164] ---X-+------ \--* IND int
[000163] -----+------ \--* LCL_VAR ref V09 tmp3
New refCnts for V09: refCnt = 2, refCntWtd = 4
[000152] ------------ * STMT void (IL ???... ???)
[000150] -----+------ | /--* CNS_INT int 0
[000151] IA---+--R--- \--* ASG struct (init)
[000149] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp4
New refCnts for V10: refCnt = 1, refCntWtd = 2
[000178] ------------ * STMT void (IL ???... ???)
[000478] ------------ | /--* CNS_INT bool 0
[000479] -A---------- | /--* ASG bool
[000477] D------N---- | | \--* LCL_VAR bool V28 tmp22
[000480] -A---+------ \--* COMMA void
[000475] ------------ | /--* CNS_INT ref null
[000476] -A---------- \--* ASG ref
[000474] D------N---- \--* LCL_VAR ref V27 tmp21
New refCnts for V27: refCnt = 1, refCntWtd = 1
New refCnts for V28: refCnt = 1, refCntWtd = 1
[000198] ------------ * STMT void (IL ???... ???)
[000147] -----+------ | /--* LCL_VAR ref V09 tmp3
[000197] -A---+------ \--* ASG ref
[000196] D----+-N---- \--* LCL_VAR ref V27 tmp21
New refCnts for V27: refCnt = 2, refCntWtd = 2
New refCnts for V09: refCnt = 3, refCntWtd = 6
[000204] ------------ * STMT void (IL ???... ???)
[000201] -----+------ | /--* CNS_INT int 0
[000203] -A---+------ \--* ASG bool
[000202] D----+-N---- \--* LCL_VAR bool V28 tmp22
New refCnts for V28: refCnt = 2, refCntWtd = 2
[000190] ------------ * STMT void (IL ???... ???)
[000496] -------N---- | /--* LCL_VAR bool V28 tmp22
[000497] -A---------- | /--* ASG bool
[000495] *------N---- | | \--* IND bool
[000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000494] ------------ | | \--* ADD byref
[000492] ------------ | | \--* LCL_VAR byref V30 tmp24
[000498] -A---+------ \--* COMMA void
[000489] -------N---- | /--* LCL_VAR ref V27 tmp21
[000490] -A---------- | /--* ASG ref
[000488] *------N---- | | \--* IND ref
[000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000487] ------------ | | \--* ADD byref
[000485] ------------ | | \--* LCL_VAR byref V30 tmp24
[000491] -A---------- \--* COMMA void
[000481] ------------ | /--* ADDR byref
[000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
[000484] -A---------- \--* ASG byref
[000483] D------N---- \--* LCL_VAR byref V30 tmp24
New refCnts for V30: refCnt = 1, refCntWtd = 2
New refCnts for V10: refCnt = 2, refCntWtd = 4
New refCnts for V30: refCnt = 2, refCntWtd = 4
New refCnts for V27: refCnt = 3, refCntWtd = 3
New refCnts for V30: refCnt = 3, refCntWtd = 6
New refCnts for V28: refCnt = 3, refCntWtd = 3
[000078] ------------ * STMT void (IL ???... ???)
[000159] ----G+------ | /--* LCL_VAR struct(AX) V10 tmp4
[000162] -A--G+--R--- \--* ASG struct (copy)
[000161] D----+-N---- \--* LCL_VAR struct(AX) V04 loc3
New refCnts for V04: refCnt = 1, refCntWtd = 1
New refCnts for V10: refCnt = 3, refCntWtd = 6
[000087] ------------ * STMT void (IL ???... ???)
[000516] ---X-------- | /--* IND bool
[000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000515] ------------ | | \--* ADD byref
[000513] ------------ | | \--* LCL_VAR byref V31 tmp25
[000517] -A-XG------- | /--* ASG bool
[000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000518] -A-XG+------ \--* COMMA void
[000509] ---X-------- | /--* IND ref
[000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000508] ------------ | | \--* ADD byref
[000506] ------------ | | \--* LCL_VAR byref V31 tmp25
[000510] -A-XG------- | /--* ASG ref
[000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000511] -A-XG------- \--* COMMA void
[000501] ------------ | /--* ADDR byref
[000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
[000504] -A---------- \--* ASG byref
[000503] D------N---- \--* LCL_VAR byref V31 tmp25
New refCnts for V31: refCnt = 1, refCntWtd = 2
New refCnts for V04: refCnt = 2, refCntWtd = 2
New refCnts for V03: refCnt = 1, refCntWtd = 1
New refCnts for V25: refCnt = 1, refCntWtd = 1
New refCnts for V31: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 2, refCntWtd = 2
New refCnts for V26: refCnt = 1, refCntWtd = 1
New refCnts for V31: refCnt = 3, refCntWtd = 6
[000237] ------------ * STMT void (IL 0x01E... ???)
[000217] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000236] -A--G+------ \--* ASG ref
[000235] D----+-N---- \--* LCL_VAR ref V12 tmp6
New refCnts for V12: refCnt = 1, refCntWtd = 2
New refCnts for V03: refCnt = 3, refCntWtd = 3
New refCnts for V25: refCnt = 2, refCntWtd = 2
[000228] ------------ * STMT void (IL 0x01E... ???)
[000225] V--XG+-N---- | /--* IND int
[000519] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000520] -----+------ | | \--* ADD byref
[000224] -----+------ | | \--* LCL_VAR ref V12 tmp6
[000227] -A-XG+------ \--* ASG int
[000226] D----+-N---- \--* LCL_VAR int V13 tmp7
New refCnts for V13: refCnt = 1, refCntWtd = 1
New refCnts for V12: refCnt = 2, refCntWtd = 4
[000096] ------------ * STMT void (IL ???... ???)
[000095] -----+------ \--* JTRUE void
[000242] -----+------ | /--* CNS_INT int 0
[000243] N----+-N---- \--* NE int
[000240] -----+------ | /--* CNS_INT int 0x1600000
[000241] -----+------ \--* AND int
[000229] -----+------ \--* LCL_VAR int V13 tmp7
New refCnts for V13: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB04 (weight=1 )
[000103] ------------ * STMT void (IL 0x027...0x02A)
[000100] -----+------ | /--* CNS_INT int 0
[000102] -A---+------ \--* ASG int
[000101] D----+-N---- \--* LCL_VAR int V01 loc0
New refCnts for V01: refCnt = 3, refCntWtd = 3
[000106] ------------ * STMT void (IL ???...0x02B)
[000099] -----+------ | /--* CNS_INT int 0
[000105] -A-XG+------ \--* ASG int
[000104] *--XG+-N---- \--* IND int
[000098] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 2, refCntWtd = 2
[000113] ------------ * STMT void (IL 0x030...0x032)
[000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
[000540] -A-XG------- | /--* ASG bool
[000538] *--X---N---- | | \--* IND bool
[000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000537] ------------ | | \--* ADD byref
[000535] ------------ | | \--* LCL_VAR byref V32 tmp26
[000541] -A-XG+------ \--* COMMA void
[000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
[000533] -A-XG------- | /--* ASG ref
[000531] *--X---N---- | | \--* IND ref
[000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000530] ------------ | | \--* ADD byref
[000528] ------------ | | \--* LCL_VAR byref V32 tmp26
[000534] -A-XG------- \--* COMMA void
[000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000523] ------------ | /--* ADD byref
[000524] ------------ | | \--* LCL_VAR byref V00 this
[000527] -A---------- \--* ASG byref
[000526] D------N---- \--* LCL_VAR byref V32 tmp26
New refCnts for V32: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 3, refCntWtd = 3
New refCnts for V32: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 4, refCntWtd = 4
New refCnts for V25: refCnt = 3, refCntWtd = 3
New refCnts for V32: refCnt = 3, refCntWtd = 6
New refCnts for V03: refCnt = 5, refCntWtd = 5
New refCnts for V26: refCnt = 2, refCntWtd = 2
[000123] ------------ * STMT void (IL 0x037...0x045)
[000120] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
( 5, 4) [000546] ------------ | /--* ADD byref
( 3, 2) [000544] ------------ | | \--* LCL_VAR byref V00 this
( 9, 7) [000547] ---XG--N---- this in rcx +--* COMMA byref
( 4, 3) [000543] ---X---N---- | \--* NULLCHECK byte
( 3, 2) [000542] ------------ | \--* LCL_VAR byref V00 this
( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
[000119] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 4, refCntWtd = 4
New refCnts for V00: refCnt = 5, refCntWtd = 5
New refCnts for V25: refCnt = 4, refCntWtd = 4
New refCnts for V26: refCnt = 3, refCntWtd = 3
New refCnts for V03: refCnt = 6, refCntWtd = 6
New refCnts for V00: refCnt = 6, refCntWtd = 6
*** marking local variables in block BB05 (weight=1 )
[000020] ------------ * STMT void (IL 0x047...0x04D)
[000573] ---X-------- | /--* IND bool
[000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
[000572] ------------ | | \--* ADD byref
[000570] ------------ | | \--* LCL_VAR byref V33 tmp27
[000574] -A-XG------- | /--* ASG bool
[000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
[000575] -A-XG+------ \--* COMMA void
[000566] ---X-------- | /--* IND ref
[000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
[000565] ------------ | | \--* ADD byref
[000563] ------------ | | \--* LCL_VAR byref V33 tmp27
[000567] -A-XG------- | /--* ASG ref
[000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
[000568] -A-XG------- \--* COMMA void
[000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000557] ------------ | /--* ADD byref
[000558] ------------ | | \--* LCL_VAR byref V00 this
[000561] -A---------- \--* ASG byref
[000560] D------N---- \--* LCL_VAR byref V33 tmp27
New refCnts for V33: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 7, refCntWtd = 7
New refCnts for V03: refCnt = 7, refCntWtd = 7
New refCnts for V25: refCnt = 5, refCntWtd = 5
New refCnts for V33: refCnt = 2, refCntWtd = 4
New refCnts for V03: refCnt = 8, refCntWtd = 8
New refCnts for V26: refCnt = 4, refCntWtd = 4
New refCnts for V33: refCnt = 3, refCntWtd = 6
[000027] ------------ * STMT void (IL 0x04E...0x055)
[000024] -----+------ | /--* CNS_INT int 0
[000026] IA-XG+--R--- \--* ASG struct (init)
[000025] ---XG+-N---- \--* BLK(16) struct
[000576] -----+------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
[000577] -----+------ \--* ADD byref
[000021] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 8, refCntWtd = 8
[000032] ------------ * STMT void (IL 0x05A...0x05D)
[000029] -----+------ | /--* CNS_INT int -1
[000031] -A---+------ \--* ASG int
[000030] D----+-N---- \--* LCL_VAR int V07 tmp1
New refCnts for V07: 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 ???...0x05E)
[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 BB06 (weight=1 )
[000276] ------------ * STMT void (IL 0x063... ???)
[000248] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000275] -A--G+------ \--* ASG ref
[000274] D----+-N---- \--* LCL_VAR ref V14 tmp8
New refCnts for V14: refCnt = 1, refCntWtd = 2
New refCnts for V03: refCnt = 9, refCntWtd = 9
New refCnts for V25: refCnt = 6, refCntWtd = 6
[000267] ------------ * STMT void (IL 0x063... ???)
[000266] ---XG+------ \--* JTRUE void
[000282] -----+------ | /--* CNS_INT int 0x1000000
[000283] J--XG+-N---- \--* EQ int
[000280] -----+------ | /--* CNS_INT int 0x11000000
[000281] ---XG+------ \--* AND int
[000279] V--XG+-N---- \--* IND int
[000578] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000579] -----+------ \--* ADD byref
[000260] -----+------ \--* LCL_VAR ref V14 tmp8
New refCnts for V14: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB07 (weight=0.50)
[000273] ------------ * STMT void (IL 0x063... ???)
[000271] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
[000270] -----+------ arg0 in rcx \--* LCL_VAR ref V14 tmp8
New refCnts for V14: refCnt = 3, refCntWtd = 5
*** marking local variables in block BB08 (weight=1 )
[000292] ------------ * STMT void (IL 0x063... ???)
[000254] ----G+------ | /--* LCL_VAR ref (AX) V25 tmp19
[000291] -A--G+------ \--* ASG ref
[000290] D----+-N---- \--* LCL_VAR ref V15 tmp9
New refCnts for V15: refCnt = 1, refCntWtd = 2
New refCnts for V03: refCnt = 10, refCntWtd = 10
New refCnts for V25: refCnt = 7, refCntWtd = 7
[000049] ------------ * STMT void (IL ???... ???)
[000289] ---XG+------ | /--* IND int
[000582] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
[000583] -----+------ | | \--* ADD byref
[000288] -----+------ | | \--* LCL_VAR ref V15 tmp9
[000048] -A-XG+------ \--* ASG int
[000047] D----+-N---- \--* LCL_VAR int V02 loc1
New refCnts for V02: refCnt = 1, refCntWtd = 1
New refCnts for V15: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB09 (weight=1 )
[000055] ------------ * STMT void (IL 0x086...0x089)
[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
[000318] ------------ * STMT void (IL 0x08E... ???)
[000598] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000599] -----+------ | /--* ADD byref
[000597] -----+------ | | \--* LCL_VAR byref V00 this
[000600] ---XG+-N---- | /--* COMMA byref
[000596] ---X-+-N---- | | \--* NULLCHECK byte
[000595] -----+------ | | \--* LCL_VAR byref V00 this
[000317] -A-XG+------ \--* ASG byref
[000316] D----+-N---- \--* LCL_VAR byref V16 tmp10
New refCnts for V16: refCnt = 1, refCntWtd = 2
New refCnts for V00: refCnt = 11, refCntWtd = 11
New refCnts for V00: refCnt = 12, refCntWtd = 12
[000300] ------------ * STMT void (IL 0x08E... ???)
[000299] ---XG+------ \--* JTRUE void
[000297] -----+------ | /--* CNS_INT ref null
[000298] J--XG+-N---- \--* NE int
[000296] *--XG+------ \--* IND ref
[000295] -----+------ \--* LCL_VAR byref V16 tmp10
New refCnts for V16: refCnt = 2, refCntWtd = 4
*** marking local variables in block BB10 (weight=0.50)
[000326] ------------ * STMT void (IL 0x08E... ???)
[000323] -----+------ | /--* CNS_INT int 0
[000325] -A---+------ \--* ASG int
[000321] D----+-N---- \--* LCL_VAR int V18 tmp12
New refCnts for V18: refCnt = 1, refCntWtd = 0.50
[000369] ------------ * STMT void (IL 0x08E... ???)
[000308] -----+------ | /--* LCL_VAR int V02 loc1
[000368] -A---+------ \--* ASG int
[000367] D----+-N---- \--* LCL_VAR int V20 tmp14
New refCnts for V20: refCnt = 1, refCntWtd = 0.50
New refCnts for V02: refCnt = 2, refCntWtd = 1.50
[000374] ------------ * STMT void (IL 0x08E... ???)
[000373] -----+------ \--* JTRUE void
[000371] -----+------ | /--* CNS_INT int 9
[000372] J----+-N---- \--* GE int
[000370] -----+------ \--* LCL_VAR int V02 loc1
New refCnts for V02: refCnt = 3, refCntWtd = 2
*** marking local variables in block BB11 (weight=0.50)
[000396] ------------ * STMT void (IL 0x08E... ???)
[000395] -----+------ \--* JTRUE void
[000393] -----+------ | /--* CNS_INT int -1
[000394] J----+-N---- \--* LT int
[000392] -----+------ \--* LCL_VAR int V20 tmp14
New refCnts for V20: refCnt = 2, refCntWtd = 1
*** marking local variables in block BB12 (weight=1 )
[000412] ------------ * STMT void (IL 0x08E... ???)
[000409] a---G+------ | /--* IND ref
[000615] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
[000616] -----+------ | | \--* ADD byref
[000612] -----+-N---- | | | /--* CNS_INT long 3
[000613] -----+------ | | | /--* LSH long
[000611] -----+------ | | | | \--* CAST long <- int
[000608] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
[000606] -----+------ | | | | \--* ADD int
[000607] i----+------ | | | | \--* LCL_VAR int V20 tmp14
[000614] -----+------ | | \--* ADD byref
[000605] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000617] ---XG+------ | /--* COMMA ref
[000610] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void
[000407] -----+------ | | | /--* CNS_INT int 1
[000408] -----+------ | | +--* ADD int
[000406] -----+------ | | | \--* LCL_VAR int V20 tmp14
[000609] ---X-+------ | | \--* ARR_LENGTH int
[000604] -----+------ | | \--* LCL_VAR ref V34 tmp28
[000618] -ACXG+------ | /--* COMMA ref
[000398] x---G+------ | | | /--* IND ref
[000623] -----+------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
[000405] --CXG+------ | | | /--* COMMA ref
[000404] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
[000400] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
[000401] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
[000603] -ACXG+------ | | \--* ASG ref
[000602] D----+-N---- | | \--* LCL_VAR ref V34 tmp28
[000411] -ACXG+------ \--* ASG ref
[000410] D----+-N---- \--* LCL_VAR ref V22 tmp16
New refCnts for V22: refCnt = 1, refCntWtd = 1
New refCnts for V34: refCnt = 1, refCntWtd = 2
New refCnts for V20: refCnt = 3, refCntWtd = 2
New refCnts for V34: refCnt = 2, refCntWtd = 4
New refCnts for V34: refCnt = 3, refCntWtd = 6
New refCnts for V20: refCnt = 4, refCntWtd = 3
[000422] ------------ * STMT void (IL 0x08E... ???)
[000413] -----+------ | /--* LCL_VAR ref V22 tmp16
[000421] -A---+------ \--* ASG ref
[000420] D----+-N---- \--* LCL_VAR ref V17 tmp11
New refCnts for V17: refCnt = 1, refCntWtd = 1
New refCnts for V22: refCnt = 2, refCntWtd = 2
*** marking local variables in block BB13 (weight=1 )
[000381] ------------ * STMT void (IL 0x08E... ???)
[000378] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
[000377] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
[000380] -AC--+------ \--* ASG ref
[000379] D----+-N---- \--* LCL_VAR ref V21 tmp15
New refCnts for V21: refCnt = 1, refCntWtd = 2
[000438] ------------ * STMT void (IL 0x08E... ???)
[000625] ------------ | /--* CNS_INT ref null
[000626] -A---+------ \--* ASG ref
[000624] D------N---- \--* LCL_VAR ref V29 tmp23
New refCnts for V29: refCnt = 1, refCntWtd = 1
[000459] ------------ * STMT void (IL 0x08E... ???)
[000456] -----+------ | /--* CNS_INT int 0
[000458] -A---+------ \--* ASG int
[000457] D----+-N---- \--* LCL_VAR int V24 tmp18
New refCnts for V24: refCnt = 1, refCntWtd = 1
[000470] ------------ * STMT void (IL 0x08E... ???)
[000465] -----+------ | /--* CNS_INT int 0x1000000
[000467] -----+------ | /--* OR int
[000466] -----+------ | | \--* LCL_VAR int V24 tmp18
[000469] -A-XG+------ \--* ASG int
[000468] V--XG+-N---- \--* IND int
[000627] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
[000628] -----+------ \--* ADD byref
[000464] -----+------ \--* LCL_VAR ref V21 tmp15
New refCnts for V21: refCnt = 2, refCntWtd = 4
New refCnts for V24: refCnt = 2, refCntWtd = 2
[000450] ------------ * STMT void (IL 0x08E... ???)
[000376] -----+------ | /--* LCL_VAR int V02 loc1
[000449] -A-XG+------ \--* ASG int
[000448] ---XG+-N---- \--* IND int
[000629] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result]
[000630] -----+------ \--* ADD byref
[000447] -----+------ \--* LCL_VAR ref V21 tmp15
New refCnts for V21: refCnt = 3, refCntWtd = 6
New refCnts for V02: refCnt = 4, refCntWtd = 3
[000389] ------------ * STMT void (IL 0x08E... ???)
[000386] -----+------ | /--* LCL_VAR ref V21 tmp15
[000388] -A---+------ \--* ASG ref
[000387] D----+-N---- \--* LCL_VAR ref V17 tmp11
New refCnts for V17: refCnt = 2, refCntWtd = 2
New refCnts for V21: refCnt = 4, refCntWtd = 8
*** marking local variables in block BB14 (weight=1 )
[000427] ------------ * STMT void (IL 0x08E... ???)
[000424] -----+------ | /--* CNS_INT ref null
[000426] -A---+------ \--* ASG ref
[000425] D----+-N---- \--* LCL_VAR ref V22 tmp16
New refCnts for V22: refCnt = 3, refCntWtd = 3
[000315] ------------ * STMT void (IL 0x08E... ???)
[000423] -----+------ | /--* LCL_VAR ref V17 tmp11
[000314] -A-XG+------ \--* ASG ref
[000313] *--XG+-N---- \--* IND ref
[000307] -----+------ \--* LCL_VAR byref V16 tmp10
New refCnts for V16: refCnt = 3, refCntWtd = 6
New refCnts for V17: refCnt = 3, refCntWtd = 3
*** marking local variables in block BB15 (weight=1 )
[000305] ------------ * STMT void (IL 0x08E... ???)
[000303] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
[000302] -----+------ this in rcx +--* LCL_VAR byref V16 tmp10
[000059] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1
New refCnts for V16: refCnt = 4, refCntWtd = 8
New refCnts for V02: refCnt = 5, refCntWtd = 4
*** marking local variables in block BB16 (weight=1 )
[000065] ------------ * STMT void (IL 0x09A...0x09A)
[000064] -----+------ \--* RETURN void
*** marking local variables in block BB17 (weight=0 )
[000127] ------------ * STMT void (IL 0x06D...0x06D)
[000007] -----+------ | /--* CATCH_ARG ref
[000126] -A---+------ \--* ASG ref
[000125] D----+-N---- \--* LCL_VAR ref V08 tmp2
New refCnts for V08: refCnt = 1, refCntWtd = 0
[000131] ------------ * STMT void (IL ???... ???)
[000128] -----+------ | /--* LCL_VAR ref V08 tmp2
[000130] -A---+------ \--* ASG ref
[000129] D----+-N---- \--* LCL_VAR ref V05 loc4
New refCnts for V05: refCnt = 1, refCntWtd = 0
New refCnts for V08: refCnt = 2, refCntWtd = 0
[000136] ------------ * STMT void (IL 0x06F...0x072)
[000133] -----+------ | /--* CNS_INT int -2
[000135] -A-XG+------ \--* ASG int
[000134] *--XG+-N---- \--* IND int
[000132] -----+------ \--* LCL_VAR byref V00 this
New refCnts for V00: refCnt = 13, refCntWtd = 12
[000143] ------------ * STMT void (IL 0x077...0x084)
[000141] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetException
[000587] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
[000588] -----+------ | /--* ADD byref
[000586] -----+------ | | \--* LCL_VAR byref V00 this
[000589] ---XG+-N---- this in rcx +--* COMMA byref
[000585] ---X-+-N---- | \--* NULLCHECK byte
[000584] -----+------ | \--* LCL_VAR byref V00 this
[000140] -----+------ arg1 in rdx \--* LCL_VAR ref V08 tmp2
New refCnts for V00: refCnt = 14, refCntWtd = 12
New refCnts for V00: refCnt = 15, refCntWtd = 12
New refCnts for V08: 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 BB04, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB05, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB09, bbWeight is 1 , which is dominated by BB01, ImportantUse
Referenced in BB17, bbWeight is 0 , which is dominated by BB01
lvaGrabTemp returning 36 (V36 tmp30) (a long lifetime temp) called for optAddCopies.
Finding the best place to insert the assignment V36=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 V36: refCnt = 1, refCntWtd = 1
Introducing a new copy for V00
[000638] ------------ /--* LCL_VAR byref V00 this
[000640] -A---------- * ASG byref
[000639] D------N---- \--* LCL_VAR byref V36 tmp30
refCnt table for 'MoveNext':
V00 this [ byref]: refCnt = 18, refCntWtd = 15 pref [rcx]
V16 tmp10 [ byref]: refCnt = 4, refCntWtd = 8
V21 tmp15 [ ref]: refCnt = 4, refCntWtd = 8
V09 tmp3 [ ref]: refCnt = 3, refCntWtd = 6
V30 tmp24 [ byref]: refCnt = 3, refCntWtd = 6
V31 tmp25 [ byref]: refCnt = 3, refCntWtd = 6
V32 tmp26 [ byref]: refCnt = 3, refCntWtd = 6
V33 tmp27 [ byref]: refCnt = 3, refCntWtd = 6
V34 tmp28 [ ref]: refCnt = 3, refCntWtd = 6
V14 tmp8 [ ref]: refCnt = 3, refCntWtd = 5
V02 loc1 [ int]: refCnt = 5, refCntWtd = 4
V01 loc0 [ int]: refCnt = 4, refCntWtd = 4
V12 tmp6 [ ref]: refCnt = 2, refCntWtd = 4
V15 tmp9 [ ref]: refCnt = 2, refCntWtd = 4
V20 tmp14 [ int]: refCnt = 4, refCntWtd = 3
V17 tmp11 [ ref]: refCnt = 3, refCntWtd = 3
V22 tmp16 [ ref]: refCnt = 3, refCntWtd = 3
V27 tmp21 [ ref]: refCnt = 3, refCntWtd = 3
V28 tmp22 [ bool]: refCnt = 3, refCntWtd = 3
V13 tmp7 [ int]: refCnt = 2, refCntWtd = 2
V24 tmp18 [ int]: refCnt = 2, refCntWtd = 2
V07 tmp1 [ int]: refCnt = 1, refCntWtd = 2
V29 tmp23 [ ref]: refCnt = 1, refCntWtd = 1
V36 tmp30 [ byref]: refCnt = 1, refCntWtd = 1
V18 tmp12 [ int]: refCnt = 1, refCntWtd = 0.50
V08 tmp2 [ ref]: refCnt = 3, refCntWtd = 0
V05 loc4 [ ref]: refCnt = 1, refCntWtd = 0
V03 loc2 [struct]: refCnt = 10, refCntWtd = 10
V25 tmp19 [ ref]: refCnt = 7, refCntWtd = 7
V10 tmp4 [struct]: refCnt = 3, refCntWtd = 6
V26 tmp20 [ bool]: refCnt = 4, refCntWtd = 4
V04 loc3 [struct]: refCnt = 2, refCntWtd = 2
V06 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1
V35 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
( 5, 4) [000641] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000638] ------------ | /--* LCL_VAR byref V00 this
N003 ( 5, 4) [000640] -A------R--- \--* ASG byref
N002 ( 3, 2) [000639] D------N---- \--* LCL_VAR byref V36 tmp30
***** 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) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 4
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 5
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3
***** BB03, stmt 6
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 7
( 2, 6) [000178] ------------ * STMT void (IL ???... ???)
N004 ( 1, 1) [000478] ------------ | /--* CNS_INT bool 0
N006 ( 1, 3) [000479] -A------R--- | /--* ASG bool
N005 ( 2, 2) [000477] D------N---- | | \--* LCL_VAR bool V28 tmp22
N007 ( 2, 6) [000480] -A---------- \--* COMMA void
N001 ( 1, 1) [000475] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000476] -A------R--- \--* ASG ref
N002 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 8
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21
***** BB03, stmt 9
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22
***** BB03, stmt 10
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24
N018 ( 17, 18) [000498] -A---------- \--* COMMA void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24
N011 ( 9, 10) [000491] -A---------- \--* COMMA void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24
***** BB03, stmt 11
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 12
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25
***** BB03, stmt 13
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6
***** BB03, stmt 14
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7
***** BB03, stmt 15
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0
N005 ( 7, 9) [000243] N------N---- \--* NE int
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000241] ------------ \--* AND int
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 16
( 1, 3) [000103] ------------ * STMT void (IL 0x027...0x02A)
N001 ( 1, 1) [000100] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000102] -A------R--- \--* ASG int
N002 ( 1, 1) [000101] D------N---- \--* LCL_VAR int V01 loc0
***** BB04, stmt 17
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this
***** BB04, stmt 18
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000523] ------------ | /--* ADD byref
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26
***** BB04, stmt 19
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N010 ( 3, 3) [000546] ------------ | /--* ADD byref
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 20
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000557] ------------ | /--* ADD byref
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27
***** BB05, stmt 21
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
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) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N004 ( 3, 3) [000577] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this
***** BB05, stmt 22
( 5, 4) [000032] ------------ * STMT void (IL 0x05A...0x05D)
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 V07 tmp1
***** BB05, stmt 23
( 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
***** BB05, stmt 24
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
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
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 25
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8
***** BB06, stmt 26
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000281] ---XGO------ \--* AND int
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000579] -------N---- \--* ADD byref
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 27
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 28
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9
***** BB08, stmt 29
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 30
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
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
***** BB09, stmt 31
( 5, 5) [000318] ------------ * STMT void (IL 0x08E... ???)
N004 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000599] ------------ | /--* ADD byref
N003 ( 1, 1) [000597] ------------ | | \--* LCL_VAR byref V00 this
N006 ( 5, 5) [000600] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000596] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000595] ------------ | | \--* LCL_VAR byref V00 this
N008 ( 5, 5) [000317] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10
***** BB09, stmt 32
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int
N002 ( 3, 2) [000296] *--XG------- \--* IND ref
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 33
( 5, 4) [000326] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000323] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000325] -A------R--- \--* ASG int
N002 ( 3, 2) [000321] D------N---- \--* LCL_VAR int V18 tmp12
***** BB10, stmt 34
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1
N003 ( 1, 3) [000368] -A------R--- \--* ASG int
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14
***** BB10, stmt 35
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000372] J------N---- \--* GE int
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V02 loc1
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 36
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000394] J------N---- \--* LT int
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V20 tmp14
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 37
( 41, 55) [000412] ------------ * STMT void (IL 0x08E... ???)
N031 ( 8, 9) [000409] a---G------- | /--* IND ref
N029 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000616] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3
N027 ( 5, 6) [000613] -------N---- | | | /--* LSH long
N025 ( 4, 5) [000611] ------------ | | | | \--* CAST long <- int
N023 ( 1, 1) [000608] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000606] ------------ | | | | \--* ADD int
N022 ( 1, 1) [000607] i----------- | | | | \--* LCL_VAR int V20 tmp14
N028 ( 6, 7) [000614] -------N---- | | \--* ADD byref
N021 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28
N032 ( 18, 22) [000617] ---XG------- | /--* COMMA ref
N020 ( 10, 13) [000610] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1
N017 ( 3, 3) [000408] ------------ | | +--* ADD int
N015 ( 1, 1) [000406] ------------ | | | \--* LCL_VAR int V20 tmp14
N019 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int
N018 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28
N033 ( 41, 55) [000618] -ACXG------- | /--* COMMA ref
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28
N035 ( 41, 55) [000411] -ACXG---R--- \--* ASG ref
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16
***** BB12, stmt 38
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 39
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 40
( 5, 4) [000438] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000625] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000626] -A------R--- \--* ASG ref
N002 ( 3, 2) [000624] D------N---- \--* LCL_VAR ref V29 tmp23
***** BB13, stmt 41
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000458] -A------R--- \--* ASG int
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18
***** BB13, stmt 42
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000467] ------------ | /--* OR int
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000628] -------N---- \--* ADD byref
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 43
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000630] -------N---- \--* ADD byref
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15
***** BB13, stmt 44
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 45
( 1, 3) [000427] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000424] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000426] -A------R--- \--* ASG ref
N002 ( 1, 1) [000425] D------N---- \--* LCL_VAR ref V22 tmp16
***** BB14, stmt 46
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 47
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 48
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 49
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2
***** BB17, stmt 50
( 7, 5) [000131] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000128] ------------ | /--* LCL_VAR ref V08 tmp2
N003 ( 7, 5) [000130] -A------R--- \--* ASG ref
N002 ( 3, 2) [000129] D------N---- \--* LCL_VAR ref V05 loc4
***** BB17, stmt 51
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this
***** BB17, stmt 52
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000588] ------------ | /--* ADD byref
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2
-------------------------------------------------------------------------------------------------------------------
*************** In SsaBuilder::Build()
[SsaBuilder] Max block count is 18.
--------------------------------------------------------------------------------------------------------------------------------------
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( cret ) H0 F catch { } keep i rare label target gcsafe flet
--------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table
index eTry, eHnd
0 :: - Try at BB02..BB08 [007..06D), Handler at BB17..BB17 [06D..086)
[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 V36}
BB02 USE(1)={V01}
DEF(0)={ }
BB03 USE(0)={ } + ByrefExposed + GcHeap
DEF(7)={V09 V30 V31 V12 V27 V28 V13} + ByrefExposed* + GcHeap*
BB04 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V32 V01} + ByrefExposed* + GcHeap*
BB05 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(3)={ V33 V01 V07} + ByrefExposed + GcHeap
BB06 USE(0)={ } + ByrefExposed + GcHeap
DEF(1)={V14} + ByrefExposed + GcHeap
BB07 USE(1)={V14} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed* + GcHeap*
BB08 USE(0)={ } + ByrefExposed + GcHeap
DEF(2)={V02 V15}
BB09 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(1)={ V16} + ByrefExposed + GcHeap
BB10 USE(1)={V02 }
DEF(2)={ V20 V18}
BB11 USE(1)={V20}
DEF(0)={ }
BB12 USE(1)={ V20 } + ByrefExposed + GcHeap
DEF(3)={V34 V17 V22} + ByrefExposed* + GcHeap*
BB13 USE(1)={ V02 } + ByrefExposed + GcHeap
DEF(4)={V21 V17 V24 V29} + ByrefExposed + GcHeap
BB14 USE(2)={V16 V17 } + ByrefExposed + GcHeap
DEF(1)={ V22} + ByrefExposed + GcHeap
BB15 USE(2)={V16 V02} + ByrefExposed + GcHeap
DEF(0)={ } + ByrefExposed* + GcHeap*
BB16 USE(0)={}
DEF(0)={}
BB17 USE(1)={V00 } + ByrefExposed + GcHeap
DEF(2)={ V08 V05} + 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(1)={V00} + ByrefExposed + GcHeap
BB04 IN (1)={V00} + ByrefExposed + GcHeap
OUT(1)={V00} + ByrefExposed + GcHeap
BB05 IN (1)={V00} + ByrefExposed + GcHeap
OUT(1)={V00} + ByrefExposed + GcHeap
BB06 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V14} + ByrefExposed + GcHeap
BB07 IN (2)={V00 V14} + ByrefExposed + GcHeap
OUT(1)={V00 } + ByrefExposed + GcHeap
BB08 IN (1)={V00 } + ByrefExposed + GcHeap
OUT(2)={V00 V02} + ByrefExposed + GcHeap
BB09 IN (2)={V00 V02} + ByrefExposed + GcHeap
OUT(2)={ V16 V02} + ByrefExposed + GcHeap
BB10 IN (2)={V16 V02 } + ByrefExposed + GcHeap
OUT(3)={V16 V02 V20} + ByrefExposed + GcHeap
BB11 IN (3)={V16 V02 V20} + ByrefExposed + GcHeap
OUT(3)={V16 V02 V20} + ByrefExposed + GcHeap
BB12 IN (2)={V16 V20 } + ByrefExposed + GcHeap
OUT(2)={V16 V17} + ByrefExposed + GcHeap
BB13 IN (2)={V16 V02 } + ByrefExposed + GcHeap
OUT(2)={V16 V17} + ByrefExposed + GcHeap
BB14 IN (2)={V16 V17} + ByrefExposed + GcHeap
OUT(0)={ }
BB15 IN (2)={V16 V02} + ByrefExposed + GcHeap
OUT(0)={ }
BB16 IN (0)={}
OUT(0)={}
BB17 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 [000641] in BB01 as useless:
( 5, 4) [000641] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000638] ------------ | /--* LCL_VAR byref V00 this
N003 ( 5, 4) [000640] -A------R--- \--* ASG byref
N002 ( 3, 2) [000639] D------N---- \--* LCL_VAR byref V36 tmp30
New refCnts for V36: refCnt = 0, refCntWtd = 0
New refCnts for V00: refCnt = 17, refCntWtd = 14
Removing tree [000479] in BB03 as useless
N004 ( 1, 1) [000478] ------------ /--* CNS_INT bool 0
N006 ( 1, 3) [000479] -A------R--- * ASG bool
N005 ( 2, 2) [000477] D------N---- \--* LCL_VAR bool V28 tmp22
New refCnts for V28: refCnt = 2, refCntWtd = 2
Removing tree [000476] in BB03 as useless
N001 ( 1, 1) [000475] ------------ /--* CNS_INT ref null
N003 ( 1, 3) [000476] -A------R--- * ASG ref
N002 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp21
New refCnts for V27: refCnt = 2, refCntWtd = 2
fgComputeLife modified tree:
N002 ( 0, 0) [000479] ------------ /--* NOP void
N003 ( 0, 0) [000480] ------------ * COMMA void
N001 ( 0, 0) [000476] ------------ \--* NOP void
top level assign
removing stmt with no side effects
Removing statement [000103] in BB04 as useless:
( 1, 3) [000103] ------------ * STMT void (IL 0x027...0x02A)
N001 ( 1, 1) [000100] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000102] -A------R--- \--* ASG int
N002 ( 1, 1) [000101] 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 BB05 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 BB05 as useless:
( 5, 4) [000032] ------------ * STMT void (IL 0x05A...0x05D)
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 V07 tmp1
New refCnts for V07: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000326] in BB10 as useless:
( 5, 4) [000326] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000323] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000325] -A------R--- \--* ASG int
N002 ( 3, 2) [000321] D------N---- \--* LCL_VAR int V18 tmp12
New refCnts for V18: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000438] in BB13 as useless:
( 5, 4) [000438] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000625] ------------ | /--* CNS_INT ref null
N003 ( 5, 4) [000626] -A------R--- \--* ASG ref
N002 ( 3, 2) [000624] D------N---- \--* LCL_VAR ref V29 tmp23
New refCnts for V29: refCnt = 0, refCntWtd = 0
top level assign
removing stmt with no side effects
Removing statement [000427] in BB14 as useless:
( 1, 3) [000427] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000424] ------------ | /--* CNS_INT ref null
N003 ( 1, 3) [000426] -A------R--- \--* ASG ref
N002 ( 1, 1) [000425] D------N---- \--* LCL_VAR ref V22 tmp16
New refCnts for V22: refCnt = 2, refCntWtd = 2
top level assign
removing stmt with no side effects
Removing statement [000131] in BB17 as useless:
( 7, 5) [000131] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000128] ------------ | /--* LCL_VAR ref V08 tmp2
N003 ( 7, 5) [000130] -A------R--- \--* ASG ref
N002 ( 3, 2) [000129] D------N---- \--* LCL_VAR ref V05 loc4
New refCnts for V05: refCnt = 0, refCntWtd = 0
New refCnts for V08: 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 BB17.
Inserting phi definition for GcHeap at start of BB17.
Inserting phi definition for V17 at start of BB14.
Inserting phi definition for ByrefExposed at start of BB14.
Inserting phi definition for GcHeap at start of BB14.
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 BB06.
Inserting phi definition for GcHeap at start of BB06.
*************** 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void
N003 ( 0, 0) [000480] ------------ \--* COMMA void
N001 ( 0, 0) [000476] ------------ \--* NOP void
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use)
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use)
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use)
N018 ( 17, 18) [000498] -A---------- \--* COMMA void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use)
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3
N011 ( 9, 10) [000491] -A---------- \--* COMMA void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use)
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use)
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0
N005 ( 7, 9) [000243] N------N---- \--* NE int
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000241] ------------ \--* AND int
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use)
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use)
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000523] ------------ | /--* ADD byref
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N010 ( 3, 3) [000546] ------------ | /--* ADD byref
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use)
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000557] ------------ | /--* ADD byref
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
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) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N004 ( 3, 3) [000577] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
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
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000281] ---XGO------ \--* AND int
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000579] -------N---- \--* ADD byref
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use)
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use)
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
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
***** BB09, stmt 27
( 5, 5) [000318] ------------ * STMT void (IL 0x08E... ???)
N004 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N005 ( 3, 3) [000599] ------------ | /--* ADD byref
N003 ( 1, 1) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N006 ( 5, 5) [000600] ---XG--N---- | /--* COMMA byref
N002 ( 2, 2) [000596] ---X---N---- | | \--* NULLCHECK byte
N001 ( 1, 1) [000595] ------------ | | \--* LCL_VAR byref V00 this u:2
N008 ( 5, 5) [000317] -A-XG---R--- \--* ASG byref
N007 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int
N002 ( 3, 2) [000296] *--XG------- \--* IND ref
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3
N003 ( 1, 3) [000368] -A------R--- \--* ASG int
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000372] J------N---- \--* GE int
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V02 loc1 u:3
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000394] J------N---- \--* LT int
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V20 tmp14 u:3
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 41, 55) [000412] ------------ * STMT void (IL 0x08E... ???)
N031 ( 8, 9) [000409] a---G------- | /--* IND ref
N029 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000616] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3
N027 ( 5, 6) [000613] -------N---- | | | /--* LSH long
N025 ( 4, 5) [000611] ------------ | | | | \--* CAST long <- int
N023 ( 1, 1) [000608] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000606] ------------ | | | | \--* ADD int
N022 ( 1, 1) [000607] i----------- | | | | \--* LCL_VAR int V20 tmp14 u:3 (last use)
N028 ( 6, 7) [000614] -------N---- | | \--* ADD byref
N021 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use)
N032 ( 18, 22) [000617] ---XG------- | /--* COMMA ref
N020 ( 10, 13) [000610] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1
N017 ( 3, 3) [000408] ------------ | | +--* ADD int
N015 ( 1, 1) [000406] ------------ | | | \--* LCL_VAR int V20 tmp14 u:3
N019 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int
N018 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3
N033 ( 41, 55) [000618] -ACXG------- | /--* COMMA ref
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3
N035 ( 41, 55) [000411] -ACXG---R--- \--* ASG ref
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use)
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000458] -A------R--- \--* ASG int
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3
***** BB13, stmt 36
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000467] ------------ | /--* OR int
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18 u:3 (last use)
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000628] -------N---- \--* ADD byref
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use)
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000630] -------N---- \--* ADD byref
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use)
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use)
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use)
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use)
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use)
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000588] ------------ | /--* ADD byref
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In optEarlyProp()
New refCnts for V00: refCnt = 16, refCntWtd = 13
New refCnts for V16: refCnt = 5, refCntWtd = 10
New refCnts for V00: refCnt = 17, refCntWtd = 14
optFoldNullCheck morphed tree:
N002 ( 1, 1) [000598] ------------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N003 ( 5, 4) [000599] ------------ /--* ADD byref
N001 ( 3, 2) [000597] ------------ | \--* LCL_VAR byref V00 this u:2 (last use)
N005 ( 5, 4) [000317] -A--G---R--- * ASG byref
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init)
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void
N003 ( 0, 0) [000480] ------------ \--* COMMA void
N001 ( 0, 0) [000476] ------------ \--* NOP void
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use)
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use)
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use)
N018 ( 17, 18) [000498] -A---------- \--* COMMA void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use)
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3
N011 ( 9, 10) [000491] -A---------- \--* COMMA void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy)
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use)
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use)
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0
N005 ( 7, 9) [000243] N------N---- \--* NE int
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000241] ------------ \--* AND int
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use)
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use)
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000523] ------------ | /--* ADD byref
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N010 ( 3, 3) [000546] ------------ | /--* ADD byref
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use)
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000557] ------------ | /--* ADD byref
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
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) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N004 ( 3, 3) [000577] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
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
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000281] ---XGO------ \--* AND int
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000579] -------N---- \--* ADD byref
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use)
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use)
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
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
***** BB09, stmt 27
( 5, 4) [000318] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N003 ( 5, 4) [000599] ------------ | /--* ADD byref
N001 ( 3, 2) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N005 ( 5, 4) [000317] -A--G---R--- \--* ASG byref
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int
N002 ( 3, 2) [000296] *--XG------- \--* IND ref
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3
N003 ( 1, 3) [000368] -A------R--- \--* ASG int
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000372] J------N---- \--* GE int
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V02 loc1 u:3
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000394] J------N---- \--* LT int
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V20 tmp14 u:3
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 41, 55) [000412] ------------ * STMT void (IL 0x08E... ???)
N031 ( 8, 9) [000409] a---G------- | /--* IND ref
N029 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000616] -------N---- | | \--* ADD byref
N026 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3
N027 ( 5, 6) [000613] -------N---- | | | /--* LSH long
N025 ( 4, 5) [000611] ------------ | | | | \--* CAST long <- int
N023 ( 1, 1) [000608] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000606] ------------ | | | | \--* ADD int
N022 ( 1, 1) [000607] i----------- | | | | \--* LCL_VAR int V20 tmp14 u:3 (last use)
N028 ( 6, 7) [000614] -------N---- | | \--* ADD byref
N021 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use)
N032 ( 18, 22) [000617] ---XG------- | /--* COMMA ref
N020 ( 10, 13) [000610] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1
N017 ( 3, 3) [000408] ------------ | | +--* ADD int
N015 ( 1, 1) [000406] ------------ | | | \--* LCL_VAR int V20 tmp14 u:3
N019 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int
N018 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3
N033 ( 41, 55) [000618] -ACXG------- | /--* COMMA ref
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3
N035 ( 41, 55) [000411] -ACXG---R--- \--* ASG ref
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use)
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0
N003 ( 5, 4) [000458] -A------R--- \--* ASG int
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3
***** BB13, stmt 36
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000467] ------------ | /--* OR int
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18 u:3 (last use)
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000628] -------N---- \--* ADD byref
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use)
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000630] -------N---- \--* ADD byref
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use)
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use)
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use)
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use)
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use)
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000588] ------------ | /--* ADD byref
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use)
-------------------------------------------------------------------------------------------------------------------
*************** In fgValueNumber()
Memory Initial Value in BB01 is: $180
The SSA definition for ByrefExposed (#2) at start of BB01 is $180 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB01 is $180 {InitVal($41)}
***** BB01, stmt 1 (before)
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
N001 [000001] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N002 [000002] IND => <l:$1c0 {ByrefExposedLoad($42, $80, $180)}, c:$200 {200}>
N003 [000003] LCL_VAR V01 loc0 d:3 => <l:$1c0 {ByrefExposedLoad($42, $80, $180)}, c:$200 {200}>
N004 [000004] ASG => <l:$1c0 {ByrefExposedLoad($42, $80, $180)}, c:$200 {200}>
***** BB01, stmt 1 (after)
N002 ( 3, 2) [000002] *--XG------- /--* IND int <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- * ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
finish(BB01).
Succ(BB02).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#2) at start of BB02 is $180 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB02 is $180 {InitVal($41)}
***** BB02, stmt 2 (before)
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)
N001 [000009] LCL_VAR V01 loc0 u:3 (last use) => <l:$1c0 {ByrefExposedLoad($42, $80, $180)}, c:$200 {200}>
N002 [000010] CNS_INT 0 => $40 {IntCns 0}
N003 [000011] EQ => <l:$241 {EQ($1c0, $40)}, c:$240 {EQ($200, $40)}>
***** BB02, stmt 2 (after)
N004 ( 5, 5) [000012] ------------ * JTRUE void
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
finish(BB02).
Succ(BB03).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB05).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for ByrefExposed (#2) at start of BB05 is $180 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB05 is $180 {InitVal($41)}
***** BB05, stmt 18 (before)
N016 ( 5, 5) [000573] ---X-------- /--* IND bool
N014 ( 1, 1) [000571] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000572] -------N---- | \--* ADD byref
N013 ( 1, 1) [000570] ------------ | \--* LCL_VAR byref V33 tmp27 u:3 (last use)
N018 ( 10, 9) [000574] -A-XG---R--- /--* ASG bool
N017 ( 4, 3) [000569] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- * COMMA void
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000557] ------------ | /--* ADD byref
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3
N001 [000558] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N002 [000559] CNS_INT 16 field offset Fseq[<>u__1] => $141 {LngCns: 16}
N003 [000557] ADD => $280 {ADD($80, $141)}
N004 [000560] LCL_VAR V33 tmp27 d:3 => $280 {ADD($80, $141)}
N005 [000561] ASG => $280 {ADD($80, $141)}
N006 [000563] LCL_VAR V33 tmp27 u:3 => $280 {ADD($80, $141)}
N007 [000564] CNS_INT 0 Fseq[m_task] => $140 {LngCns: 0}
N008 [000565] ADD => $281 {ADD($140, $280)}
N009 [000566] IND => <l:$300 {ByrefExposedLoad($43, $281, $180)}, c:$340 {340}>
fgCurMemoryVN[ByrefExposed] assigned by local assign at [000567] to VN: $c1.
Node [000567] sets ByrefExposed SSA # 3 to VN $c1: {c1}
N011 [000567] ASG => <l:$300 {ByrefExposedLoad($43, $281, $180)}, c:$340 {340}>
N012 [000568] COMMA => <l:$300 {ByrefExposedLoad($43, $281, $180)}, c:$340 {340}>
N013 [000570] LCL_VAR V33 tmp27 u:3 (last use) => $280 {ADD($80, $141)}
N014 [000571] CNS_INT 8 Fseq[m_continueOnCapturedContext] => $142 {LngCns: 8}
N015 [000572] ADD => $282 {ADD($142, $280)}
N016 [000573] IND => <l:$380 {ByrefExposedLoad($44, $282, $c1)}, c:$3c0 {3c0}>
fgCurMemoryVN[ByrefExposed] assigned by local assign at [000574] to VN: $c2.
Node [000574] sets ByrefExposed SSA # 4 to VN $c2: {c2}
N018 [000574] ASG => <l:$380 {ByrefExposedLoad($44, $282, $c1)}, c:$3c0 {3c0}>
N019 [000575] COMMA => <l:$380 {ByrefExposedLoad($44, $282, $c1)}, c:$3c0 {3c0}>
***** BB05, stmt 18 (after)
N016 ( 5, 5) [000573] ---X-------- /--* IND bool <l:$380, c:$3c0>
N014 ( 1, 1) [000571] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000572] -------N---- | \--* ADD byref $282
N013 ( 1, 1) [000570] ------------ | \--* LCL_VAR byref V33 tmp27 u:3 (last use) $280
N018 ( 10, 9) [000574] -A-XG---R--- /--* ASG bool <l:$380, c:$3c0>
N017 ( 4, 3) [000569] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- * COMMA void <l:$380, c:$3c0>
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref <l:$300, c:$340>
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 $280
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref <l:$300, c:$340>
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void <l:$300, c:$340>
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000557] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3 $280
---------
***** BB05, stmt 19 (before)
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) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N004 ( 3, 3) [000577] ------------ \--* ADD byref
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2
N001 [000024] CNS_INT 0 => $40 {IntCns 0}
N002 [000021] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N003 [000576] CNS_INT 16 field offset Fseq[<>u__1] => $141 {LngCns: 16}
N004 [000577] ADD => $280 {ADD($80, $141)}
fgCurMemoryVN[GcHeap] assigned by INITBLK - non local at [000026] to VN: $341.
Node [000026] sets GcHeap SSA # 6 to VN $341: {341}
N006 [000026] ASG => $VN.Void
***** BB05, stmt 19 (after)
N001 ( 1, 1) [000024] ------------ /--* CNS_INT int 0 $40
N006 ( 8, 7) [000026] IA-XG---R--- * ASG struct (init) $VN.Void
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N004 ( 3, 3) [000577] ------------ \--* ADD byref $280
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 $80
---------
***** BB05, stmt 20 (before)
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
N001 [000028] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N003 [000033] CNS_INT -1 => $41 {IntCns -1}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000039] to VN: $342.
Node [000039] sets GcHeap SSA # 8 to VN $342: {342}
N004 [000039] ASG => $VN.Void
***** BB05, stmt 20 (after)
N003 ( 1, 1) [000033] ------------ /--* CNS_INT int -1 $41
N004 ( 5, 4) [000039] -A-XG------- * ASG int $VN.Void
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int $41
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 $80
finish(BB05).
Succ(BB06).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for ByrefExposed (#2) at start of BB03 is $180 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB03 is $180 {InitVal($41)}
***** BB03, stmt 3 (before)
N001 ( 14, 5) [000067] --CXG------- /--* CALL ref Program.Task2
N003 ( 14, 5) [000166] -ACXG---R--- * ASG ref
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3
fgCurMemoryVN[GcHeap] assigned by CALL at [000067] to VN: $344.
N001 [000067] CALL => $343 {343}
N002 [000165] LCL_VAR V09 tmp3 d:3 => $343 {343}
N003 [000166] ASG => $343 {343}
***** BB03, stmt 3 (after)
N001 ( 14, 5) [000067] --CXG------- /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- * ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
---------
***** BB03, stmt 4 (before)
N002 ( 3, 2) [000164] ---X-------- * IND int
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3
N001 [000163] LCL_VAR V09 tmp3 u:3 => $343 {343}
N002 [000164] IND => $202 {202}
***** BB03, stmt 4 (after)
N002 ( 3, 2) [000164] ---X-------- * IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
---------
***** BB03, stmt 5 (before)
N001 ( 1, 1) [000150] ------------ /--* CNS_INT int 0
N003 ( 5, 4) [000151] IA------R--- * ASG struct (init)
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
N001 [000150] CNS_INT 0 => $40 {IntCns 0}
fgCurMemoryVN[ByrefExposed] assigned by INITBLK - address-exposed local at [000151] to VN: $c6.
N003 [000151] ASG => $VN.Void
***** BB03, stmt 5 (after)
N001 ( 1, 1) [000150] ------------ /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- * ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
---------
***** BB03, stmt 6 (before)
N002 ( 0, 0) [000479] ------------ /--* NOP void
N003 ( 0, 0) [000480] ------------ * COMMA void
N001 ( 0, 0) [000476] ------------ \--* NOP void
N001 [000476] NOP => $400 {400}
N002 [000479] NOP => $401 {401}
N003 [000480] COMMA => $401 {401}
***** BB03, stmt 6 (after)
N002 ( 0, 0) [000479] ------------ /--* NOP void $401
N003 ( 0, 0) [000480] ------------ * COMMA void $401
N001 ( 0, 0) [000476] ------------ \--* NOP void $400
---------
***** BB03, stmt 7 (before)
N001 ( 1, 1) [000147] ------------ /--* LCL_VAR ref V09 tmp3 u:3 (last use)
N003 ( 1, 3) [000197] -A------R--- * ASG ref
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3
N001 [000147] LCL_VAR V09 tmp3 u:3 (last use) => $343 {343}
N002 [000196] LCL_VAR V27 tmp21 d:3 => $343 {343}
N003 [000197] ASG => $343 {343}
***** BB03, stmt 7 (after)
N001 ( 1, 1) [000147] ------------ /--* LCL_VAR ref V09 tmp3 u:3 (last use) $343
N003 ( 1, 3) [000197] -A------R--- * ASG ref $343
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3 $343
---------
***** BB03, stmt 8 (before)
N001 ( 1, 1) [000201] ------------ /--* CNS_INT int 0
N003 ( 1, 3) [000203] -A------R--- * ASG bool
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3
N001 [000201] CNS_INT 0 => $40 {IntCns 0}
VNForCastOper(bool) is $45
N002 [000202] LCL_VAR V28 tmp22 d:3 => $40 {IntCns 0}
N003 [000203] ASG => $40 {IntCns 0}
***** BB03, stmt 8 (after)
N001 ( 1, 1) [000201] ------------ /--* CNS_INT int 0 $40
N003 ( 1, 3) [000203] -A------R--- * ASG bool $40
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3 $40
---------
***** BB03, stmt 9 (before)
N016 ( 2, 2) [000496] -------N---- /--* LCL_VAR bool V28 tmp22 u:3 (last use)
N017 ( 8, 8) [000497] -A---------- /--* ASG bool
N015 ( 5, 5) [000495] *------N---- | \--* IND bool
N013 ( 1, 1) [000493] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000494] -------N---- | \--* ADD byref
N012 ( 1, 1) [000492] ------------ | \--* LCL_VAR byref V30 tmp24 u:3 (last use)
N018 ( 17, 18) [000498] -A---------- * COMMA void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use)
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3
N011 ( 9, 10) [000491] -A---------- \--* COMMA void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3
N001 [000482] LCL_FLD V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] => $440 {440}
N002 [000481] ADDR => $2c1 {2c1}
N003 [000483] LCL_VAR V30 tmp24 d:3 => $2c1 {2c1}
N004 [000484] ASG => $2c1 {2c1}
N005 [000485] LCL_VAR V30 tmp24 u:3 => $2c1 {2c1}
N006 [000486] CNS_INT 0 Fseq[m_task] => $140 {LngCns: 0}
N007 [000487] ADD => $283 {ADD($140, $2c1)}
N009 [000489] LCL_VAR V27 tmp21 u:3 (last use) => $343 {343}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000490] to VN: $347.
N010 [000490] ASG => $VN.Void
N011 [000491] COMMA => $VN.Void
N012 [000492] LCL_VAR V30 tmp24 u:3 (last use) => $2c1 {2c1}
N013 [000493] CNS_INT 8 Fseq[m_continueOnCapturedContext] => $142 {LngCns: 8}
N014 [000494] ADD => $284 {ADD($142, $2c1)}
N016 [000496] LCL_VAR V28 tmp22 u:3 (last use) => $40 {IntCns 0}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000497] to VN: $348.
N017 [000497] ASG => $VN.Void
N018 [000498] COMMA => $VN.Void
***** BB03, stmt 9 (after)
N016 ( 2, 2) [000496] -------N---- /--* LCL_VAR bool V28 tmp22 u:3 (last use) $40
N017 ( 8, 8) [000497] -A---------- /--* ASG bool $VN.Void
N015 ( 5, 5) [000495] *------N---- | \--* IND bool $40
N013 ( 1, 1) [000493] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000494] -------N---- | \--* ADD byref $284
N012 ( 1, 1) [000492] ------------ | \--* LCL_VAR byref V30 tmp24 u:3 (last use) $2c1
N018 ( 17, 18) [000498] -A---------- * COMMA void $VN.Void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use) $343
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref $VN.Void
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref $343
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref $283
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 $2c1
N011 ( 9, 10) [000491] -A---------- \--* COMMA void $VN.Void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref $2c1
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] $440
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref $2c1
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3 $2c1
---------
***** BB03, stmt 10 (before)
N001 ( 3, 2) [000159] ----G------- /--* LCL_VAR struct(AX) V10 tmp4
N003 ( 7, 5) [000162] -A--G---R--- * ASG struct (copy)
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
N001 [000159] LCL_VAR V10 tmp4 => $480 {ByrefExposedLoad($47, $285, $c8)}
fgCurMemoryVN[ByrefExposed] assigned by COPYBLK - address-exposed local at [000162] to VN: $c9.
N003 [000162] ASG => $VN.Void
***** BB03, stmt 10 (after)
N001 ( 3, 2) [000159] ----G------- /--* LCL_VAR struct(AX) V10 tmp4 $480
N003 ( 7, 5) [000162] -A--G---R--- * ASG struct (copy) $VN.Void
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
---------
***** BB03, stmt 11 (before)
N015 ( 5, 5) [000516] ---X-------- /--* IND bool
N013 ( 1, 1) [000514] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N014 ( 2, 2) [000515] -------N---- | \--* ADD byref
N012 ( 1, 1) [000513] ------------ | \--* LCL_VAR byref V31 tmp25 u:3 (last use)
N017 ( 10, 9) [000517] -A-XG---R--- /--* ASG bool
N016 ( 4, 3) [000512] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- * COMMA void
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter]
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3
N001 [000502] LCL_FLD V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] => $441 {441}
N002 [000501] ADDR => $2c3 {2c3}
N003 [000503] LCL_VAR V31 tmp25 d:3 => $2c3 {2c3}
N004 [000504] ASG => $2c3 {2c3}
N005 [000506] LCL_VAR V31 tmp25 u:3 => $2c3 {2c3}
N006 [000507] CNS_INT 0 Fseq[m_task] => $140 {LngCns: 0}
N007 [000508] ADD => $286 {ADD($140, $2c3)}
N008 [000509] IND => <l:$301 {ByrefExposedLoad($43, $286, $c9)}, c:$349 {349}>
fgCurMemoryVN[ByrefExposed] assigned by local assign at [000510] to VN: $ca.
N010 [000510] ASG => <l:$301 {ByrefExposedLoad($43, $286, $c9)}, c:$349 {349}>
N011 [000511] COMMA => <l:$301 {ByrefExposedLoad($43, $286, $c9)}, c:$349 {349}>
N012 [000513] LCL_VAR V31 tmp25 u:3 (last use) => $2c3 {2c3}
N013 [000514] CNS_INT 8 Fseq[m_continueOnCapturedContext] => $142 {LngCns: 8}
N014 [000515] ADD => $287 {ADD($142, $2c3)}
N015 [000516] IND => <l:$381 {ByrefExposedLoad($44, $287, $ca)}, c:$3c2 {3c2}>
fgCurMemoryVN[ByrefExposed] assigned by local assign at [000517] to VN: $cb.
N017 [000517] ASG => <l:$381 {ByrefExposedLoad($44, $287, $ca)}, c:$3c2 {3c2}>
N018 [000518] COMMA => <l:$381 {ByrefExposedLoad($44, $287, $ca)}, c:$3c2 {3c2}>
***** BB03, stmt 11 (after)
N015 ( 5, 5) [000516] ---X-------- /--* IND bool <l:$381, c:$3c2>
N013 ( 1, 1) [000514] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000515] -------N---- | \--* ADD byref $287
N012 ( 1, 1) [000513] ------------ | \--* LCL_VAR byref V31 tmp25 u:3 (last use) $2c3
N017 ( 10, 9) [000517] -A-XG---R--- /--* ASG bool <l:$381, c:$3c2>
N016 ( 4, 3) [000512] D---G--N---- | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- * COMMA void <l:$381, c:$3c2>
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref <l:$301, c:$349>
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref $286
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 $2c3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref <l:$301, c:$349>
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void <l:$301, c:$349>
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref $2c3
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] $441
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref $2c3
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3 $2c3
---------
***** BB03, stmt 12 (before)
N001 ( 3, 2) [000217] ----G------- /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000236] -A--G---R--- * ASG ref
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3
N001 [000217] LCL_VAR V25 tmp19 => $302 {ByrefExposedLoad($43, $288, $cb)}
N002 [000235] LCL_VAR V12 tmp6 d:3 => $302 {ByrefExposedLoad($43, $288, $cb)}
N003 [000236] ASG => $302 {ByrefExposedLoad($43, $288, $cb)}
***** BB03, stmt 12 (after)
N001 ( 3, 2) [000217] ----G------- /--* LCL_VAR ref (AX) V25 tmp19 $302
N003 ( 3, 3) [000236] -A--G---R--- * ASG ref $302
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3 $302
---------
***** BB03, stmt 13 (before)
N004 ( 4, 4) [000225] V--XGO-N---- /--* IND int
N002 ( 1, 1) [000519] ------------ | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000520] -------N---- | \--* ADD byref
N001 ( 1, 1) [000224] ------------ | \--* LCL_VAR ref V12 tmp6 u:3 (last use)
N006 ( 8, 7) [000227] -A-XGO--R--- * ASG int
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3
N001 [000224] LCL_VAR V12 tmp6 u:3 (last use) => $302 {ByrefExposedLoad($43, $288, $cb)}
N002 [000519] CNS_INT 52 field offset Fseq[m_stateFlags] => $143 {LngCns: 52}
N003 [000520] ADD => $289 {ADD($143, $302)}
fgCurMemoryVN[GcHeap] assigned by GTF_IND_VOLATILE - read at [000225] to VN: $34b.
N004 [000225] IND => $203 {203}
N005 [000226] LCL_VAR V13 tmp7 d:3 => $203 {203}
N006 [000227] ASG => $203 {203}
***** BB03, stmt 13 (after)
N004 ( 4, 4) [000225] V--XGO-N---- /--* IND int $203
N002 ( 1, 1) [000519] ------------ | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000520] -------N---- | \--* ADD byref $289
N001 ( 1, 1) [000224] ------------ | \--* LCL_VAR ref V12 tmp6 u:3 (last use) $302
N006 ( 8, 7) [000227] -A-XGO--R--- * ASG int $203
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3 $203
---------
***** BB03, stmt 14 (before)
N006 ( 9, 11) [000095] ------------ * JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0
N005 ( 7, 9) [000243] N------N---- \--* NE int
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000
N003 ( 5, 7) [000241] ------------ \--* AND int
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use)
N001 [000229] LCL_VAR V13 tmp7 u:3 (last use) => $203 {203}
N002 [000240] CNS_INT 0x1600000 => $49 {IntCns 0x1600000}
N003 [000241] AND => $242 {AND($49, $203)}
N004 [000242] CNS_INT 0 => $40 {IntCns 0}
N005 [000243] NE => $243 {NE($242, $40)}
***** BB03, stmt 14 (after)
N006 ( 9, 11) [000095] ------------ * JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0 $40
N005 ( 7, 9) [000243] N------N---- \--* NE int $243
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000 $49
N003 ( 5, 7) [000241] ------------ \--* AND int $242
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use) $203
finish(BB03).
Succ(BB04).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB06).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Building phi application: $4a = SSA# 11.
Building phi application: $4b = SSA# 9.
Building phi application: $4c0 = phi($4b, $4a).
The SSA definition for ByrefExposed (#15) at start of BB06 is $4c1 {PhiMemoryDef($500, $4c0)}
Building phi application: $4c = SSA# 12.
Building phi application: $46 = SSA# 10.
Building phi application: $4c2 = phi($46, $4c).
The SSA definition for GcHeap (#16) at start of BB06 is $4c3 {PhiMemoryDef($500, $4c2)}
***** BB06, stmt 21 (before)
N001 ( 3, 2) [000248] ----G------- /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000275] -A--G---R--- * ASG ref
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3
N001 [000248] LCL_VAR V25 tmp19 => $303 {ByrefExposedLoad($43, $288, $4c1)}
N002 [000274] LCL_VAR V14 tmp8 d:3 => $303 {ByrefExposedLoad($43, $288, $4c1)}
N003 [000275] ASG => $303 {ByrefExposedLoad($43, $288, $4c1)}
***** BB06, stmt 21 (after)
N001 ( 3, 2) [000248] ----G------- /--* LCL_VAR ref (AX) V25 tmp19 $303
N003 ( 3, 3) [000275] -A--G---R--- * ASG ref $303
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3 $303
---------
***** BB06, stmt 22 (before)
N009 ( 10, 16) [000266] ---XGO------ * JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000
N006 ( 6, 9) [000281] ---XGO------ \--* AND int
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N003 ( 2, 2) [000579] -------N---- \--* ADD byref
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3
N001 [000260] LCL_VAR V14 tmp8 u:3 => $303 {ByrefExposedLoad($43, $288, $4c1)}
N002 [000578] CNS_INT 52 field offset Fseq[m_stateFlags] => $143 {LngCns: 52}
N003 [000579] ADD => $28a {ADD($143, $303)}
fgCurMemoryVN[GcHeap] assigned by GTF_IND_VOLATILE - read at [000279] to VN: $34d.
N004 [000279] IND => $205 {205}
N005 [000280] CNS_INT 0x11000000 => $4d {IntCns 0x11000000}
N006 [000281] AND => $244 {AND($4d, $205)}
N007 [000282] CNS_INT 0x1000000 => $4e {IntCns 0x1000000}
N008 [000283] EQ => $245 {EQ($244, $4e)}
***** BB06, stmt 22 (after)
N009 ( 10, 16) [000266] ---XGO------ * JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int $245
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000 $4d
N006 ( 6, 9) [000281] ---XGO------ \--* AND int $244
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int $205
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000579] -------N---- \--* ADD byref $28a
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3 $303
finish(BB06).
Succ(BB07).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB08).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for ByrefExposed (#17) at start of BB07 is $cd {cd}
The SSA definition for GcHeap (#18) at start of BB07 is $34d {34d}
***** BB07, stmt 23 (before)
N005 ( 15, 7) [000271] --CXG------- * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use)
N001 [000580] ARGPLACE => $34e {34e}
N002 [000272] LIST => $540 {LIST($34e, $0)}
N003 [000270] LCL_VAR V14 tmp8 u:3 (last use) => $303 {ByrefExposedLoad($43, $288, $4c1)}
N004 [000581] LIST => $541 {LIST($303, $0)}
VN of ARGPLACE tree [000580] updated to $303 {ByrefExposedLoad($43, $288, $4c1)}
N002 [000272] LIST => $541 {LIST($303, $0)}
fgCurMemoryVN[GcHeap] assigned by CALL at [000271] to VN: $34f.
N005 [000271] CALL => $VN.Void
***** BB07, stmt 23 (after)
N005 ( 15, 7) [000271] --CXG------- * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification $VN.Void
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use) $303
finish(BB07).
Succ(BB08).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Building phi application: $4f = SSA# 19.
Building phi application: $50 = SSA# 17.
Building phi application: $4c4 = phi($50, $4f).
The SSA definition for ByrefExposed (#21) at start of BB08 is $4c5 {PhiMemoryDef($501, $4c4)}
Building phi application: $51 = SSA# 20.
Building phi application: $52 = SSA# 18.
Building phi application: $4c6 = phi($52, $51).
The SSA definition for GcHeap (#22) at start of BB08 is $4c7 {PhiMemoryDef($501, $4c6)}
***** BB08, stmt 24 (before)
N001 ( 3, 2) [000254] ----G------- /--* LCL_VAR ref (AX) V25 tmp19
N003 ( 3, 3) [000291] -A--G---R--- * ASG ref
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3
N001 [000254] LCL_VAR V25 tmp19 => $304 {ByrefExposedLoad($43, $288, $4c5)}
N002 [000290] LCL_VAR V15 tmp9 d:3 => $304 {ByrefExposedLoad($43, $288, $4c5)}
N003 [000291] ASG => $304 {ByrefExposedLoad($43, $288, $4c5)}
***** BB08, stmt 24 (after)
N001 ( 3, 2) [000254] ----G------- /--* LCL_VAR ref (AX) V25 tmp19 $304
N003 ( 3, 3) [000291] -A--G---R--- * ASG ref $304
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3 $304
---------
***** BB08, stmt 25 (before)
N004 ( 4, 4) [000289] ---XG------- /--* IND int
N002 ( 1, 1) [000582] ------------ | | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000583] -------N---- | \--* ADD byref
N001 ( 1, 1) [000288] ------------ | \--* LCL_VAR ref V15 tmp9 u:3 (last use)
N006 ( 4, 4) [000048] -A-XG---R--- * ASG int
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3
N001 [000288] LCL_VAR V15 tmp9 u:3 (last use) => $304 {ByrefExposedLoad($43, $288, $4c5)}
N002 [000582] CNS_INT 56 field offset Fseq[m_result] => $144 {LngCns: 56}
N003 [000583] ADD => $28b {ADD($144, $304)}
VNApplySelectors:
VNForHandle(Fseq[m_result]) is $502, fieldType is int
VNForMapSelect($4c7, $502):int returns $248 {$4c7[$502]}
VNForMapSelect($248, $304):int returns $249 {$248[$304]}
N004 [000289] IND => <l:$249 {$248[$304]}, c:$206 {206}>
N005 [000047] LCL_VAR V02 loc1 d:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N006 [000048] ASG => <l:$249 {$248[$304]}, c:$206 {206}>
***** BB08, stmt 25 (after)
N004 ( 4, 4) [000289] ---XG------- /--* IND int <l:$249, c:$206>
N002 ( 1, 1) [000582] ------------ | | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000583] -------N---- | \--* ADD byref $28b
N001 ( 1, 1) [000288] ------------ | \--* LCL_VAR ref V15 tmp9 u:3 (last use) $304
N006 ( 4, 4) [000048] -A-XG---R--- * ASG int <l:$249, c:$206>
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 <l:$249, c:$206>
finish(BB08).
Succ(BB09).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB17).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for ByrefExposed (#21) at start of BB09 is $4c5 {PhiMemoryDef($501, $4c4)}
The SSA definition for GcHeap (#22) at start of BB09 is $4c7 {PhiMemoryDef($501, $4c6)}
***** BB09, stmt 26 (before)
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
N001 [000051] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N003 [000052] CNS_INT -2 => $53 {IntCns -2}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000054] to VN: $351.
N004 [000054] ASG => $VN.Void
***** BB09, stmt 26 (after)
N003 ( 1, 1) [000052] ------------ /--* CNS_INT int -2 $53
N004 ( 5, 4) [000054] -A-XG------- * ASG int $VN.Void
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 $80
---------
***** BB09, stmt 27 (before)
N002 ( 1, 1) [000598] ------------ /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N003 ( 5, 4) [000599] ------------ /--* ADD byref
N001 ( 3, 2) [000597] ------------ | \--* LCL_VAR byref V00 this u:2 (last use)
N005 ( 5, 4) [000317] -A--G---R--- * ASG byref
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3
N001 [000597] LCL_VAR V00 this u:2 (last use) => $80 {InitVal($40)}
N002 [000598] CNS_INT 8 field offset Fseq[<>t__builder] => $142 {LngCns: 8}
N003 [000599] ADD => $28c {ADD($80, $142)}
N004 [000316] LCL_VAR V16 tmp10 d:3 => $28c {ADD($80, $142)}
N005 [000317] ASG => $28c {ADD($80, $142)}
***** BB09, stmt 27 (after)
N002 ( 1, 1) [000598] ------------ /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) [000599] ------------ /--* ADD byref $28c
N001 ( 3, 2) [000597] ------------ | \--* LCL_VAR byref V00 this u:2 (last use) $80
N005 ( 5, 4) [000317] -A--G---R--- * ASG byref $28c
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3 $28c
---------
***** BB09, stmt 28 (before)
N005 ( 7, 6) [000299] ---XG------- * JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int
N002 ( 3, 2) [000296] *--XG------- \--* IND ref
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3
N001 [000295] LCL_VAR V16 tmp10 u:3 => $28c {ADD($80, $142)}
N002 [000296] IND => <l:$305 {ByrefExposedLoad($43, $28c, $cf)}, c:$352 {352}>
N003 [000297] CNS_INT null => $VN.Null
N004 [000298] NE => <l:$24b {NE($305, $0)}, c:$24a {NE($352, $0)}>
***** BB09, stmt 28 (after)
N005 ( 7, 6) [000299] ---XG------- * JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null $VN.Null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int <l:$24b, c:$24a>
N002 ( 3, 2) [000296] *--XG------- \--* IND ref <l:$305, c:$352>
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3 $28c
finish(BB09).
Succ(BB10).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB15).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#23) at start of BB15 is $cf {cf}
The SSA definition for GcHeap (#24) at start of BB15 is $351 {351}
***** BB15, stmt 41 (before)
N008 ( 16, 10) [000303] --CXG------- * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use)
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use)
N001 [000631] ARGPLACE => $2c6 {2c6}
N002 [000633] ARGPLACE => $208 {208}
N003 [000304] LIST => $542 {LIST($208, $0)}
N004 [000302] LCL_VAR V16 tmp10 u:3 (last use) => $28c {ADD($80, $142)}
N005 [000059] LCL_VAR V02 loc1 u:3 (last use) => <l:$249 {$248[$304]}, c:$206 {206}>
N006 [000634] LIST => <l:$544 {LIST($249, $0)}, c:$543 {LIST($206, $0)}>
N007 [000632] LIST => <l:$546 {LIST($28c, $544)}, c:$545 {LIST($28c, $543)}>
VN of ARGPLACE tree [000633] updated to $28c {ADD($80, $142)}
N003 [000304] LIST => $547 {LIST($28c, $0)}
fgCurMemoryVN[GcHeap] assigned by CALL at [000303] to VN: $353.
N008 [000303] CALL => $VN.Void
***** BB15, stmt 41 (after)
N008 ( 16, 10) [000303] --CXG------- * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult $VN.Void
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
finish(BB15).
Succ(BB16).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#23) at start of BB10 is $cf {cf}
The SSA definition for GcHeap (#24) at start of BB10 is $351 {351}
***** BB10, stmt 29 (before)
N001 ( 1, 1) [000308] ------------ /--* LCL_VAR int V02 loc1 u:3
N003 ( 1, 3) [000368] -A------R--- * ASG int
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3
N001 [000308] LCL_VAR V02 loc1 u:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N002 [000367] LCL_VAR V20 tmp14 d:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N003 [000368] ASG => <l:$249 {$248[$304]}, c:$206 {206}>
***** BB10, stmt 29 (after)
N001 ( 1, 1) [000308] ------------ /--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
N003 ( 1, 3) [000368] -A------R--- * ASG int <l:$249, c:$206>
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3 <l:$249, c:$206>
---------
***** BB10, stmt 30 (before)
N004 ( 5, 5) [000373] ------------ * JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9
N003 ( 3, 3) [000372] J------N---- \--* GE int
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V02 loc1 u:3
N001 [000370] LCL_VAR V02 loc1 u:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N002 [000371] CNS_INT 9 => $4b {IntCns 9}
N003 [000372] GE => <l:$24d {GE($249, $4b)}, c:$24c {GE($206, $4b)}>
***** BB10, stmt 30 (after)
N004 ( 5, 5) [000373] ------------ * JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9 $4b
N003 ( 3, 3) [000372] J------N---- \--* GE int <l:$24d, c:$24c>
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
finish(BB10).
Succ(BB11).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB13).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#23) at start of BB11 is $cf {cf}
The SSA definition for GcHeap (#24) at start of BB11 is $351 {351}
***** BB11, stmt 31 (before)
N004 ( 5, 5) [000395] ------------ * JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1
N003 ( 3, 3) [000394] J------N---- \--* LT int
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V20 tmp14 u:3
N001 [000392] LCL_VAR V20 tmp14 u:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N002 [000393] CNS_INT -1 => $41 {IntCns -1}
N003 [000394] LT => <l:$24f {LT($249, $41)}, c:$24e {LT($206, $41)}>
***** BB11, stmt 31 (after)
N004 ( 5, 5) [000395] ------------ * JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000394] J------N---- \--* LT int <l:$24f, c:$24e>
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
finish(BB11).
Succ(BB12).
Not yet completed.
All preds complete, adding to allDone.
Succ(BB13).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#23) at start of BB13 is $cf {cf}
The SSA definition for GcHeap (#24) at start of BB13 is $351 {351}
***** BB13, stmt 34 (before)
N005 ( 17, 16) [000378] --C--------- /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST
N003 ( 3, 10) [000377] ------------ arg0 in rcx | \--* CNS_INT(h) long 0x7ffc60cefbd8 token
N007 ( 17, 16) [000380] -AC-----R--- * ASG ref
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3
N001 [000636] ARGPLACE => $580 {580}
N002 [000635] LIST => $548 {LIST($580, $0)}
N003 [000377] CNS_INT(h) 0x7ffc60cefbd8 token => $503 {Hnd const: 0x00007FFC60CEFBD8}
N004 [000637] LIST => $549 {LIST($503, $0)}
VN of ARGPLACE tree [000636] updated to $503 {Hnd const: 0x00007FFC60CEFBD8}
N002 [000635] LIST => $549 {LIST($503, $0)}
N005 [000378] CALL help => $4c8 {JitNew($503, $354)}
N006 [000379] LCL_VAR V21 tmp15 d:3 => $4c8 {JitNew($503, $354)}
N007 [000380] ASG => $4c8 {JitNew($503, $354)}
***** BB13, stmt 34 (after)
N005 ( 17, 16) [000378] --C--------- /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $4c8
N003 ( 3, 10) [000377] ------------ arg0 in rcx | \--* CNS_INT(h) long 0x7ffc60cefbd8 token $503
N007 ( 17, 16) [000380] -AC-----R--- * ASG ref $4c8
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3 $4c8
---------
***** BB13, stmt 35 (before)
N001 ( 1, 1) [000456] ------------ /--* CNS_INT int 0
N003 ( 5, 4) [000458] -A------R--- * ASG int
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3
N001 [000456] CNS_INT 0 => $40 {IntCns 0}
N002 [000457] LCL_VAR V24 tmp18 d:3 => $40 {IntCns 0}
N003 [000458] ASG => $40 {IntCns 0}
***** BB13, stmt 35 (after)
N001 ( 1, 1) [000456] ------------ /--* CNS_INT int 0 $40
N003 ( 5, 4) [000458] -A------R--- * ASG int $40
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3 $40
---------
***** BB13, stmt 36 (before)
N002 ( 1, 4) [000465] ------------ /--* CNS_INT int 0x1000000
N003 ( 5, 7) [000467] ------------ /--* OR int
N001 ( 3, 2) [000466] ------------ | \--* LCL_VAR int V24 tmp18 u:3 (last use)
N008 ( 10, 12) [000469] -A-XGO--R--- * ASG int
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags]
N006 ( 2, 2) [000628] -------N---- \--* ADD byref
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3
N001 [000466] LCL_VAR V24 tmp18 u:3 (last use) => $40 {IntCns 0}
N002 [000465] CNS_INT 0x1000000 => $4e {IntCns 0x1000000}
N003 [000467] OR => $4e {IntCns 0x1000000}
N004 [000464] LCL_VAR V21 tmp15 u:3 => $4c8 {JitNew($503, $354)}
N005 [000627] CNS_INT 52 field offset Fseq[m_stateFlags] => $143 {LngCns: 52}
N006 [000628] ADD => $28d {ADD($143, $4c8)}
fgCurMemoryVN[GcHeap] assigned by GTF_IND_VOLATILE - read at [000468] to VN: $356.
N007 [000468] IND => $20b {20b}
fgCurMemoryVN[GcHeap] assigned by GTF_IND_VOLATILE - store at [000468] to VN: $357.
VNApplySelectors:
VNForHandle(Fseq[m_stateFlags]) is $504, fieldType is int
VNForMapSelect($357, $504):int returns $250 {$357[$504]}
VNForMapSelect($250, $4c8):int returns $251 {$250[$4c8]}
VNForMapStore($250, $4c8, $4e):int returns $1c1 {$250[$4c8 := $4e]}
fgCurMemoryVN assigned:
fieldHnd $504 is {Hnd const: 0x00007FFC60DA82B8}
fieldSeq $4c9 is {m_stateFlags}
VNForMapStore($357, $504, $1c1):int returns $1c2 {$357[$504 := $1c1]}
fgCurMemoryVN[GcHeap] assigned by StoreField at [000469] to VN: $1c2.
N008 [000469] ASG => $VN.Void
***** BB13, stmt 36 (after)
N002 ( 1, 4) [000465] ------------ /--* CNS_INT int 0x1000000 $4e
N003 ( 5, 7) [000467] ------------ /--* OR int $4e
N001 ( 3, 2) [000466] ------------ | \--* LCL_VAR int V24 tmp18 u:3 (last use) $40
N008 ( 10, 12) [000469] -A-XGO--R--- * ASG int $VN.Void
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int $4e
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N006 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
---------
***** BB13, stmt 37 (before)
N005 ( 1, 1) [000376] ------------ /--* LCL_VAR int V02 loc1 u:3 (last use)
N006 ( 6, 6) [000449] -A-XG------- * ASG int
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result]
N003 ( 2, 2) [000630] -------N---- \--* ADD byref
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3
N001 [000447] LCL_VAR V21 tmp15 u:3 => $4c8 {JitNew($503, $354)}
N002 [000629] CNS_INT 56 field offset Fseq[m_result] => $144 {LngCns: 56}
N003 [000630] ADD => $28e {ADD($144, $4c8)}
N005 [000376] LCL_VAR V02 loc1 u:3 (last use) => <l:$249 {$248[$304]}, c:$206 {206}>
VNApplySelectors:
VNForHandle(Fseq[m_result]) is $502, fieldType is int
AX2: $502 != $504 ==> select([$1c2]store($357, $504, $1c1), $502) ==> select($357, $502).
VNForMapSelect($1c2, $502):int returns $252 {$357[$502]}
VNForMapSelect($252, $4c8):int returns $253 {$252[$4c8]}
VNForMapStore($252, $4c8, $249):int returns $1c3 {$252[$4c8 := $249]}
fgCurMemoryVN assigned:
fieldHnd $502 is {Hnd const: 0x00007FFC60DA83E8}
fieldSeq $4ca is {m_result}
VNForMapStore($1c2, $502, $1c3):int returns $1c4 {$1c2[$502 := $1c3]}
fgCurMemoryVN[GcHeap] assigned by StoreField at [000449] to VN: $1c4.
N006 [000449] ASG => $VN.Void
***** BB13, stmt 37 (after)
N005 ( 1, 1) [000376] ------------ /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A-XG------- * ASG int $VN.Void
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
---------
***** BB13, stmt 38 (before)
N001 ( 1, 1) [000386] ------------ /--* LCL_VAR ref V21 tmp15 u:3 (last use)
N003 ( 1, 3) [000388] -A------R--- * ASG ref
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4
N001 [000386] LCL_VAR V21 tmp15 u:3 (last use) => $4c8 {JitNew($503, $354)}
N002 [000387] LCL_VAR V17 tmp11 d:4 => $4c8 {JitNew($503, $354)}
N003 [000388] ASG => $4c8 {JitNew($503, $354)}
***** BB13, stmt 38 (after)
N001 ( 1, 1) [000386] ------------ /--* LCL_VAR ref V21 tmp15 u:3 (last use) $4c8
N003 ( 1, 3) [000388] -A------R--- * ASG ref $4c8
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4 $4c8
finish(BB13).
Succ(BB14).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Was necessary.
The SSA definition for ByrefExposed (#23) at start of BB12 is $cf {cf}
The SSA definition for GcHeap (#24) at start of BB12 is $351 {351}
***** BB12, stmt 32 (before)
N031 ( 8, 9) [000409] a---G------- /--* IND ref
N029 ( 1, 1) [000615] ------------ | | /--* CNS_INT long 16 Fseq[#FirstElem]
N030 ( 7, 8) [000616] -------N---- | \--* ADD byref
N026 ( 1, 1) [000612] -------N---- | | /--* CNS_INT long 3
N027 ( 5, 6) [000613] -------N---- | | /--* LSH long
N025 ( 4, 5) [000611] ------------ | | | \--* CAST long <- int
N023 ( 1, 1) [000608] ------------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex]
N024 ( 3, 3) [000606] ------------ | | | \--* ADD int
N022 ( 1, 1) [000607] i----------- | | | \--* LCL_VAR int V20 tmp14 u:3 (last use)
N028 ( 6, 7) [000614] -------N---- | \--* ADD byref
N021 ( 1, 1) [000605] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 (last use)
N032 ( 18, 22) [000617] ---XG------- /--* COMMA ref
N020 ( 10, 13) [000610] ---X-------- | \--* ARR_BOUNDS_CHECK_Rng void
N016 ( 1, 1) [000407] ------------ | | /--* CNS_INT int 1
N017 ( 3, 3) [000408] ------------ | +--* ADD int
N015 ( 1, 1) [000406] ------------ | | \--* LCL_VAR int V20 tmp14 u:3
N019 ( 3, 3) [000609] ---X-------- | \--* ARR_LENGTH int
N018 ( 1, 1) [000604] ------------ | \--* LCL_VAR ref V34 tmp28 u:3
N033 ( 41, 55) [000618] -ACXG------- /--* COMMA ref
N011 ( 5, 12) [000398] x---G------- | | /--* IND ref
N010 ( 3, 10) [000623] ------------ | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks]
N012 ( 23, 33) [000405] --CXG------- | | /--* COMMA ref
N009 ( 18, 21) [000404] H-CXG------- | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | \--* CNS_INT int 0x70A
N014 ( 23, 33) [000603] -ACXG---R--- | \--* ASG ref
N013 ( 1, 1) [000602] D------N---- | \--* LCL_VAR ref V34 tmp28 d:3
N035 ( 41, 55) [000411] -ACXG---R--- * ASG ref
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3
N001 [000619] ARGPLACE => $581 {581}
N002 [000621] ARGPLACE => $20d {20d}
N003 [000402] LIST => $54a {LIST($20d, $0)}
N004 [000403] LIST => $54b {LIST($581, $54a)}
N005 [000400] CNS_INT 0x7ffc0d5c3020 => $145 {LngCns: 0x7ffc0d5c3020}
N006 [000401] CNS_INT 0x70A => $54 {IntCns 0x70A}
N007 [000622] LIST => $54c {LIST($54, $0)}
N008 [000620] LIST => $54d {LIST($145, $54c)}
VN of ARGPLACE tree [000619] updated to $145 {LngCns: 0x7ffc0d5c3020}
VN of ARGPLACE tree [000621] updated to $54 {IntCns 0x70A}
N003 [000402] LIST => $54c {LIST($54, $0)}
N004 [000403] LIST => $54d {LIST($145, $54c)}
$4cb = singleton exc set {HelperMultipleExc()}
$4cb = singleton exc set {HelperMultipleExc()}
N009 [000404] CALL help => $601 {ValWithExc($600, $4cb)}
N010 [000623] CNS_INT(h) 0x1bb355326b8 static Fseq[Int32Tasks] => $505 {Hnd const: 0x000001BB355326B8}
N011 [000398] IND => <l:$306 {ByrefExposedLoad($43, $505, $cf)}, c:$359 {359}>
N012 [000405] COMMA => <l:$4cd {ValWithExc($306, $4cb)}, c:$4cc {ValWithExc($359, $4cb)}>
N013 [000602] LCL_VAR V34 tmp28 d:3 => <l:$306 {ByrefExposedLoad($43, $505, $cf)}, c:$359 {359}>
N014 [000603] ASG => <l:$4cd {ValWithExc($306, $4cb)}, c:$4cc {ValWithExc($359, $4cb)}>
N015 [000406] LCL_VAR V20 tmp14 u:3 => <l:$249 {$248[$304]}, c:$206 {206}>
N016 [000407] CNS_INT 1 => $55 {IntCns 1}
N017 [000408] ADD => <l:$255 {ADD($55, $249)}, c:$254 {ADD($55, $206)}>
N018 [000604] LCL_VAR V34 tmp28 u:3 => <l:$306 {ByrefExposedLoad($43, $505, $cf)}, c:$359 {359}>
N019 [000609] ARR_LENGTH => <l:$641 {ARR_LENGTH($306)}, c:$640 {ARR_LENGTH($359)}>
$4d0 = singleton exc set {IndexOutOfRangeExc($254, $640)}
$4d1 = singleton exc set {IndexOutOfRangeExc($255, $641)}
N020 [000610] ARR_BOUNDS_CHECK_Rng => <l:$4d3 {ValWithExc($3, $4d1)}, c:$4d2 {ValWithExc($3, $4d0)}>
N021 [000605] LCL_VAR V34 tmp28 u:3 (last use) => <l:$306 {ByrefExposedLoad($43, $505, $cf)}, c:$359 {359}>
N022 [000607] LCL_VAR V20 tmp14 u:3 (last use) => <l:$249 {$248[$304]}, c:$206 {206}>
N023 [000608] CNS_INT 1 Fseq[#ConstantIndex] => $55 {IntCns 1}
N024 [000606] ADD => <l:$255 {ADD($55, $249)}, c:$254 {ADD($55, $206)}>
VNForCastOper(long) is $52
N025 [000611] CAST => <l:$603 {Cast($255, $52)}, c:$602 {Cast($254, $52)}>
N026 [000612] CNS_INT 3 => $146 {LngCns: 3}
N027 [000613] LSH => <l:$605 {LSH($603, $146)}, c:$604 {LSH($602, $146)}>
N028 [000614] ADD => <l:$290 {ADD($306, $605)}, c:$28f {ADD($359, $604)}>
N029 [000615] CNS_INT 16 Fseq[#FirstElem] => $141 {LngCns: 16}
N030 [000616] ADD => <l:$292 {ADD($141, $290)}, c:$291 {ADD($141, $28f)}>
Relabeled IND_ARR_INDEX address node [000616] with l:$680: {PtrToArrElem($506, $306, $603, $0)}
VNForMapSelect($351, $506):ref returns $4d4 {$351[$506]}
VNForMapSelect($4d4, $306):ref returns $4d5 {$4d4[$306]}
VNForMapSelect($4d5, $603):ref returns $4d6 {$4d5[$603]}
hAtArrType $4d4 is MapSelect(curGcHeap($351), ref[]).
hAtArrTypeAtArr $4d5 is MapSelect(hAtArrType($4d4), arr=$306).
wholeElem $4d6 is MapSelect(hAtArrTypeAtArr($4d5), ind=$603).
N031 [000409] IND => <l:$4d6 {$4d5[$603]}, c:$35b {35b}>
N032 [000617] COMMA => <l:$4d8 {ValWithExc($4d6, $4d1)}, c:$4d7 {ValWithExc($35b, $4d0)}>
N033 [000618] COMMA => <l:$4dc {ValWithExc($4d6, $4da)}, c:$4db {ValWithExc($35b, $4d9)}>
N034 [000410] LCL_VAR V22 tmp16 d:3 => <l:$4d6 {$4d5[$603]}, c:$35b {35b}>
N035 [000411] ASG => <l:$4dc {ValWithExc($4d6, $4da)}, c:$4db {ValWithExc($35b, $4d9)}>
***** BB12, stmt 32 (after)
N031 ( 8, 9) [000409] a---G------- /--* IND ref <l:$4d6, c:$35b>
N029 ( 1, 1) [000615] ------------ | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N030 ( 7, 8) [000616] -------N---- | \--* ADD byref $680
N026 ( 1, 1) [000612] -------N---- | | /--* CNS_INT long 3 $146
N027 ( 5, 6) [000613] -------N---- | | /--* LSH long <l:$605, c:$604>
N025 ( 4, 5) [000611] ------------ | | | \--* CAST long <- int <l:$603, c:$602>
N023 ( 1, 1) [000608] ------------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] $55
N024 ( 3, 3) [000606] ------------ | | | \--* ADD int <l:$255, c:$254>
N022 ( 1, 1) [000607] i----------- | | | \--* LCL_VAR int V20 tmp14 u:3 (last use) <l:$249, c:$206>
N028 ( 6, 7) [000614] -------N---- | \--* ADD byref <l:$290, c:$28f>
N021 ( 1, 1) [000605] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N032 ( 18, 22) [000617] ---XG------- /--* COMMA ref <l:$4d8, c:$4d7>
N020 ( 10, 13) [000610] ---X-------- | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N016 ( 1, 1) [000407] ------------ | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | +--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000609] ---X-------- | \--* ARR_LENGTH int <l:$641, c:$640>
N018 ( 1, 1) [000604] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N033 ( 41, 55) [000618] -ACXG------- /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N035 ( 41, 55) [000411] -ACXG---R--- * ASG ref <l:$4dc, c:$4db>
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
---------
***** BB12, stmt 33 (before)
N001 ( 1, 1) [000413] ------------ /--* LCL_VAR ref V22 tmp16 u:3 (last use)
N003 ( 1, 3) [000421] -A------R--- * ASG ref
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3
N001 [000413] LCL_VAR V22 tmp16 u:3 (last use) => <l:$4d6 {$4d5[$603]}, c:$35b {35b}>
N002 [000420] LCL_VAR V17 tmp11 d:3 => <l:$4d6 {$4d5[$603]}, c:$35b {35b}>
N003 [000421] ASG => <l:$4d6 {$4d5[$603]}, c:$35b {35b}>
***** BB12, stmt 33 (after)
N001 ( 1, 1) [000413] ------------ /--* LCL_VAR ref V22 tmp16 u:3 (last use) <l:$4d6, c:$35b>
N003 ( 1, 3) [000421] -A------R--- * ASG ref <l:$4d6, c:$35b>
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3 <l:$4d6, c:$35b>
finish(BB12).
Succ(BB14).
Not yet completed.
All preds complete, adding to allDone.
SSA definition: set VN of local 17/5 to $307 {PhiDef($11, $5, $4dd)}.
Building phi application: $57 = SSA# 29.
Building phi application: $58 = SSA# 27.
Building phi application: $4de = phi($58, $57).
The SSA definition for ByrefExposed (#31) at start of BB14 is $4df {PhiMemoryDef($507, $4de)}
Building phi application: $59 = SSA# 30.
Building phi application: $5a = SSA# 28.
Building phi application: $4e0 = phi($5a, $59).
The SSA definition for GcHeap (#32) at start of BB14 is $4e1 {PhiMemoryDef($507, $4e0)}
***** BB14, stmt 39 (before)
N003 ( 1, 1) [000423] ------------ /--* LCL_VAR ref V17 tmp11 u:5 (last use)
N004 ( 5, 4) [000314] -A-XG------- * ASG ref
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use)
N001 [000307] LCL_VAR V16 tmp10 u:3 (last use) => $28c {ADD($80, $142)}
N003 [000423] LCL_VAR V17 tmp11 u:5 (last use) => $307 {PhiDef($11, $5, $4dd)}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000314] to VN: $35e.
N004 [000314] ASG => $VN.Void
***** BB14, stmt 39 (after)
N003 ( 1, 1) [000423] ------------ /--* LCL_VAR ref V17 tmp11 u:5 (last use) $307
N004 ( 5, 4) [000314] -A-XG------- * ASG ref $VN.Void
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref $307
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
finish(BB14).
Succ(BB16).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
The SSA definition for ByrefExposed (#11) at start of BB04 is $cc {cc}
The SSA definition for GcHeap (#12) at start of BB04 is $34b {34b}
***** BB04, stmt 15 (before)
N003 ( 1, 1) [000099] ------------ /--* CNS_INT int 0
N004 ( 5, 4) [000105] -A-XG------- * ASG int
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2
N001 [000098] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N003 [000099] CNS_INT 0 => $40 {IntCns 0}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000105] to VN: $35f.
N004 [000105] ASG => $VN.Void
***** BB04, stmt 15 (after)
N003 ( 1, 1) [000099] ------------ /--* CNS_INT int 0 $40
N004 ( 5, 4) [000105] -A-XG------- * ASG int $VN.Void
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int $40
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2 $80
---------
***** BB04, stmt 16 (before)
N017 ( 4, 3) [000539] ----G--N---- /--* LCL_VAR bool (AX) V26 tmp20
N018 ( 10, 9) [000540] -A-XG------- /--* ASG bool
N016 ( 5, 5) [000538] *--X---N---- | \--* IND bool
N014 ( 1, 1) [000536] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext]
N015 ( 2, 2) [000537] -------N---- | \--* ADD byref
N013 ( 1, 1) [000535] ------------ | \--* LCL_VAR byref V32 tmp26 u:3 (last use)
N019 ( 21, 18) [000541] -A-XG------- * COMMA void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task]
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1]
N003 ( 3, 3) [000523] ------------ | /--* ADD byref
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3
N001 [000524] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N002 [000525] CNS_INT 16 field offset Fseq[<>u__1] => $141 {LngCns: 16}
N003 [000523] ADD => $280 {ADD($80, $141)}
N004 [000526] LCL_VAR V32 tmp26 d:3 => $280 {ADD($80, $141)}
N005 [000527] ASG => $280 {ADD($80, $141)}
N006 [000528] LCL_VAR V32 tmp26 u:3 => $280 {ADD($80, $141)}
N007 [000529] CNS_INT 0 Fseq[m_task] => $140 {LngCns: 0}
N008 [000530] ADD => $281 {ADD($140, $280)}
N010 [000532] LCL_VAR V25 tmp19 => $308 {ByrefExposedLoad($43, $288, $d6)}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000533] to VN: $360.
N011 [000533] ASG => $VN.Void
N012 [000534] COMMA => $VN.Void
N013 [000535] LCL_VAR V32 tmp26 u:3 (last use) => $280 {ADD($80, $141)}
N014 [000536] CNS_INT 8 Fseq[m_continueOnCapturedContext] => $142 {LngCns: 8}
N015 [000537] ADD => $282 {ADD($142, $280)}
N017 [000539] LCL_VAR V26 tmp20 => $382 {ByrefExposedLoad($44, $293, $d7)}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000540] to VN: $361.
N018 [000540] ASG => $VN.Void
N019 [000541] COMMA => $VN.Void
***** BB04, stmt 16 (after)
N017 ( 4, 3) [000539] ----G--N---- /--* LCL_VAR bool (AX) V26 tmp20 $382
N018 ( 10, 9) [000540] -A-XG------- /--* ASG bool $VN.Void
N016 ( 5, 5) [000538] *--X---N---- | \--* IND bool $382
N014 ( 1, 1) [000536] ------------ | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000537] -------N---- | \--* ADD byref $282
N013 ( 1, 1) [000535] ------------ | \--* LCL_VAR byref V32 tmp26 u:3 (last use) $280
N019 ( 21, 18) [000541] -A-XG------- * COMMA void $VN.Void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19 $308
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref $VN.Void
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref $308
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 $280
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void $VN.Void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000523] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3 $280
---------
***** BB04, stmt 17 (before)
N018 ( 23, 18) [000120] --CXG------- * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N010 ( 3, 3) [000546] ------------ | /--* ADD byref
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2
N001 [000549] ARGPLACE => $2c8 {2c8}
N002 [000551] ARGPLACE => $582 {582}
N003 [000553] ARGPLACE => $2c9 {2c9}
N004 [000121] LIST => $54e {LIST($2c9, $0)}
N005 [000122] LIST => $54f {LIST($582, $54e)}
N006 [000542] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
$4e2 = singleton exc set {NullPtrExc($80)}
$4e2 = singleton exc set {NullPtrExc($80)}
N007 [000543] NULLCHECK => $4e3 {ValWithExc($3, $4e2)}
N008 [000544] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N009 [000545] CNS_INT 8 field offset Fseq[<>t__builder] => $142 {LngCns: 8}
N010 [000546] ADD => $28c {ADD($80, $142)}
N011 [000547] COMMA => $294 {ValWithExc($28c, $4e2)}
N012 [000117] LCL_VAR V03 loc2
ref V03.m_task (offs=0x00) -> V25 tmp19
bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 => $481 {ByrefExposedLoad($47, $295, $d8)}
N013 [000118] ADDR => $2ca {2ca}
N014 [000119] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N015 [000554] LIST => $550 {LIST($80, $0)}
N016 [000552] LIST => $551 {LIST($2ca, $550)}
N017 [000550] LIST => $553 {ValWithExc($552, $4e2)}
VN of ARGPLACE tree [000551] updated to $294 {ValWithExc($28c, $4e2)}
VN of ARGPLACE tree [000553] updated to $2ca {2ca}
N004 [000121] LIST => $554 {LIST($2ca, $0)}
N005 [000122] LIST => $556 {ValWithExc($555, $4e2)}
fgCurMemoryVN[GcHeap] assigned by CALL at [000120] to VN: $362.
N018 [000120] CALL => $VN.Void
***** BB04, stmt 17 (after)
N018 ( 23, 18) [000120] --CXG------- * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted $VN.Void
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N010 ( 3, 3) [000546] ------------ | /--* ADD byref $28c
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref $294
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte $4e3
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long $2ca
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 $481
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 $80
finish(BB04).
Succ(BB16).
Not yet completed.
Not all preds complete Adding to notallDone, if necessary...
Succ(BB17).
Not yet completed.
All preds complete, adding to allDone.
Building phi application: $5c = SSA# 21.
Building phi application: $4f = SSA# 19.
Building phi application: $4e4 = phi($4f, $5c).
Building phi application: $50 = SSA# 17.
Building phi application: $4e5 = phi($50, $4e4).
Building phi application: $43 = SSA# 13.
Building phi application: $4e6 = phi($43, $4e5).
Building phi application: $4a = SSA# 11.
Building phi application: $4e7 = phi($4a, $4e6).
Building phi application: $4b = SSA# 9.
Building phi application: $4e8 = phi($4b, $4e7).
Building phi application: $42 = SSA# 7.
Building phi application: $4e9 = phi($42, $4e8).
Building phi application: $5d = SSA# 5.
Building phi application: $4ea = phi($5d, $4e9).
Building phi application: $45 = SSA# 4.
Building phi application: $4eb = phi($45, $4ea).
Building phi application: $56 = SSA# 3.
Building phi application: $4ec = phi($56, $4eb).
Building phi application: $44 = SSA# 2.
Building phi application: $4ed = phi($44, $4ec).
The SSA definition for ByrefExposed (#35) at start of BB17 is $4ee {PhiMemoryDef($508, $4ed)}
Building phi application: $5e = SSA# 22.
Building phi application: $51 = SSA# 20.
Building phi application: $4ef = phi($51, $5e).
Building phi application: $52 = SSA# 18.
Building phi application: $4f0 = phi($52, $4ef).
Building phi application: $5f = SSA# 14.
Building phi application: $4f1 = phi($5f, $4f0).
Building phi application: $4c = SSA# 12.
Building phi application: $4f2 = phi($4c, $4f1).
Building phi application: $46 = SSA# 10.
Building phi application: $4f3 = phi($46, $4f2).
Building phi application: $60 = SSA# 8.
Building phi application: $4f4 = phi($60, $4f3).
Building phi application: $61 = SSA# 6.
Building phi application: $4f5 = phi($61, $4f4).
Building phi application: $44 = SSA# 2.
Building phi application: $4f6 = phi($44, $4f5).
The SSA definition for GcHeap (#36) at start of BB17 is $4f7 {PhiMemoryDef($508, $4f6)}
***** BB17, stmt 43 (before)
N001 ( 1, 1) [000007] -----O------ /--* CATCH_ARG ref
N003 ( 5, 4) [000126] -A---O--R--- * ASG ref
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3
N001 [000007] CATCH_ARG => $363 {363}
N002 [000125] LCL_VAR V08 tmp2 d:3 => $363 {363}
N003 [000126] ASG => $363 {363}
***** BB17, stmt 43 (after)
N001 ( 1, 1) [000007] -----O------ /--* CATCH_ARG ref $363
N003 ( 5, 4) [000126] -A---O--R--- * ASG ref $363
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3 $363
---------
***** BB17, stmt 44 (before)
N003 ( 1, 1) [000133] ------------ /--* CNS_INT int -2
N004 ( 5, 4) [000135] -A-XG------- * ASG int
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2
N001 [000132] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
N003 [000133] CNS_INT -2 => $53 {IntCns -2}
fgCurMemoryVN[GcHeap] assigned by assign-of-IND at [000135] to VN: $365.
N004 [000135] ASG => $VN.Void
***** BB17, stmt 44 (after)
N003 ( 1, 1) [000133] ------------ /--* CNS_INT int -2 $53
N004 ( 5, 4) [000135] -A-XG------- * ASG int $VN.Void
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2 $80
---------
***** BB17, stmt 45 (before)
N013 ( 22, 15) [000141] --CXG------- * CALL void AsyncTaskMethodBuilder`1.SetException
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder]
N008 ( 3, 3) [000588] ------------ | /--* ADD byref
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use)
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use)
N001 [000591] ARGPLACE => $2cb {2cb}
N002 [000593] ARGPLACE => $366 {366}
N003 [000142] LIST => $557 {LIST($366, $0)}
N004 [000584] LCL_VAR V00 this u:2 => $80 {InitVal($40)}
$4e2 = singleton exc set {NullPtrExc($80)}
$4e2 = singleton exc set {NullPtrExc($80)}
N005 [000585] NULLCHECK => $4e3 {ValWithExc($3, $4e2)}
N006 [000586] LCL_VAR V00 this u:2 (last use) => $80 {InitVal($40)}
N007 [000587] CNS_INT 8 field offset Fseq[<>t__builder] => $142 {LngCns: 8}
N008 [000588] ADD => $28c {ADD($80, $142)}
N009 [000589] COMMA => $294 {ValWithExc($28c, $4e2)}
N010 [000140] LCL_VAR V08 tmp2 u:3 (last use) => $363 {363}
N011 [000594] LIST => $558 {LIST($363, $0)}
N012 [000592] LIST => $55a {ValWithExc($559, $4e2)}
VN of ARGPLACE tree [000593] updated to $294 {ValWithExc($28c, $4e2)}
N003 [000142] LIST => $55b {ValWithExc($547, $4e2)}
fgCurMemoryVN[GcHeap] assigned by CALL at [000141] to VN: $367.
N013 [000141] CALL => $VN.Void
***** BB17, stmt 45 (after)
N013 ( 22, 15) [000141] --CXG------- * CALL void AsyncTaskMethodBuilder`1.SetException $VN.Void
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N008 ( 3, 3) [000588] ------------ | /--* ADD byref $28c
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref $294
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte $4e3
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use) $363
finish(BB17).
Succ(BB16).
Not yet completed.
All preds complete, adding to allDone.
The SSA definition for ByrefExposed (#2) at start of BB16 is $180 {InitVal($41)}
The SSA definition for GcHeap (#2) at start of BB16 is $180 {InitVal($41)}
***** BB16, stmt 42 (before)
N001 ( 0, 0) [000064] ------------ * RETURN void
N001 [000064] RETURN => $402 {402}
***** BB16, stmt 42 (after)
N001 ( 0, 0) [000064] ------------ * RETURN void $402
finish(BB16).
*************** In optVnCopyProp()
*************** In SsaBuilder::ComputeDominators(Compiler*, ...)
Copy Assertion for BB01
curSsaName stack: { }
Live vars: {V00} => {V00 V01}
Copy Assertion for BB17
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Live vars: {V00} => {V00 V08}
Live vars: {V00 V08} => {V08}
Live vars: {V08} => {}
Copy Assertion for BB16
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Copy Assertion for BB02
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Live vars: {V00 V01} => {V00}
Copy Assertion for BB06
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Live vars: {V00} => {V00 V14}
Copy Assertion for BB08
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 14-[000274]:V14 }
Live vars: {V00} => {V00 V15}
Live vars: {V00 V15} => {V00}
Live vars: {V00} => {V00 V02}
Copy Assertion for BB09
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 }
Live vars: {V00 V02} => {V02}
Live vars: {V02} => {V02 V16}
Copy Assertion for BB15
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 }
Live vars: {V02 V16} => {V02}
Live vars: {V02} => {}
Copy Assertion for BB10
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 }
Live vars: {V02 V16} => {V02 V16 V20}
VN based copy assertion for [000370] V02 @00000206 by [000367] V20 @00000206.
N001 ( 1, 1) [000370] ------------ * LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
New refCnts for V02: refCnt = 4, refCntWtd = 3.50
New refCnts for V20: refCnt = 5, refCntWtd = 3.50
copy propagated to:
N001 ( 1, 1) [000370] ------------ * LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
Copy Assertion for BB14
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 20-[000367]:V20 }
Live vars: {V16 V17} => {V17}
Live vars: {V17} => {}
Copy Assertion for BB13
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 20-[000367]:V20 }
Live vars: {V02 V16} => {V02 V16 V21}
Live vars: {V02 V16 V21} => {V02 V16 V21 V24}
Live vars: {V02 V16 V21 V24} => {V02 V16 V21}
Live vars: {V02 V16 V21} => {V16 V21}
Live vars: {V16 V21} => {V16}
Live vars: {V16} => {V16 V17}
Copy Assertion for BB11
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 20-[000367]:V20 }
VN based copy assertion for [000392] V20 @00000206 by [000047] V02 @00000206.
N001 ( 1, 1) [000392] ------------ * LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
New refCnts for V20: refCnt = 4, refCntWtd = 3
New refCnts for V02: refCnt = 5, refCntWtd = 4
copy propagated to:
N001 ( 1, 1) [000392] ------------ * LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
Copy Assertion for BB12
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 2-[000047]:V02 14-[000274]:V14 15-[000290]:V15 16-[000316]:V16 20-[000367]:V20 }
Live vars: {V16 V20} => {V16 V20 V34}
Live vars: {V16 V20 V34} => {V16 V20}
Live vars: {V16 V20} => {V16}
Live vars: {V16} => {V16 V22}
Live vars: {V16 V22} => {V16}
Live vars: {V16} => {V16 V17}
Copy Assertion for BB07
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 14-[000274]:V14 }
Live vars: {V00 V14} => {V00}
Copy Assertion for BB05
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Live vars: {V00} => {V00 V33}
Live vars: {V00 V33} => {V00}
Copy Assertion for BB03
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 }
Live vars: {V00} => {V00 V09}
Live vars: {V00 V09} => {V00}
Live vars: {V00} => {V00 V27}
Live vars: {V00 V27} => {V00 V27 V28}
Live vars: {V00 V27 V28} => {V00 V27 V28 V30}
Live vars: {V00 V27 V28 V30} => {V00 V28 V30}
Live vars: {V00 V28 V30} => {V00 V28}
Live vars: {V00 V28} => {V00}
Live vars: {V00} => {V00 V31}
Live vars: {V00 V31} => {V00}
Live vars: {V00} => {V00 V12}
Live vars: {V00 V12} => {V00}
Live vars: {V00} => {V00 V13}
Live vars: {V00 V13} => {V00}
Copy Assertion for BB04
curSsaName stack: { 0-[000001]:V00 1-[000003]:V01 27-[000196]:V27 28-[000202]:V28 30-[000483]:V30 31-[000503]:V31 9-[000165]:V09 12-[000235]:V12 13-[000226]:V13 }
Live vars: {V00} => {V00 V32}
Live vars: {V00 V32} => {V00}
*************** In optOptimizeCSEs()
Blocks/Trees at start of optOptimizeCSE phase
--------------------------------------------------------------------------------------------------------------------------------------
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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 <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
------------ BB02 [007..00A) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
------------ BB03 [00A..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void $401
N003 ( 0, 0) [000480] ------------ \--* COMMA void $401
N001 ( 0, 0) [000476] ------------ \--* NOP void $400
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use) $343
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref $343
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3 $343
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0 $40
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool $40
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3 $40
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use) $40
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool $VN.Void
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool $40
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref $284
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use) $2c1
N018 ( 17, 18) [000498] -A---------- \--* COMMA void $VN.Void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use) $343
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref $VN.Void
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref $343
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref $283
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 $2c1
N011 ( 9, 10) [000491] -A---------- \--* COMMA void $VN.Void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref $2c1
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] $440
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref $2c1
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3 $2c1
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4 $480
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy) $VN.Void
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool <l:$381, c:$3c2>
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref $287
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use) $2c3
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool <l:$381, c:$3c2>
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void <l:$381, c:$3c2>
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref <l:$301, c:$349>
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref $286
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 $2c3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref <l:$301, c:$349>
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void <l:$301, c:$349>
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref $2c3
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] $441
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref $2c3
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3 $2c3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $302
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref $302
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3 $302
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int $203
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref $289
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use) $302
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int $203
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3 $203
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0 $40
N005 ( 7, 9) [000243] N------N---- \--* NE int $243
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000 $49
N003 ( 5, 7) [000241] ------------ \--* AND int $242
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use) $203
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 $40
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int $40
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20 $382
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool $VN.Void
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool $382
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use) $280
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void $VN.Void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19 $308
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref $VN.Void
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref $308
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 $280
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void $VN.Void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000523] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3 $280
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted $VN.Void
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N010 ( 3, 3) [000546] ------------ | /--* ADD byref $28c
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref $294
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte $4e3
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long $2ca
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 $481
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 $80
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool <l:$380, c:$3c0>
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use) $280
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool <l:$380, c:$3c0>
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void <l:$380, c:$3c0>
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref <l:$300, c:$340>
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 $280
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref <l:$300, c:$340>
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void <l:$300, c:$340>
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000557] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3 $280
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 $40
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) $VN.Void
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N004 ( 3, 3) [000577] ------------ \--* ADD byref $280
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 $41
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int $41
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 $80
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $303
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref $303
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3 $303
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int $245
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000 $4d
N006 ( 6, 9) [000281] ---XGO------ \--* AND int $244
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int $205
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000579] -------N---- \--* ADD byref $28a
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3 $303
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification $VN.Void
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use) $303
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $304
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref $304
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3 $304
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int <l:$249, c:$206>
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref $28b
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use) $304
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int <l:$249, c:$206>
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 <l:$249, c:$206>
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB09, stmt 27
( 5, 4) [000318] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) [000599] ------------ | /--* ADD byref $28c
N001 ( 3, 2) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N005 ( 5, 4) [000317] -A--G---R--- \--* ASG byref $28c
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3 $28c
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null $VN.Null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int <l:$24b, c:$24a>
N002 ( 3, 2) [000296] *--XG------- \--* IND ref <l:$305, c:$352>
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3 $28c
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
N003 ( 1, 3) [000368] -A------R--- \--* ASG int <l:$249, c:$206>
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3 <l:$249, c:$206>
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9 $4b
N003 ( 3, 3) [000372] J------N---- \--* GE int <l:$24d, c:$24c>
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000394] J------N---- \--* LT int <l:$24f, c:$24e>
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 41, 55) [000412] ------------ * STMT void (IL 0x08E... ???)
N031 ( 8, 9) [000409] a---G------- | /--* IND ref <l:$4d6, c:$35b>
N029 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N030 ( 7, 8) [000616] -------N---- | | \--* ADD byref $680
N026 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3 $146
N027 ( 5, 6) [000613] -------N---- | | | /--* LSH long <l:$605, c:$604>
N025 ( 4, 5) [000611] ------------ | | | | \--* CAST long <- int <l:$603, c:$602>
N023 ( 1, 1) [000608] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] $55
N024 ( 3, 3) [000606] ------------ | | | | \--* ADD int <l:$255, c:$254>
N022 ( 1, 1) [000607] i----------- | | | | \--* LCL_VAR int V20 tmp14 u:3 (last use) <l:$249, c:$206>
N028 ( 6, 7) [000614] -------N---- | | \--* ADD byref <l:$290, c:$28f>
N021 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N032 ( 18, 22) [000617] ---XG------- | /--* COMMA ref <l:$4d8, c:$4d7>
N020 ( 10, 13) [000610] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | | +--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int <l:$641, c:$640>
N018 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N033 ( 41, 55) [000618] -ACXG------- | /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N035 ( 41, 55) [000411] -ACXG---R--- \--* ASG ref <l:$4dc, c:$4db>
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use) <l:$4d6, c:$35b>
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref <l:$4d6, c:$35b>
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3 <l:$4d6, c:$35b>
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $4c8
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token $503
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref $4c8
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3 $4c8
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000458] -A------R--- \--* ASG int $40
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3 $40
***** BB13, stmt 36
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000 $4e
N003 ( 5, 7) [000467] ------------ | /--* OR int $4e
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18 u:3 (last use) $40
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int $VN.Void
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int $4e
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N006 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int $VN.Void
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use) $4c8
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref $4c8
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4 $4c8
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3 <l:$4d6, c:$35b>
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use) $307
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref $VN.Void
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref $307
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult $VN.Void
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void $402
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref $363
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref $363
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3 $363
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException $VN.Void
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N008 ( 3, 3) [000588] ------------ | /--* ADD byref $28c
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref $294
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte $4e3
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use) $363
-------------------------------------------------------------------------------------------------------------------
*************** In optOptimizeValnumCSEs()
CSE candidate #01, vn=$280 cseMask=0000000000000001 in BB05, [cost= 3, size= 3]:
N002 ( 1, 1) [000559] ------------ /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) CSE #01 (use)[000557] ------------ * ADD byref $280
N001 ( 1, 1) [000558] ------------ \--* LCL_VAR byref V00 this u:2 $80
CSE candidate #02, vn=$28c cseMask=0000000000000002 in BB09, [cost= 5, size= 4]:
N002 ( 1, 1) [000598] ------------ /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) CSE #02 (use)[000599] ------------ * ADD byref $28c
N001 ( 3, 2) [000597] ------------ \--* LCL_VAR byref V00 this u:2 (last use) $80
CSE candidate #03, vn=$255 cseMask=0000000000000004 in BB12, [cost= 3, size= 3]:
N023 ( 1, 1) [000608] ------------ /--* CNS_INT int 1 Fseq[#ConstantIndex] $55
N024 ( 3, 3) CSE #03 (use)[000606] ------------ * ADD int <l:$255, c:$254>
N022 ( 1, 1) [000607] i----------- \--* LCL_VAR int V20 tmp14 u:3 (last use) <l:$249, c:$206>
Blocks that generate CSE def/uses
BB04 cseGen = 0000000000000003
BB05 cseGen = 0000000000000001
BB09 cseGen = 0000000000000002
BB12 cseGen = 0000000000000004
BB17 cseGen = 0000000000000002
After performing DataFlow for ValnumCSE's
BB01 cseIn = 0000000000000000 cseOut = 0000000000000000
BB02 cseIn = 0000000000000000 cseOut = 0000000000000000
BB03 cseIn = 0000000000000000 cseOut = 0000000000000000
BB04 cseIn = 0000000000000000 cseOut = 0000000000000003
BB05 cseIn = 0000000000000000 cseOut = 0000000000000001
BB06 cseIn = 0000000000000000 cseOut = 0000000000000000
BB07 cseIn = 0000000000000000 cseOut = 0000000000000000
BB08 cseIn = 0000000000000000 cseOut = 0000000000000000
BB09 cseIn = 0000000000000000 cseOut = 0000000000000002
BB10 cseIn = 0000000000000002 cseOut = 0000000000000002
BB11 cseIn = 0000000000000002 cseOut = 0000000000000002
BB12 cseIn = 0000000000000002 cseOut = 0000000000000006
BB13 cseIn = 0000000000000002 cseOut = 0000000000000002
BB14 cseIn = 0000000000000002 cseOut = 0000000000000002
BB15 cseIn = 0000000000000002 cseOut = 0000000000000002
BB16 cseIn = 0000000000000002 cseOut = 0000000000000002
BB17 cseIn = 0000000000000000 cseOut = 0000000000000002
Labeling the CSEs with Use/Def information
BB04 [000523] Def of CSE #01 [weight=1 ]
BB04 [000546] Def of CSE #02 [weight=1 ]
BB05 [000557] Def of CSE #01 [weight=1 ]
BB05 [000577] Use of CSE #01 [weight=1 ]
BB09 [000599] Def of CSE #02 [weight=1 ]
BB12 [000408] Def of CSE #03 [weight=1 ]
BB12 [000606] Use of CSE #03 [weight=1 ]
BB17 [000588] Def of CSE #02 [weight=0 ]
************ Trees at start of optValnumCSE_Heuristic()
------------ BB01 [000..007), preds={} succs={BB02}
***** BB01, stmt 1
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006)
N002 ( 3, 2) [000002] *--XG------- | /--* IND int <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
------------ BB02 [007..00A) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
------------ BB03 [00A..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void $401
N003 ( 0, 0) [000480] ------------ \--* COMMA void $401
N001 ( 0, 0) [000476] ------------ \--* NOP void $400
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use) $343
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref $343
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3 $343
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0 $40
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool $40
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3 $40
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use) $40
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool $VN.Void
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool $40
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref $284
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use) $2c1
N018 ( 17, 18) [000498] -A---------- \--* COMMA void $VN.Void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use) $343
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref $VN.Void
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref $343
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref $283
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 $2c1
N011 ( 9, 10) [000491] -A---------- \--* COMMA void $VN.Void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref $2c1
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] $440
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref $2c1
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3 $2c1
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4 $480
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy) $VN.Void
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool <l:$381, c:$3c2>
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref $287
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use) $2c3
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool <l:$381, c:$3c2>
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void <l:$381, c:$3c2>
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref <l:$301, c:$349>
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref $286
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 $2c3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref <l:$301, c:$349>
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void <l:$301, c:$349>
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref $2c3
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] $441
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref $2c3
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3 $2c3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $302
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref $302
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3 $302
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int $203
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref $289
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use) $302
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int $203
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3 $203
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0 $40
N005 ( 7, 9) [000243] N------N---- \--* NE int $243
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000 $49
N003 ( 5, 7) [000241] ------------ \--* AND int $242
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use) $203
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 $40
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int $40
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20 $382
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool $VN.Void
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool $382
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use) $280
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void $VN.Void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19 $308
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref $VN.Void
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref $308
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 $280
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void $VN.Void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) CSE #01 (def)[000523] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3 $280
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted $VN.Void
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N010 ( 3, 3) CSE #02 (def)[000546] ------------ | /--* ADD byref $28c
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref $294
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte $4e3
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long $2ca
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 $481
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 $80
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool <l:$380, c:$3c0>
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use) $280
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool <l:$380, c:$3c0>
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void <l:$380, c:$3c0>
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref <l:$300, c:$340>
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 $280
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref <l:$300, c:$340>
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void <l:$300, c:$340>
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) CSE #01 (def)[000557] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3 $280
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 $40
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) $VN.Void
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N004 ( 3, 3) CSE #01 (use)[000577] ------------ \--* ADD byref $280
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 $41
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int $41
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 $80
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $303
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref $303
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3 $303
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int $245
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000 $4d
N006 ( 6, 9) [000281] ---XGO------ \--* AND int $244
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int $205
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000579] -------N---- \--* ADD byref $28a
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3 $303
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification $VN.Void
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use) $303
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $304
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref $304
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3 $304
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int <l:$249, c:$206>
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref $28b
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use) $304
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int <l:$249, c:$206>
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 <l:$249, c:$206>
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB09, stmt 27
( 5, 4) [000318] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) CSE #02 (def)[000599] ------------ | /--* ADD byref $28c
N001 ( 3, 2) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N005 ( 5, 4) [000317] -A--G---R--- \--* ASG byref $28c
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3 $28c
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null $VN.Null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int <l:$24b, c:$24a>
N002 ( 3, 2) [000296] *--XG------- \--* IND ref <l:$305, c:$352>
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3 $28c
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
N003 ( 1, 3) [000368] -A------R--- \--* ASG int <l:$249, c:$206>
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3 <l:$249, c:$206>
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9 $4b
N003 ( 3, 3) [000372] J------N---- \--* GE int <l:$24d, c:$24c>
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000394] J------N---- \--* LT int <l:$24f, c:$24e>
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 41, 55) [000412] ------------ * STMT void (IL 0x08E... ???)
N031 ( 8, 9) [000409] a---G------- | /--* IND ref <l:$4d6, c:$35b>
N029 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N030 ( 7, 8) [000616] -------N---- | | \--* ADD byref $680
N026 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3 $146
N027 ( 5, 6) [000613] -------N---- | | | /--* LSH long <l:$605, c:$604>
N025 ( 4, 5) [000611] ------------ | | | | \--* CAST long <- int <l:$603, c:$602>
N023 ( 1, 1) [000608] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] $55
N024 ( 3, 3) CSE #03 (use)[000606] ------------ | | | | \--* ADD int <l:$255, c:$254>
N022 ( 1, 1) [000607] i----------- | | | | \--* LCL_VAR int V20 tmp14 u:3 (last use) <l:$249, c:$206>
N028 ( 6, 7) [000614] -------N---- | | \--* ADD byref <l:$290, c:$28f>
N021 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N032 ( 18, 22) [000617] ---XG------- | /--* COMMA ref <l:$4d8, c:$4d7>
N020 ( 10, 13) [000610] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) CSE #03 (def)[000408] ------------ | | +--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int <l:$641, c:$640>
N018 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N033 ( 41, 55) [000618] -ACXG------- | /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N035 ( 41, 55) [000411] -ACXG---R--- \--* ASG ref <l:$4dc, c:$4db>
N034 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use) <l:$4d6, c:$35b>
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref <l:$4d6, c:$35b>
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3 <l:$4d6, c:$35b>
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $4c8
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token $503
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref $4c8
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3 $4c8
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000458] -A------R--- \--* ASG int $40
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3 $40
***** BB13, stmt 36
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000 $4e
N003 ( 5, 7) [000467] ------------ | /--* OR int $4e
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18 u:3 (last use) $40
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int $VN.Void
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int $4e
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N006 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int $VN.Void
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use) $4c8
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref $4c8
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4 $4c8
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3 <l:$4d6, c:$35b>
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use) $307
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref $VN.Void
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref $307
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult $VN.Void
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void $402
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref $363
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref $363
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3 $363
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException $VN.Void
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N008 ( 3, 3) CSE #02 (def)[000588] ------------ | /--* ADD byref $28c
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref $294
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte $4e3
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use) $363
-------------------------------------------------------------------------------------------------------------------
Aggressive CSE Promotion cutoff is 700
Moderate CSE Promotion cutoff is 150
Framesize estimate is 0x004C
We have a small frame
Sorted CSE candidates:
CSE #03,cseMask=0000000000000004,useCnt=1: [def=100, use=100] :: N017 ( 3, 3) CSE #03 (def)[000408] ------------ * ADD int <l:$255, c:$254>
CSE #01,cseMask=0000000000000001,useCnt=1: [def=200, use=100] :: N003 ( 3, 3) CSE #01 (def)[000523] ------------ * ADD byref $280
CSE #02,cseMask=0000000000000002,useCnt=0: [def=200, use= 0] :: N010 ( 3, 3) CSE #02 (def)[000546] ------------ * ADD byref $28c
Considering CSE #03 [def=100, use=100, cost= 3] CSE Expression:
N016 ( 1, 1) [000407] ------------ /--* CNS_INT int 1 $55
N017 ( 3, 3) CSE #03 (def)[000408] ------------ * ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
Moderate CSE Promotion (CSE never live at call) (300 >= 150)
cseRefCnt=300, aggressiveRefCnt=700, moderateRefCnt=150
defCnt=100, useCnt=100, cost=3, size=3
def_cost=2, use_cost=1, extra_no_cost=4, extra_yes_cost=0
CSE cost savings check (304 >= 300) passes
Promoting CSE:
lvaGrabTemp returning 37 (V37 rat0) (a long lifetime temp) called for ValNumCSE.
CSE #03 def at [000408] replaced in BB12 with def of V37
New refCnts for V37: refCnt = 1, refCntWtd = 1
New refCnts for V37: refCnt = 2, refCntWtd = 2
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
fgArgTabEntry[arg 0 400.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 401.CNS_INT, 1 reg: rdx, align=1, lateArgInx=1, processed]
New refCnts for V22: refCnt = 3, refCntWtd = 3
New refCnts for V34: refCnt = 4, refCntWtd = 8
New refCnts for V37: refCnt = 3, refCntWtd = 3
New refCnts for V20: refCnt = 5, refCntWtd = 4
New refCnts for V37: refCnt = 4, refCntWtd = 4
New refCnts for V34: refCnt = 5, refCntWtd = 10
New refCnts for V34: refCnt = 6, refCntWtd = 12
New refCnts for V20: refCnt = 6, refCntWtd = 5
optValnumCSE morphed tree:
N035 ( 8, 9) [000409] a---G------- /--* IND ref <l:$4d6, c:$35b>
N033 ( 1, 1) [000615] ------------ | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N034 ( 7, 8) [000616] -------N---- | \--* ADD byref $680
N030 ( 1, 1) [000612] -------N---- | | /--* CNS_INT long 3 $146
N031 ( 5, 6) [000613] -------N---- | | /--* LSH long <l:$605, c:$604>
N029 ( 4, 5) [000611] ------------ | | | \--* CAST long <- int <l:$603, c:$602>
N027 ( 1, 1) [000608] ------------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] $55
N028 ( 3, 3) CSE #03 (use)[000606] ------------ | | | \--* ADD int <l:$255, c:$254>
N026 ( 1, 1) [000607] i----------- | | | \--* LCL_VAR int V20 tmp14 u:3 (last use) <l:$249, c:$206>
N032 ( 6, 7) [000614] -------N---- | \--* ADD byref <l:$290, c:$28f>
N025 ( 1, 1) [000605] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N036 ( 19, 23) [000617] -A-XG------- /--* COMMA ref <l:$4d8, c:$4d7>
N024 ( 11, 14) [000610] -A-X-------- | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N020 ( 1, 1) [000652] ------------ | | /--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N021 ( 4, 4) [000653] -A---------- | +--* COMMA int <l:$255, c:$254>
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | | | /--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000651] -A------R--- | | \--* ASG int $VN.Void
N018 ( 1, 1) [000650] D------N---- | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N023 ( 3, 3) [000609] ---X-------- | \--* ARR_LENGTH int <l:$641, c:$640>
N022 ( 1, 1) [000604] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N037 ( 42, 56) [000618] -ACXG------- /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N039 ( 42, 56) [000411] -ACXG---R--- * ASG ref <l:$4dc, c:$4db>
N038 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
Working on the replacement of the CSE #03 use at [000606] in BB12
New refCnts for V20: refCnt = 5, refCntWtd = 4
CSE #00 use at [000606] replaced in BB12 with temp use.
New refCnts for V37: refCnt = 5, refCntWtd = 5
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32
fgArgTabEntry[arg 0 400.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed]
fgArgTabEntry[arg 1 401.CNS_INT, 1 reg: rdx, align=1, lateArgInx=1, processed]
New refCnts for V22: refCnt = 4, refCntWtd = 4
New refCnts for V34: refCnt = 7, refCntWtd = 14
New refCnts for V37: refCnt = 6, refCntWtd = 6
New refCnts for V20: refCnt = 6, refCntWtd = 5
New refCnts for V37: refCnt = 7, refCntWtd = 7
New refCnts for V34: refCnt = 8, refCntWtd = 16
New refCnts for V34: refCnt = 9, refCntWtd = 18
New refCnts for V37: refCnt = 8, refCntWtd = 8
optValnumCSE morphed tree:
N033 ( 6, 7) [000409] a---G------- /--* IND ref <l:$4d6, c:$35b>
N031 ( 1, 1) [000615] ------------ | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N032 ( 5, 6) [000616] -------N---- | \--* ADD byref $680
N028 ( 1, 1) [000612] -------N---- | | /--* CNS_INT long 3 $146
N029 ( 3, 4) [000613] -------N---- | | /--* LSH long <l:$605, c:$604>
N027 ( 2, 3) [000611] ------------ | | | \--* CAST long <- int <l:$603, c:$602>
N026 ( 1, 1) [000654] ------------ | | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N030 ( 4, 5) [000614] -------N---- | \--* ADD byref <l:$290, c:$28f>
N025 ( 1, 1) [000605] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N034 ( 17, 21) [000617] -A-XG------- /--* COMMA ref <l:$4d8, c:$4d7>
N024 ( 11, 14) [000610] -A-X-------- | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N020 ( 1, 1) [000652] ------------ | | /--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N021 ( 4, 4) [000653] -A---------- | +--* COMMA int <l:$255, c:$254>
N016 ( 1, 1) [000407] ------------ | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | | | /--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000651] -A------R--- | | \--* ASG int $VN.Void
N018 ( 1, 1) [000650] D------N---- | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N023 ( 3, 3) [000609] ---X-------- | \--* ARR_LENGTH int <l:$641, c:$640>
N022 ( 1, 1) [000604] ------------ | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N035 ( 40, 54) [000618] -ACXG------- /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N037 ( 40, 54) [000411] -ACXG---R--- * ASG ref <l:$4dc, c:$4db>
N036 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
Considering CSE #01 [def=200, use=100, cost= 3] CSE Expression:
N002 ( 1, 1) [000525] ------------ /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) CSE #01 (def)[000523] ------------ * ADD byref $280
N001 ( 1, 1) [000524] ------------ \--* LCL_VAR byref V00 this u:2 $80
Moderate CSE Promotion (CSE never live at call) (500 >= 150)
cseRefCnt=500, aggressiveRefCnt=700, moderateRefCnt=150
defCnt=200, useCnt=100, cost=3, size=3
def_cost=2, use_cost=1, extra_no_cost=4, extra_yes_cost=0
CSE cost savings check (304 >= 500) fails
Did Not promote this CSE
Skipped CSE #02 because use count is 0
*************** In optAssertionPropMain()
Blocks/Trees at start of phase
--------------------------------------------------------------------------------------------------------------------------------------
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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 <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
------------ BB02 [007..00A) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
------------ BB03 [00A..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void $401
N003 ( 0, 0) [000480] ------------ \--* COMMA void $401
N001 ( 0, 0) [000476] ------------ \--* NOP void $400
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use) $343
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref $343
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3 $343
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0 $40
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool $40
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3 $40
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use) $40
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool $VN.Void
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool $40
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref $284
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use) $2c1
N018 ( 17, 18) [000498] -A---------- \--* COMMA void $VN.Void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use) $343
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref $VN.Void
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref $343
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref $283
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 $2c1
N011 ( 9, 10) [000491] -A---------- \--* COMMA void $VN.Void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref $2c1
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] $440
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref $2c1
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3 $2c1
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4 $480
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy) $VN.Void
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool <l:$381, c:$3c2>
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref $287
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use) $2c3
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool <l:$381, c:$3c2>
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void <l:$381, c:$3c2>
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref <l:$301, c:$349>
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref $286
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 $2c3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref <l:$301, c:$349>
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void <l:$301, c:$349>
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref $2c3
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] $441
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref $2c3
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3 $2c3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $302
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref $302
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3 $302
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int $203
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref $289
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use) $302
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int $203
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3 $203
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0 $40
N005 ( 7, 9) [000243] N------N---- \--* NE int $243
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000 $49
N003 ( 5, 7) [000241] ------------ \--* AND int $242
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use) $203
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 $40
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int $40
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20 $382
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool $VN.Void
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool $382
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use) $280
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void $VN.Void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19 $308
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref $VN.Void
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref $308
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 $280
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void $VN.Void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000523] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3 $280
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted $VN.Void
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N010 ( 3, 3) [000546] ------------ | /--* ADD byref $28c
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref $294
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte $4e3
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long $2ca
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 $481
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 $80
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool <l:$380, c:$3c0>
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use) $280
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool <l:$380, c:$3c0>
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void <l:$380, c:$3c0>
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref <l:$300, c:$340>
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 $280
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref <l:$300, c:$340>
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void <l:$300, c:$340>
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000557] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3 $280
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 $40
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) $VN.Void
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N004 ( 3, 3) [000577] ------------ \--* ADD byref $280
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 $41
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int $41
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 $80
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $303
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref $303
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3 $303
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int $245
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000 $4d
N006 ( 6, 9) [000281] ---XGO------ \--* AND int $244
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int $205
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000579] -------N---- \--* ADD byref $28a
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3 $303
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification $VN.Void
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use) $303
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $304
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref $304
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3 $304
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int <l:$249, c:$206>
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref $28b
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use) $304
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int <l:$249, c:$206>
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 <l:$249, c:$206>
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB09, stmt 27
( 5, 4) [000318] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) [000599] ------------ | /--* ADD byref $28c
N001 ( 3, 2) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N005 ( 5, 4) [000317] -A--G---R--- \--* ASG byref $28c
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3 $28c
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null $VN.Null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int <l:$24b, c:$24a>
N002 ( 3, 2) [000296] *--XG------- \--* IND ref <l:$305, c:$352>
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3 $28c
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
N003 ( 1, 3) [000368] -A------R--- \--* ASG int <l:$249, c:$206>
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3 <l:$249, c:$206>
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9 $4b
N003 ( 3, 3) [000372] J------N---- \--* GE int <l:$24d, c:$24c>
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000394] J------N---- \--* LT int <l:$24f, c:$24e>
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 40, 54) [000412] ------------ * STMT void (IL 0x08E... ???)
N033 ( 6, 7) [000409] a---G------- | /--* IND ref <l:$4d6, c:$35b>
N031 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N032 ( 5, 6) [000616] -------N---- | | \--* ADD byref $680
N028 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3 $146
N029 ( 3, 4) [000613] -------N---- | | | /--* LSH long <l:$605, c:$604>
N027 ( 2, 3) [000611] ------------ | | | | \--* CAST long <- int <l:$603, c:$602>
N026 ( 1, 1) [000654] ------------ | | | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N030 ( 4, 5) [000614] -------N---- | | \--* ADD byref <l:$290, c:$28f>
N025 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N034 ( 17, 21) [000617] -A-XG------- | /--* COMMA ref <l:$4d8, c:$4d7>
N024 ( 11, 14) [000610] -A-X-------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N020 ( 1, 1) [000652] ------------ | | | /--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N021 ( 4, 4) [000653] -A---------- | | +--* COMMA int <l:$255, c:$254>
N016 ( 1, 1) [000407] ------------ | | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | | | | /--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000651] -A------R--- | | | \--* ASG int $VN.Void
N018 ( 1, 1) [000650] D------N---- | | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N023 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int <l:$641, c:$640>
N022 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N035 ( 40, 54) [000618] -ACXG------- | /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N037 ( 40, 54) [000411] -ACXG---R--- \--* ASG ref <l:$4dc, c:$4db>
N036 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use) <l:$4d6, c:$35b>
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref <l:$4d6, c:$35b>
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3 <l:$4d6, c:$35b>
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $4c8
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token $503
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref $4c8
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3 $4c8
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000458] -A------R--- \--* ASG int $40
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3 $40
***** BB13, stmt 36
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 4) [000465] ------------ | /--* CNS_INT int 0x1000000 $4e
N003 ( 5, 7) [000467] ------------ | /--* OR int $4e
N001 ( 3, 2) [000466] ------------ | | \--* LCL_VAR int V24 tmp18 u:3 (last use) $40
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int $VN.Void
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int $4e
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N006 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A-XG------- \--* ASG int $VN.Void
N004 ( 4, 4) [000448] ---XG--N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use) $4c8
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref $4c8
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4 $4c8
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3 <l:$4d6, c:$35b>
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use) $307
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref $VN.Void
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref $307
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult $VN.Void
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void $402
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref $363
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref $363
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3 $363
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException $VN.Void
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N008 ( 3, 3) [000588] ------------ | /--* ADD byref $28c
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref $294
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte $4e3
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use) $363
-------------------------------------------------------------------------------------------------------------------
GenTreeNode creates assertion:
N004 ( 5, 5) [000012] ------------ * JTRUE void
In BB02 New Global Constant Assertion: (512, 64) ($200,$40) V01.03 == 0 index=#01, mask=0000000000000001
GenTreeNode creates assertion:
N004 ( 5, 5) [000012] ------------ * JTRUE void
In BB02 New Global Constant Assertion: (512, 64) ($200,$40) V01.03 != 0 index=#02, mask=0000000000000002
GenTreeNode creates assertion:
N002 ( 3, 2) [000164] ---X-------- * IND int $202
In BB03 New Global Constant Assertion: (835, 0) ($343,$0) V09.03 != null index=#03, mask=0000000000000004
GenTreeNode creates assertion:
N004 ( 4, 4) [000225] V--XGO-N---- * IND int $203
In BB03 New Global Constant Assertion: (770, 0) ($302,$0) V12.03 != null index=#04, mask=0000000000000008
GenTreeNode creates assertion:
N004 ( 4, 4) [000279] V--XGO-N---- * IND int $205
In BB06 New Global Constant Assertion: (771, 0) ($303,$0) V14.03 != null index=#05, mask=0000000000000010
GenTreeNode creates assertion:
N004 ( 4, 4) [000289] ---XG------- * IND int <l:$249, c:$206>
In BB08 New Global Constant Assertion: (772, 0) ($304,$0) V15.03 != null index=#06, mask=0000000000000020
GenTreeNode creates assertion:
N004 ( 5, 5) [000373] ------------ * JTRUE void
In BB10 New Global Constant Assertion: (588, 64) ($24c,$40) Loop_Bnd {GE($206, $4b)} is not {IntCns 0} index=#07, mask=0000000000000040
GenTreeNode creates assertion:
N004 ( 5, 5) [000373] ------------ * JTRUE void
In BB10 New Global Constant Assertion: (588, 64) ($24c,$40) Loop_Bnd {GE($206, $4b)} is {IntCns 0} index=#08, mask=0000000000000080
GenTreeNode creates assertion:
N004 ( 5, 5) [000395] ------------ * JTRUE void
In BB11 New Global Constant Assertion: (590, 64) ($24e,$40) Loop_Bnd {LT($206, $41)} is not {IntCns 0} index=#09, mask=0000000000000100
GenTreeNode creates assertion:
N004 ( 5, 5) [000395] ------------ * JTRUE void
In BB11 New Global Constant Assertion: (590, 64) ($24e,$40) Loop_Bnd {LT($206, $41)} is {IntCns 0} index=#10, mask=0000000000000200
GenTreeNode creates assertion:
N023 ( 3, 3) [000609] ---X-------- * ARR_LENGTH int <l:$641, c:$640>
In BB12 New Global Constant Assertion: (857, 0) ($359,$0) V34.03 != null index=#11, mask=0000000000000400
GenTreeNode creates assertion:
N024 ( 11, 14) [000610] -A-X-------- * ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
In BB12 New Global ArrBnds Assertion: (0, 0) ($0,$0) [idx: {ADD($55, $206)};len: {ARR_LENGTH($359)}] in range index=#12, mask=0000000000000800
New refCnts for V24: refCnt = 1, refCntWtd = 1
After constant propagation on [000467]:
( 10, 12) [000470] ------------ * STMT void (IL 0x08E... ???)
N003 ( 5, 7) [000467] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 10, 12) [000469] -A-XGO--R--- \--* ASG int $VN.Void
N007 ( 4, 4) [000468] V--XGO-N---- \--* IND int $4e
N005 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N006 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N004 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
VN based non-null prop in BB13:
N007 ( 4, 4) [000468] V--XGO-N---- * IND int $4e
New refCnts for V21: refCnt = 5, refCntWtd = 10
optVNAssertionPropCurStmt morphed tree:
N005 ( 1, 4) [000467] ------------ /--* CNS_INT int 0x1000000 $4e
N006 ( 6, 9) [000469] -A--GO------ * ASG int $VN.Void
N004 ( 4, 4) [000468] V---GO-N---- \--* IND int $4e
N002 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N001 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
GenTreeNode creates assertion:
N004 ( 4, 4) [000468] V---GO-N---- * IND int $4e
In BB13 New Global Constant Assertion: (1224, 0) ($4c8,$0) V21.03 != null index=#13, mask=0000000000001000
VN based non-null prop in BB13:
N004 ( 4, 4) [000448] ---XG--N---- * IND int $249
New refCnts for V21: refCnt = 6, refCntWtd = 12
New refCnts for V02: refCnt = 6, refCntWtd = 5
optVNAssertionPropCurStmt morphed tree:
N005 ( 1, 1) [000376] ------------ /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A--GO------ * ASG int $VN.Void
N004 ( 4, 4) [000448] x---GO-N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
BB01 valueGen = 0000000000000000
BB02 valueGen = 0000000000000002 => BB05 valueGen = 0000000000000001,
BB03 valueGen = 000000000000000C => BB06 valueGen = 000000000000000C,
BB04 valueGen = 0000000000000000
BB05 valueGen = 0000000000000000
BB06 valueGen = 0000000000000010 => BB08 valueGen = 0000000000000010,
BB07 valueGen = 0000000000000000
BB08 valueGen = 0000000000000020
BB09 valueGen = 0000000000000000 => BB15 valueGen = 0000000000000000,
BB10 valueGen = 0000000000000080 => BB13 valueGen = 0000000000000040,
BB11 valueGen = 0000000000000200 => BB13 valueGen = 0000000000000100,
BB12 valueGen = 0000000000000C00
BB13 valueGen = 0000000000001000
BB14 valueGen = 0000000000000000
BB15 valueGen = 0000000000000000
BB16 valueGen = 0000000000000000
BB17 valueGen = 0000000000000000AssertionPropCallback::StartMerge: BB01 in -> 0000000000000000
AssertionPropCallback::EndMerge : BB01 in -> 0000000000000000
AssertionPropCallback::Changed : BB01 before out -> 0000000000001FFF; after out -> 0000000000000000;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB02 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB02 in -> 0000000000001FFF, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB02 in -> 0000000000000000
AssertionPropCallback::Changed : BB02 before out -> 0000000000001FFF; after out -> 0000000000000002;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000001;
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Changed : BB17 before out -> 0000000000001FFF; after out -> 0000000000000000;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB03 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB03 in -> 0000000000001FFF, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::EndMerge : BB03 in -> 0000000000000002
AssertionPropCallback::Changed : BB03 before out -> 0000000000001FFF; after out -> 000000000000000E;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 000000000000000E;
AssertionPropCallback::StartMerge: BB05 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB05 in -> 0000000000001FFF, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::EndMerge : BB05 in -> 0000000000000001
AssertionPropCallback::Changed : BB05 before out -> 0000000000001FFF; after out -> 0000000000000001;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000001;
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB16 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB16 in -> 0000000000001FFF, predBlock BB04 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB16 in -> 0000000000001FFF, predBlock BB17 out -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB14 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB15 out -> 0000000000001FFF
AssertionPropCallback::EndMerge : BB16 in -> 0000000000000000
AssertionPropCallback::Changed : BB16 before out -> 0000000000001FFF; after out -> 0000000000000000;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000000;
AssertionPropCallback::StartMerge: BB04 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB04 in -> 0000000000001FFF, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::EndMerge : BB04 in -> 000000000000000E
AssertionPropCallback::Changed : BB04 before out -> 0000000000001FFF; after out -> 000000000000000E;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 000000000000000E;
AssertionPropCallback::StartMerge: BB06 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB06 in -> 0000000000001FFF, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB06 in -> 000000000000000E, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::EndMerge : BB06 in -> 0000000000000000
AssertionPropCallback::Changed : BB06 before out -> 0000000000001FFF; after out -> 0000000000000010;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000010;
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB06 in -> 0000000000000000
AssertionPropCallback::Merge : BB06 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB06 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::EndMerge : BB06 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB06 out -> 0000000000000010; jumpDest out -> 0000000000000010
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB16 in -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB17 out -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB14 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB15 out -> 0000000000001FFF
AssertionPropCallback::EndMerge : BB16 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB16 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB07 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB07 in -> 0000000000001FFF, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::EndMerge : BB07 in -> 0000000000000010
AssertionPropCallback::Changed : BB07 before out -> 0000000000001FFF; after out -> 0000000000000010;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000010;
AssertionPropCallback::StartMerge: BB08 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB08 in -> 0000000000001FFF, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB08 in -> 0000000000000010, predBlock BB07 out -> 0000000000000010
AssertionPropCallback::EndMerge : BB08 in -> 0000000000000010
AssertionPropCallback::Changed : BB08 before out -> 0000000000001FFF; after out -> 0000000000000030;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000010;
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000000030
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB08 in -> 0000000000000010
AssertionPropCallback::Merge : BB08 in -> 0000000000000010, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB08 in -> 0000000000000010, predBlock BB07 out -> 0000000000000010
AssertionPropCallback::EndMerge : BB08 in -> 0000000000000010
AssertionPropCallback::Unchanged : BB08 out -> 0000000000000030; jumpDest out -> 0000000000000010
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000000030
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB09 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB09 in -> 0000000000001FFF, predBlock BB08 out -> 0000000000000030
AssertionPropCallback::EndMerge : BB09 in -> 0000000000000030
AssertionPropCallback::Changed : BB09 before out -> 0000000000001FFF; after out -> 0000000000000030;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000030;
AssertionPropCallback::StartMerge: BB17 in -> 0000000000000000
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB08 out -> 0000000000000030
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB07 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB06 out -> 0000000000000010
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB05 out -> 0000000000000001
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB03 out -> 000000000000000E
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB02 out -> 0000000000000002
AssertionPropCallback::Merge : BB17 in -> 0000000000000000, predBlock BB01 out -> 0000000000000000
AssertionPropCallback::EndMerge : BB17 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB17 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB10 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB10 in -> 0000000000001FFF, predBlock BB09 out -> 0000000000000030
AssertionPropCallback::EndMerge : BB10 in -> 0000000000000030
AssertionPropCallback::Changed : BB10 before out -> 0000000000001FFF; after out -> 00000000000000B0;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000070;
AssertionPropCallback::StartMerge: BB15 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB15 in -> 0000000000001FFF, predBlock BB09 out -> 0000000000000030
AssertionPropCallback::EndMerge : BB15 in -> 0000000000000030
AssertionPropCallback::Changed : BB15 before out -> 0000000000001FFF; after out -> 0000000000000030;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000030;
AssertionPropCallback::StartMerge: BB11 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB11 in -> 0000000000001FFF, predBlock BB10 out -> 00000000000000B0
AssertionPropCallback::EndMerge : BB11 in -> 00000000000000B0
AssertionPropCallback::Changed : BB11 before out -> 0000000000001FFF; after out -> 00000000000002B0;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 00000000000001B0;
AssertionPropCallback::StartMerge: BB13 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB13 in -> 0000000000001FFF, predBlock BB10 out -> 00000000000000B0
AssertionPropCallback::Merge : BB13 in -> 0000000000000070, predBlock BB11 out -> 00000000000002B0
AssertionPropCallback::EndMerge : BB13 in -> 0000000000000030
AssertionPropCallback::Changed : BB13 before out -> 0000000000001FFF; after out -> 0000000000001030;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000030;
AssertionPropCallback::StartMerge: BB16 in -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB17 out -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB14 out -> 0000000000001FFF
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB15 out -> 0000000000000030
AssertionPropCallback::EndMerge : BB16 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB16 out -> 0000000000000000; jumpDest out -> 0000000000000000
AssertionPropCallback::StartMerge: BB12 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB12 in -> 0000000000001FFF, predBlock BB11 out -> 00000000000002B0
AssertionPropCallback::EndMerge : BB12 in -> 00000000000002B0
AssertionPropCallback::Changed : BB12 before out -> 0000000000001FFF; after out -> 0000000000000EB0;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 00000000000002B0;
AssertionPropCallback::StartMerge: BB13 in -> 0000000000000030
AssertionPropCallback::Merge : BB13 in -> 0000000000000030, predBlock BB10 out -> 00000000000000B0
AssertionPropCallback::Merge : BB13 in -> 0000000000000030, predBlock BB11 out -> 00000000000002B0
AssertionPropCallback::EndMerge : BB13 in -> 0000000000000030
AssertionPropCallback::Unchanged : BB13 out -> 0000000000001030; jumpDest out -> 0000000000000030
AssertionPropCallback::StartMerge: BB14 in -> 0000000000001FFF
AssertionPropCallback::Merge : BB14 in -> 0000000000001FFF, predBlock BB12 out -> 0000000000000EB0
AssertionPropCallback::Merge : BB14 in -> 0000000000000EB0, predBlock BB13 out -> 0000000000001030
AssertionPropCallback::EndMerge : BB14 in -> 0000000000000030
AssertionPropCallback::Changed : BB14 before out -> 0000000000001FFF; after out -> 0000000000000030;
jumpDest before out -> 0000000000001FFF; jumpDest after out -> 0000000000000030;
AssertionPropCallback::StartMerge: BB14 in -> 0000000000000030
AssertionPropCallback::Merge : BB14 in -> 0000000000000030, predBlock BB12 out -> 0000000000000EB0
AssertionPropCallback::Merge : BB14 in -> 0000000000000030, predBlock BB13 out -> 0000000000001030
AssertionPropCallback::EndMerge : BB14 in -> 0000000000000030
AssertionPropCallback::Unchanged : BB14 out -> 0000000000000030; jumpDest out -> 0000000000000030
AssertionPropCallback::StartMerge: BB16 in -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB04 out -> 000000000000000E
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB17 out -> 0000000000000000
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB14 out -> 0000000000000030
AssertionPropCallback::Merge : BB16 in -> 0000000000000000, predBlock BB15 out -> 0000000000000030
AssertionPropCallback::EndMerge : BB16 in -> 0000000000000000
AssertionPropCallback::Unchanged : BB16 out -> 0000000000000000; jumpDest out -> 0000000000000000
BB01 valueIn = 0000000000000000 valueOut = 0000000000000000
BB02 valueIn = 0000000000000000 valueOut = 0000000000000002 => BB05 valueOut= 0000000000000001
BB03 valueIn = 0000000000000002 valueOut = 000000000000000E => BB06 valueOut= 000000000000000E
BB04 valueIn = 000000000000000E valueOut = 000000000000000E
BB05 valueIn = 0000000000000001 valueOut = 0000000000000001
BB06 valueIn = 0000000000000000 valueOut = 0000000000000010 => BB08 valueOut= 0000000000000010
BB07 valueIn = 0000000000000010 valueOut = 0000000000000010
BB08 valueIn = 0000000000000010 valueOut = 0000000000000030
BB09 valueIn = 0000000000000030 valueOut = 0000000000000030 => BB15 valueOut= 0000000000000030
BB10 valueIn = 0000000000000030 valueOut = 00000000000000B0 => BB13 valueOut= 0000000000000070
BB11 valueIn = 00000000000000B0 valueOut = 00000000000002B0 => BB13 valueOut= 00000000000001B0
BB12 valueIn = 00000000000002B0 valueOut = 0000000000000EB0
BB13 valueIn = 0000000000000030 valueOut = 0000000000001030
BB14 valueIn = 0000000000000030 valueOut = 0000000000000030
BB15 valueIn = 0000000000000030 valueOut = 0000000000000030
BB16 valueIn = 0000000000000000 valueOut = 0000000000000000
BB17 valueIn = 0000000000000000 valueOut = 0000000000000000
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000001], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000002], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000003], tree -> 0
Propagating 0000000000000000 assertions for BB01, stmt [000005], tree [000004], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000013], tree [000009], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000013], tree [000010], tree -> 0
Propagating 0000000000000000 assertions for BB02, stmt [000013], tree [000011], tree -> 0
Propagating 0000000000000002 assertions for BB03, stmt [000167], tree [000067], tree -> 0
Propagating 0000000000000002 assertions for BB03, stmt [000167], tree [000165], tree -> 0
Propagating 0000000000000002 assertions for BB03, stmt [000167], tree [000166], tree -> 0
Propagating 0000000000000002 assertions for BB03, stmt [000168], tree [000163], tree -> 0
Propagating 0000000000000002 assertions for BB03, stmt [000168], tree [000164], tree -> 3
Propagating 0000000000000006 assertions for BB03, stmt [000152], tree [000150], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000152], tree [000149], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000152], tree [000151], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000178], tree [000476], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000178], tree [000479], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000178], tree [000480], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000198], tree [000147], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000198], tree [000196], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000198], tree [000197], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000204], tree [000201], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000204], tree [000202], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000204], tree [000203], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000482], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000481], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000483], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000484], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000485], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000486], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000487], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000488], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000489], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000490], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000491], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000492], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000493], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000494], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000495], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000496], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000497], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000190], tree [000498], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000078], tree [000159], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000078], tree [000161], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000078], tree [000162], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000502], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000501], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000503], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000504], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000506], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000507], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000508], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000509], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000505], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000510], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000511], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000513], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000514], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000515], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000516], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000512], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000517], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000087], tree [000518], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000237], tree [000217], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000237], tree [000235], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000237], tree [000236], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000228], tree [000224], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000228], tree [000519], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000228], tree [000520], tree -> 0
Propagating 0000000000000006 assertions for BB03, stmt [000228], tree [000225], tree -> 4
Propagating 000000000000000E assertions for BB03, stmt [000228], tree [000226], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000228], tree [000227], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000096], tree [000229], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000096], tree [000240], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000096], tree [000241], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000096], tree [000242], tree -> 0
Propagating 000000000000000E assertions for BB03, stmt [000096], tree [000243], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000106], tree [000098], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000106], tree [000104], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000106], tree [000099], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000106], tree [000105], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000524], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000525], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000523], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000526], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000527], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000528], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000529], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000530], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000531], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000532], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000533], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000534], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000535], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000536], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000537], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000538], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000539], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000540], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000113], tree [000541], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000549], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000551], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000553], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000121], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000122], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000542], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000543], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000544], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000545], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000546], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000547], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000117], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000118], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000119], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000554], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000552], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000550], tree -> 0
Propagating 000000000000000E assertions for BB04, stmt [000123], tree [000120], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000558], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000559], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000557], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000560], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000561], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000563], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000564], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000565], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000566], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000562], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000567], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000568], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000570], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000571], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000572], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000573], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000569], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000574], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000020], tree [000575], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000024], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000021], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000576], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000577], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000025], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000027], tree [000026], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000040], tree [000028], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000040], tree [000038], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000040], tree [000033], tree -> 0
Propagating 0000000000000001 assertions for BB05, stmt [000040], tree [000039], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000276], tree [000248], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000276], tree [000274], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000276], tree [000275], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000267], tree [000260], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000267], tree [000578], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000267], tree [000579], tree -> 0
Propagating 0000000000000000 assertions for BB06, stmt [000267], tree [000279], tree -> 5
Propagating 0000000000000010 assertions for BB06, stmt [000267], tree [000280], tree -> 0
Propagating 0000000000000010 assertions for BB06, stmt [000267], tree [000281], tree -> 0
Propagating 0000000000000010 assertions for BB06, stmt [000267], tree [000282], tree -> 0
Propagating 0000000000000010 assertions for BB06, stmt [000267], tree [000283], tree -> 0
Propagating 0000000000000010 assertions for BB07, stmt [000273], tree [000580], tree -> 0
Propagating 0000000000000010 assertions for BB07, stmt [000273], tree [000272], tree -> 0
Propagating 0000000000000010 assertions for BB07, stmt [000273], tree [000270], tree -> 0
Propagating 0000000000000010 assertions for BB07, stmt [000273], tree [000581], tree -> 0
Propagating 0000000000000010 assertions for BB07, stmt [000273], tree [000271], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000292], tree [000254], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000292], tree [000290], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000292], tree [000291], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000049], tree [000288], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000049], tree [000582], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000049], tree [000583], tree -> 0
Propagating 0000000000000010 assertions for BB08, stmt [000049], tree [000289], tree -> 6
Propagating 0000000000000030 assertions for BB08, stmt [000049], tree [000047], tree -> 0
Propagating 0000000000000030 assertions for BB08, stmt [000049], tree [000048], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000055], tree [000051], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000055], tree [000053], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000055], tree [000052], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000055], tree [000054], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000318], tree [000597], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000318], tree [000598], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000318], tree [000599], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000318], tree [000316], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000318], tree [000317], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000300], tree [000295], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000300], tree [000296], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000300], tree [000297], tree -> 0
Propagating 0000000000000030 assertions for BB09, stmt [000300], tree [000298], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000369], tree [000308], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000369], tree [000367], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000369], tree [000368], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000374], tree [000370], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000374], tree [000371], tree -> 0
Propagating 0000000000000030 assertions for BB10, stmt [000374], tree [000372], tree -> 0
Propagating 00000000000000B0 assertions for BB11, stmt [000396], tree [000392], tree -> 0
Propagating 00000000000000B0 assertions for BB11, stmt [000396], tree [000393], tree -> 0
Propagating 00000000000000B0 assertions for BB11, stmt [000396], tree [000394], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000619], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000621], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000402], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000403], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000400], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000401], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000622], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000620], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000404], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000623], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000398], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000405], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000602], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000603], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000406], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000407], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000408], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000650], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000651], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000652], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000653], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000604], tree -> 0
Propagating 00000000000002B0 assertions for BB12, stmt [000412], tree [000609], tree -> 11
Propagating 00000000000006B0 assertions for BB12, stmt [000412], tree [000610], tree -> 12
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000605], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000654], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000611], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000612], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000613], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000614], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000615], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000616], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000409], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000617], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000618], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000410], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000412], tree [000411], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000422], tree [000413], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000422], tree [000420], tree -> 0
Propagating 0000000000000EB0 assertions for BB12, stmt [000422], tree [000421], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000636], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000635], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000377], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000637], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000378], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000379], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000381], tree [000380], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000459], tree [000456], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000459], tree [000457], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000459], tree [000458], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000470], tree [000464], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000470], tree [000627], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000470], tree [000628], tree -> 0
Propagating 0000000000000030 assertions for BB13, stmt [000470], tree [000468], tree -> 13
Propagating 0000000000001030 assertions for BB13, stmt [000470], tree [000467], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000470], tree [000469], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000447], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000629], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000630], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000448], tree -> 13
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000376], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000450], tree [000449], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000389], tree [000386], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000389], tree [000387], tree -> 0
Propagating 0000000000001030 assertions for BB13, stmt [000389], tree [000388], tree -> 0
Propagating 0000000000000030 assertions for BB14, stmt [000315], tree [000307], tree -> 0
Propagating 0000000000000030 assertions for BB14, stmt [000315], tree [000313], tree -> 0
Propagating 0000000000000030 assertions for BB14, stmt [000315], tree [000423], tree -> 0
Propagating 0000000000000030 assertions for BB14, stmt [000315], tree [000314], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000631], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000633], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000304], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000302], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000059], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000634], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000632], tree -> 0
Propagating 0000000000000030 assertions for BB15, stmt [000305], tree [000303], tree -> 0
Propagating 0000000000000000 assertions for BB16, stmt [000065], tree [000064], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000127], tree [000007], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000127], tree [000125], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000127], tree [000126], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000136], tree [000132], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000136], tree [000134], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000136], tree [000133], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000136], tree [000135], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000591], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000593], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000142], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000584], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000585], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000586], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000587], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000588], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000589], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000140], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000594], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000592], tree -> 0
Propagating 0000000000000000 assertions for BB17, stmt [000143], tree [000141], tree -> 0
*************** In fgDebugCheckBBlist
*************** In OptimizeRangeChecks()
Blocks/trees before phase
--------------------------------------------------------------------------------------------------------------------------------------
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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 <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
------------ BB02 [007..00A) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
------------ BB03 [00A..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** BB03, stmt 6
( 0, 0) [000178] ------------ * STMT void (IL ???... ???)
N002 ( 0, 0) [000479] ------------ | /--* NOP void $401
N003 ( 0, 0) [000480] ------------ \--* COMMA void $401
N001 ( 0, 0) [000476] ------------ \--* NOP void $400
***** BB03, stmt 7
( 1, 3) [000198] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000147] ------------ | /--* LCL_VAR ref V09 tmp3 u:3 (last use) $343
N003 ( 1, 3) [000197] -A------R--- \--* ASG ref $343
N002 ( 1, 1) [000196] D------N---- \--* LCL_VAR ref V27 tmp21 d:3 $343
***** BB03, stmt 8
( 1, 3) [000204] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000201] ------------ | /--* CNS_INT int 0 $40
N003 ( 1, 3) [000203] -A------R--- \--* ASG bool $40
N002 ( 2, 2) [000202] D------N---- \--* LCL_VAR bool V28 tmp22 d:3 $40
***** BB03, stmt 9
( 17, 18) [000190] ------------ * STMT void (IL ???... ???)
N016 ( 2, 2) [000496] -------N---- | /--* LCL_VAR bool V28 tmp22 u:3 (last use) $40
N017 ( 8, 8) [000497] -A---------- | /--* ASG bool $VN.Void
N015 ( 5, 5) [000495] *------N---- | | \--* IND bool $40
N013 ( 1, 1) [000493] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000494] -------N---- | | \--* ADD byref $284
N012 ( 1, 1) [000492] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 (last use) $2c1
N018 ( 17, 18) [000498] -A---------- \--* COMMA void $VN.Void
N009 ( 1, 1) [000489] -------N---- | /--* LCL_VAR ref V27 tmp21 u:3 (last use) $343
N010 ( 6, 5) [000490] -A---------- | /--* ASG ref $VN.Void
N008 ( 4, 3) [000488] *------N---- | | \--* IND ref $343
N006 ( 1, 1) [000486] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000487] -------N---- | | \--* ADD byref $283
N005 ( 1, 1) [000485] ------------ | | \--* LCL_VAR byref V30 tmp24 u:3 $2c1
N011 ( 9, 10) [000491] -A---------- \--* COMMA void $VN.Void
N002 ( 3, 5) [000481] ------------ | /--* ADDR byref $2c1
N001 ( 3, 4) [000482] -------N---- | | \--* LCL_FLD struct V10 tmp4 [+0] Fseq[m_configuredTaskAwaiter] $440
N004 ( 3, 5) [000484] -A------R--- \--* ASG byref $2c1
N003 ( 1, 1) [000483] D------N---- \--* LCL_VAR byref V30 tmp24 d:3 $2c1
***** BB03, stmt 10
( 7, 5) [000078] ------------ * STMT void (IL ???... ???)
N001 ( 3, 2) [000159] ----G------- | /--* LCL_VAR struct(AX) V10 tmp4 $480
N003 ( 7, 5) [000162] -A--G---R--- \--* ASG struct (copy) $VN.Void
N002 ( 3, 2) [000161] D------N---- \--* LCL_VAR struct(AX) V04 loc3
***** BB03, stmt 11
( 21, 20) [000087] ------------ * STMT void (IL ???... ???)
N015 ( 5, 5) [000516] ---X-------- | /--* IND bool <l:$381, c:$3c2>
N013 ( 1, 1) [000514] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N014 ( 2, 2) [000515] -------N---- | | \--* ADD byref $287
N012 ( 1, 1) [000513] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 (last use) $2c3
N017 ( 10, 9) [000517] -A-XG---R--- | /--* ASG bool <l:$381, c:$3c2>
N016 ( 4, 3) [000512] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N018 ( 21, 20) [000518] -A-XG------- \--* COMMA void <l:$381, c:$3c2>
N008 ( 4, 3) [000509] ---X-------- | /--* IND ref <l:$301, c:$349>
N006 ( 1, 1) [000507] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N007 ( 3, 3) [000508] -------N---- | | \--* ADD byref $286
N005 ( 1, 1) [000506] ------------ | | \--* LCL_VAR byref V31 tmp25 u:3 $2c3
N010 ( 8, 6) [000510] -A-XG---R--- | /--* ASG ref <l:$301, c:$349>
N009 ( 3, 2) [000505] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N011 ( 11, 11) [000511] -A-XG------- \--* COMMA void <l:$301, c:$349>
N002 ( 3, 5) [000501] ------------ | /--* ADDR byref $2c3
N001 ( 3, 4) [000502] -------N---- | | \--* LCL_FLD struct V04 loc3 [+0] Fseq[m_configuredTaskAwaiter] $441
N004 ( 3, 5) [000504] -A------R--- \--* ASG byref $2c3
N003 ( 1, 1) [000503] D------N---- \--* LCL_VAR byref V31 tmp25 d:3 $2c3
***** BB03, stmt 12
( 3, 3) [000237] ------------ * STMT void (IL 0x01E... ???)
N001 ( 3, 2) [000217] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $302
N003 ( 3, 3) [000236] -A--G---R--- \--* ASG ref $302
N002 ( 1, 1) [000235] D------N---- \--* LCL_VAR ref V12 tmp6 d:3 $302
***** BB03, stmt 13
( 8, 7) [000228] ------------ * STMT void (IL 0x01E... ???)
N004 ( 4, 4) [000225] V--XGO-N---- | /--* IND int $203
N002 ( 1, 1) [000519] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000520] -------N---- | | \--* ADD byref $289
N001 ( 1, 1) [000224] ------------ | | \--* LCL_VAR ref V12 tmp6 u:3 (last use) $302
N006 ( 8, 7) [000227] -A-XGO--R--- \--* ASG int $203
N005 ( 3, 2) [000226] D------N---- \--* LCL_VAR int V13 tmp7 d:3 $203
***** BB03, stmt 14
( 9, 11) [000096] ------------ * STMT void (IL ???... ???)
N006 ( 9, 11) [000095] ------------ \--* JTRUE void
N004 ( 1, 1) [000242] ------------ | /--* CNS_INT int 0 $40
N005 ( 7, 9) [000243] N------N---- \--* NE int $243
N002 ( 1, 4) [000240] ------------ | /--* CNS_INT int 0x1600000 $49
N003 ( 5, 7) [000241] ------------ \--* AND int $242
N001 ( 3, 2) [000229] ------------ \--* LCL_VAR int V13 tmp7 u:3 (last use) $203
------------ BB04 [027..047) -> BB16 (always), preds={BB03} succs={BB16}
***** BB04, stmt 15
( 5, 4) [000106] ------------ * STMT void (IL ???...0x02B)
N003 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 $40
N004 ( 5, 4) [000105] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000104] *--XG--N---- \--* IND int $40
N001 ( 1, 1) [000098] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB04, stmt 16
( 21, 18) [000113] ------------ * STMT void (IL 0x030...0x032)
N017 ( 4, 3) [000539] ----G--N---- | /--* LCL_VAR bool (AX) V26 tmp20 $382
N018 ( 10, 9) [000540] -A-XG------- | /--* ASG bool $VN.Void
N016 ( 5, 5) [000538] *--X---N---- | | \--* IND bool $382
N014 ( 1, 1) [000536] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000537] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000535] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 (last use) $280
N019 ( 21, 18) [000541] -A-XG------- \--* COMMA void $VN.Void
N010 ( 3, 2) [000532] ----G--N---- | /--* LCL_VAR ref (AX) V25 tmp19 $308
N011 ( 8, 6) [000533] -A-XG------- | /--* ASG ref $VN.Void
N009 ( 4, 3) [000531] *--X---N---- | | \--* IND ref $308
N007 ( 1, 1) [000529] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000530] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000528] ------------ | | \--* LCL_VAR byref V32 tmp26 u:3 $280
N012 ( 11, 9) [000534] -A-XG------- \--* COMMA void $VN.Void
N002 ( 1, 1) [000525] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000523] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000524] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000527] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000526] D------N---- \--* LCL_VAR byref V32 tmp26 d:3 $280
***** BB04, stmt 17
( 23, 18) [000123] ------------ * STMT void (IL 0x037...0x045)
N018 ( 23, 18) [000120] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted $VN.Void
N009 ( 1, 1) [000545] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N010 ( 3, 3) [000546] ------------ | /--* ADD byref $28c
N008 ( 1, 1) [000544] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N011 ( 5, 5) [000547] ---XG--N---- this in rcx +--* COMMA byref $294
N007 ( 2, 2) [000543] ---X---N---- | \--* NULLCHECK byte $4e3
N006 ( 1, 1) [000542] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N013 ( 3, 3) [000118] L----------- arg1 in rdx +--* ADDR long $2ca
N012 ( 3, 2) [000117] ----G--N---- | \--* LCL_VAR struct(AX)(P) V03 loc2
| \--* ref V03.m_task (offs=0x00) -> V25 tmp19
| \--* bool V03.m_continueOnCapturedContext (offs=0x08) -> V26 tmp20 $481
N014 ( 1, 1) [000119] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 $80
------------ BB05 [047..063), preds={BB02} succs={BB06}
***** BB05, stmt 18
( 21, 18) [000020] ------------ * STMT void (IL 0x047...0x04D)
N016 ( 5, 5) [000573] ---X-------- | /--* IND bool <l:$380, c:$3c0>
N014 ( 1, 1) [000571] ------------ | | | /--* CNS_INT long 8 Fseq[m_continueOnCapturedContext] $142
N015 ( 2, 2) [000572] -------N---- | | \--* ADD byref $282
N013 ( 1, 1) [000570] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 (last use) $280
N018 ( 10, 9) [000574] -A-XG---R--- | /--* ASG bool <l:$380, c:$3c0>
N017 ( 4, 3) [000569] D---G--N---- | | \--* LCL_VAR bool (AX) V26 tmp20
N019 ( 21, 18) [000575] -A-XG------- \--* COMMA void <l:$380, c:$3c0>
N009 ( 4, 3) [000566] ---X-------- | /--* IND ref <l:$300, c:$340>
N007 ( 1, 1) [000564] ------------ | | | /--* CNS_INT long 0 Fseq[m_task] $140
N008 ( 3, 3) [000565] -------N---- | | \--* ADD byref $281
N006 ( 1, 1) [000563] ------------ | | \--* LCL_VAR byref V33 tmp27 u:3 $280
N011 ( 8, 6) [000567] -A-XG---R--- | /--* ASG ref <l:$300, c:$340>
N010 ( 3, 2) [000562] D---G--N---- | | \--* LCL_VAR ref (AX) V25 tmp19
N012 ( 11, 9) [000568] -A-XG------- \--* COMMA void <l:$300, c:$340>
N002 ( 1, 1) [000559] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N003 ( 3, 3) [000557] ------------ | /--* ADD byref $280
N001 ( 1, 1) [000558] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N005 ( 3, 3) [000561] -A------R--- \--* ASG byref $280
N004 ( 1, 1) [000560] D------N---- \--* LCL_VAR byref V33 tmp27 d:3 $280
***** BB05, stmt 19
( 8, 7) [000027] ------------ * STMT void (IL 0x04E...0x055)
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 $40
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) $VN.Void
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct
N003 ( 1, 1) [000576] ------------ | /--* CNS_INT long 16 field offset Fseq[<>u__1] $141
N004 ( 3, 3) [000577] ------------ \--* ADD byref $280
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB05, stmt 20
( 5, 4) [000040] ------------ * STMT void (IL ???...0x05E)
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 $41
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int $41
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 $80
------------ BB06 [063..06D) -> BB08 (cond), preds={BB03,BB05} succs={BB07,BB08}
***** BB06, stmt 21
( 3, 3) [000276] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000248] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $303
N003 ( 3, 3) [000275] -A--G---R--- \--* ASG ref $303
N002 ( 1, 1) [000274] D------N---- \--* LCL_VAR ref V14 tmp8 d:3 $303
***** BB06, stmt 22
( 10, 16) [000267] ------------ * STMT void (IL 0x063... ???)
N009 ( 10, 16) [000266] ---XGO------ \--* JTRUE void
N007 ( 1, 4) [000282] ------------ | /--* CNS_INT int 0x1000000 $4e
N008 ( 8, 14) [000283] J--XGO-N---- \--* EQ int $245
N005 ( 1, 4) [000280] ------------ | /--* CNS_INT int 0x11000000 $4d
N006 ( 6, 9) [000281] ---XGO------ \--* AND int $244
N004 ( 4, 4) [000279] V--XGO-N---- \--* IND int $205
N002 ( 1, 1) [000578] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000579] -------N---- \--* ADD byref $28a
N001 ( 1, 1) [000260] ------------ \--* LCL_VAR ref V14 tmp8 u:3 $303
------------ BB07 [063..064), preds={BB06} succs={BB08}
***** BB07, stmt 23
( 15, 7) [000273] ------------ * STMT void (IL 0x063... ???)
N005 ( 15, 7) [000271] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification $VN.Void
N003 ( 1, 1) [000270] ------------ arg0 in rcx \--* LCL_VAR ref V14 tmp8 u:3 (last use) $303
------------ BB08 [063..064), preds={BB06,BB07} succs={BB09}
***** BB08, stmt 24
( 3, 3) [000292] ------------ * STMT void (IL 0x063... ???)
N001 ( 3, 2) [000254] ----G------- | /--* LCL_VAR ref (AX) V25 tmp19 $304
N003 ( 3, 3) [000291] -A--G---R--- \--* ASG ref $304
N002 ( 1, 1) [000290] D------N---- \--* LCL_VAR ref V15 tmp9 d:3 $304
***** BB08, stmt 25
( 4, 4) [000049] ------------ * STMT void (IL ???... ???)
N004 ( 4, 4) [000289] ---XG------- | /--* IND int <l:$249, c:$206>
N002 ( 1, 1) [000582] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000583] -------N---- | | \--* ADD byref $28b
N001 ( 1, 1) [000288] ------------ | | \--* LCL_VAR ref V15 tmp9 u:3 (last use) $304
N006 ( 4, 4) [000048] -A-XG---R--- \--* ASG int <l:$249, c:$206>
N005 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 <l:$249, c:$206>
------------ BB09 [086..09A) -> BB15 (cond), preds={BB08} succs={BB10,BB15}
***** BB09, stmt 26
( 5, 4) [000055] ------------ * STMT void (IL 0x086...0x089)
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB09, stmt 27
( 5, 4) [000318] ------------ * STMT void (IL 0x08E... ???)
N002 ( 1, 1) [000598] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N003 ( 5, 4) [000599] ------------ | /--* ADD byref $28c
N001 ( 3, 2) [000597] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N005 ( 5, 4) [000317] -A--G---R--- \--* ASG byref $28c
N004 ( 1, 1) [000316] D------N---- \--* LCL_VAR byref V16 tmp10 d:3 $28c
***** BB09, stmt 28
( 7, 6) [000300] ------------ * STMT void (IL 0x08E... ???)
N005 ( 7, 6) [000299] ---XG------- \--* JTRUE void
N003 ( 1, 1) [000297] ------------ | /--* CNS_INT ref null $VN.Null
N004 ( 5, 4) [000298] J--XG--N---- \--* NE int <l:$24b, c:$24a>
N002 ( 3, 2) [000296] *--XG------- \--* IND ref <l:$305, c:$352>
N001 ( 1, 1) [000295] ------------ \--* LCL_VAR byref V16 tmp10 u:3 $28c
------------ BB10 [08E..08F) -> BB13 (cond), preds={BB09} succs={BB11,BB13}
***** BB10, stmt 29
( 1, 3) [000369] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000308] ------------ | /--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
N003 ( 1, 3) [000368] -A------R--- \--* ASG int <l:$249, c:$206>
N002 ( 1, 1) [000367] D------N---- \--* LCL_VAR int V20 tmp14 d:3 <l:$249, c:$206>
***** BB10, stmt 30
( 5, 5) [000374] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000373] ------------ \--* JTRUE void
N002 ( 1, 1) [000371] ------------ | /--* CNS_INT int 9 $4b
N003 ( 3, 3) [000372] J------N---- \--* GE int <l:$24d, c:$24c>
N001 ( 1, 1) [000370] ------------ \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
------------ BB11 [08E..08F) -> BB13 (cond), preds={BB10} succs={BB12,BB13}
***** BB11, stmt 31
( 5, 5) [000396] ------------ * STMT void (IL 0x08E... ???)
N004 ( 5, 5) [000395] ------------ \--* JTRUE void
N002 ( 1, 1) [000393] ------------ | /--* CNS_INT int -1 $41
N003 ( 3, 3) [000394] J------N---- \--* LT int <l:$24f, c:$24e>
N001 ( 1, 1) [000392] ------------ \--* LCL_VAR int V02 loc1 u:3 <l:$249, c:$206>
------------ BB12 [08E..08F) -> BB14 (always), preds={BB11} succs={BB14}
***** BB12, stmt 32
( 40, 54) [000412] ------------ * STMT void (IL 0x08E... ???)
N033 ( 6, 7) [000409] a---G------- | /--* IND ref <l:$4d6, c:$35b>
N031 ( 1, 1) [000615] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] $141
N032 ( 5, 6) [000616] -------N---- | | \--* ADD byref $680
N028 ( 1, 1) [000612] -------N---- | | | /--* CNS_INT long 3 $146
N029 ( 3, 4) [000613] -------N---- | | | /--* LSH long <l:$605, c:$604>
N027 ( 2, 3) [000611] ------------ | | | | \--* CAST long <- int <l:$603, c:$602>
N026 ( 1, 1) [000654] ------------ | | | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N030 ( 4, 5) [000614] -------N---- | | \--* ADD byref <l:$290, c:$28f>
N025 ( 1, 1) [000605] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 (last use) <l:$306, c:$359>
N034 ( 17, 21) [000617] -A-XG------- | /--* COMMA ref <l:$4d8, c:$4d7>
N024 ( 11, 14) [000610] -A-X-------- | | \--* ARR_BOUNDS_CHECK_Rng void <l:$4d3, c:$4d2>
N020 ( 1, 1) [000652] ------------ | | | /--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N021 ( 4, 4) [000653] -A---------- | | +--* COMMA int <l:$255, c:$254>
N016 ( 1, 1) [000407] ------------ | | | | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | | | | /--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | | | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000651] -A------R--- | | | \--* ASG int $VN.Void
N018 ( 1, 1) [000650] D------N---- | | | \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N023 ( 3, 3) [000609] ---X-------- | | \--* ARR_LENGTH int <l:$641, c:$640>
N022 ( 1, 1) [000604] ------------ | | \--* LCL_VAR ref V34 tmp28 u:3 <l:$306, c:$359>
N035 ( 40, 54) [000618] -ACXG------- | /--* COMMA ref <l:$4dc, c:$4db>
N011 ( 5, 12) [000398] x---G------- | | | /--* IND ref <l:$306, c:$359>
N010 ( 3, 10) [000623] ------------ | | | | \--* CNS_INT(h) long 0x1bb355326b8 static Fseq[Int32Tasks] $505
N012 ( 23, 33) [000405] --CXG------- | | | /--* COMMA ref <l:$4cd, c:$4cc>
N009 ( 18, 21) [000404] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE $601
N005 ( 3, 10) [000400] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 $145
N006 ( 1, 4) [000401] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A $54
N014 ( 23, 33) [000603] -ACXG---R--- | | \--* ASG ref <l:$4cd, c:$4cc>
N013 ( 1, 1) [000602] D------N---- | | \--* LCL_VAR ref V34 tmp28 d:3 <l:$306, c:$359>
N037 ( 40, 54) [000411] -ACXG---R--- \--* ASG ref <l:$4dc, c:$4db>
N036 ( 1, 1) [000410] D------N---- \--* LCL_VAR ref V22 tmp16 d:3 <l:$4d6, c:$35b>
***** BB12, stmt 33
( 1, 3) [000422] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000413] ------------ | /--* LCL_VAR ref V22 tmp16 u:3 (last use) <l:$4d6, c:$35b>
N003 ( 1, 3) [000421] -A------R--- \--* ASG ref <l:$4d6, c:$35b>
N002 ( 1, 1) [000420] D------N---- \--* LCL_VAR ref V17 tmp11 d:3 <l:$4d6, c:$35b>
------------ BB13 [08E..08F), preds={BB10,BB11} succs={BB14}
***** BB13, stmt 34
( 17, 16) [000381] ------------ * STMT void (IL 0x08E... ???)
N005 ( 17, 16) [000378] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $4c8
N003 ( 3, 10) [000377] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc60cefbd8 token $503
N007 ( 17, 16) [000380] -AC-----R--- \--* ASG ref $4c8
N006 ( 1, 1) [000379] D------N---- \--* LCL_VAR ref V21 tmp15 d:3 $4c8
***** BB13, stmt 35
( 5, 4) [000459] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000456] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000458] -A------R--- \--* ASG int $40
N002 ( 3, 2) [000457] D------N---- \--* LCL_VAR int V24 tmp18 d:3 $40
***** BB13, stmt 36
( 6, 9) [000470] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 4) [000467] ------------ | /--* CNS_INT int 0x1000000 $4e
N006 ( 6, 9) [000469] -A--GO------ \--* ASG int $VN.Void
N004 ( 4, 4) [000468] V---GO-N---- \--* IND int $4e
N002 ( 1, 1) [000627] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] $143
N003 ( 2, 2) [000628] -------N---- \--* ADD byref $28d
N001 ( 1, 1) [000464] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 37
( 6, 6) [000450] ------------ * STMT void (IL 0x08E... ???)
N005 ( 1, 1) [000376] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
N006 ( 6, 6) [000449] -A--GO------ \--* ASG int $VN.Void
N004 ( 4, 4) [000448] x---GO-N---- \--* IND int $249
N002 ( 1, 1) [000629] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] $144
N003 ( 2, 2) [000630] -------N---- \--* ADD byref $28e
N001 ( 1, 1) [000447] ------------ \--* LCL_VAR ref V21 tmp15 u:3 $4c8
***** BB13, stmt 38
( 1, 3) [000389] ------------ * STMT void (IL 0x08E... ???)
N001 ( 1, 1) [000386] ------------ | /--* LCL_VAR ref V21 tmp15 u:3 (last use) $4c8
N003 ( 1, 3) [000388] -A------R--- \--* ASG ref $4c8
N002 ( 1, 1) [000387] D------N---- \--* LCL_VAR ref V17 tmp11 d:4 $4c8
------------ BB14 [???..???) -> BB16 (always), preds={BB12,BB13} succs={BB16}
***** BB14, stmt 39
( 2, 3) [000645] ------------ * STMT void (IL ???... ???)
N005 ( 2, 2) [000643] ------------ | * PHI ref
N001 ( 0, 0) [000648] ------------ | /--* PHI_ARG ref V17 tmp11 u:4
N002 ( 0, 0) [000646] ------------ | \--* PHI_ARG ref V17 tmp11 u:3 <l:$4d6, c:$35b>
N007 ( 2, 3) [000644] -A------R--- \--* ASG ref
N006 ( 1, 1) [000642] D------N---- \--* LCL_VAR ref V17 tmp11 d:5
***** BB14, stmt 40
( 5, 4) [000315] ------------ * STMT void (IL 0x08E... ???)
N003 ( 1, 1) [000423] ------------ | /--* LCL_VAR ref V17 tmp11 u:5 (last use) $307
N004 ( 5, 4) [000314] -A-XG------- \--* ASG ref $VN.Void
N002 ( 3, 2) [000313] *--XG--N---- \--* IND ref $307
N001 ( 1, 1) [000307] ------------ \--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
------------ BB15 [08E..08F), preds={BB09} succs={BB16}
***** BB15, stmt 41
( 16, 10) [000305] ------------ * STMT void (IL 0x08E... ???)
N008 ( 16, 10) [000303] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult $VN.Void
N004 ( 1, 1) [000302] ------------ this in rcx +--* LCL_VAR byref V16 tmp10 u:3 (last use) $28c
N005 ( 1, 1) [000059] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) <l:$249, c:$206>
------------ BB16 [09A..09B) (return), preds={BB04,BB17,BB14,BB15} succs={}
***** BB16, stmt 42
( 0, 0) [000065] ------------ * STMT void (IL 0x09A...0x09A)
N001 ( 0, 0) [000064] ------------ \--* RETURN void $402
------------ BB17 [06D..086) -> BB16 (cret), preds={} succs={BB16}
***** BB17, stmt 43
( 5, 4) [000127] ------------ * STMT void (IL 0x06D...0x06D)
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref $363
N003 ( 5, 4) [000126] -A---O--R--- \--* ASG ref $363
N002 ( 3, 2) [000125] D------N---- \--* LCL_VAR ref V08 tmp2 d:3 $363
***** BB17, stmt 44
( 5, 4) [000136] ------------ * STMT void (IL 0x06F...0x072)
N003 ( 1, 1) [000133] ------------ | /--* CNS_INT int -2 $53
N004 ( 5, 4) [000135] -A-XG------- \--* ASG int $VN.Void
N002 ( 3, 2) [000134] *--XG--N---- \--* IND int $53
N001 ( 1, 1) [000132] ------------ \--* LCL_VAR byref V00 this u:2 $80
***** BB17, stmt 45
( 22, 15) [000143] ------------ * STMT void (IL 0x077...0x084)
N013 ( 22, 15) [000141] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetException $VN.Void
N007 ( 1, 1) [000587] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] $142
N008 ( 3, 3) [000588] ------------ | /--* ADD byref $28c
N006 ( 1, 1) [000586] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) $80
N009 ( 5, 5) [000589] ---XG--N---- this in rcx +--* COMMA byref $294
N005 ( 2, 2) [000585] ---X---N---- | \--* NULLCHECK byte $4e3
N004 ( 1, 1) [000584] ------------ | \--* LCL_VAR byref V00 this u:2 $80
N010 ( 3, 2) [000140] ------------ arg1 in rdx \--* LCL_VAR ref V08 tmp2 u:3 (last use) $363
-------------------------------------------------------------------------------------------------------------------
ArrSize for lengthVN:640 = 0
[RangeCheck::GetRange] BB12N020 ( 1, 1) [000652] ------------ /--* LCL_VAR int V37 cse0 <l:$255, c:$254>
N021 ( 4, 4) [000653] -A---------- * COMMA int <l:$255, c:$254>
N016 ( 1, 1) [000407] ------------ | /--* CNS_INT int 1 $55
N017 ( 3, 3) [000408] ------------ | /--* ADD int <l:$255, c:$254>
N015 ( 1, 1) [000406] ------------ | | \--* LCL_VAR int V20 tmp14 u:3 <l:$249, c:$206>
N019 ( 3, 3) [000651] -A------R--- \--* ASG int $VN.Void
N018 ( 1, 1) [000650] D------N---- \--* LCL_VAR int V37 cse0 <l:$255, c:$254>
{
Computed Range [000653] => <Unknown, Unknown>
}
*************** In fgDetermineFirstColdBlock()
No procedure splitting will be done for this method
*************** In IR Rationalize
Trees before IR Rationalize
--------------------------------------------------------------------------------------------------------------------------------------
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)-> BB05 ( cond ) T0 try { keep i try label
BB03 [0002] 1 0 BB02 1 [00A..027)-> BB06 ( cond ) T0 i gcsafe
BB04 [0003] 1 0 BB03 1 [027..047)-> BB16 (always) T0 i gcsafe
BB05 [0004] 1 0 BB02 1 [047..063) T0 i label target
BB06 [0005] 2 0 BB03,BB05 1 [063..06D)-> BB08 ( cond ) T0 i label target
BB07 [0018] 1 0 BB06 0.50 [063..064) T0 i gcsafe
BB08 [0019] 2 0 BB06,BB07 1 [063..064) T0 } i label target
BB09 [0007] 1 BB08 1 [086..09A)-> BB15 ( cond ) i label target
BB10 [0024] 1 BB09 0.50 [08E..08F)-> BB13 ( cond ) i newobj
BB11 [0035] 1 BB10 0.50 [08E..08F)-> BB13 ( cond ) i
BB12 [0036] 1 BB11 1 [08E..08F)-> BB14 (always) i
BB13 [0060] 2 BB10,BB11 1 [08E..08F) i label target newobj
BB14 [0061] 2 BB12,BB13 1 [???..???)-> BB16 (always) internal label target
BB15 [0025] 1 BB09 1 [08E..08F) i label target gcsafe
BB16 [0026] 4 BB04,BB17,BB14,BB15 1 [09A..09B) (return) i label target
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow
BB17 [0006] 1 0 0 [06D..086)-> BB16 ( 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 <l:$1c0, c:$200>
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 $80
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int <l:$1c0, c:$200>
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 <l:$1c0, c:$200>
------------ BB02 [007..00A) -> BB05 (cond), preds={BB01} succs={BB03,BB05}
***** 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 $40
N003 ( 3, 3) [000011] J------N---- \--* EQ int <l:$241, c:$240>
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) <l:$1c0, c:$200>
------------ BB03 [00A..027) -> BB06 (cond), preds={BB02} succs={BB04,BB06}
***** BB03, stmt 3
( 14, 5) [000167] ------------ * STMT void (IL ???... ???)
N001 ( 14, 5) [000067] --CXG------- | /--* CALL ref Program.Task2 $343
N003 ( 14, 5) [000166] -ACXG---R--- \--* ASG ref $343
N002 ( 1, 1) [000165] D------N---- \--* LCL_VAR ref V09 tmp3 d:3 $343
***** BB03, stmt 4
( 3, 2) [000168] ------------ * STMT void (IL ???... ???)
N002 ( 3, 2) [000164] ---X-------- \--* IND int $202
N001 ( 1, 1) [000163] ------------ \--* LCL_VAR ref V09 tmp3 u:3 $343
***** BB03, stmt 5
( 5, 4) [000152] ------------ * STMT void (IL ???... ???)
N001 ( 1, 1) [000150] ------------ | /--* CNS_INT int 0 $40
N003 ( 5, 4) [000151] IA------R--- \--* ASG struct (init) $VN.Void
N002 ( 3, 2) [000149] D------N---- \--* LCL_VAR struct(AX) V10 tmp4
***** B
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment