Created
June 23, 2018 05:46
-
-
Save benaadams/4820895dda5234a097903bd14a4c535f to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
****** START compiling <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