Created
June 22, 2018 20:19
-
-
Save benaadams/8beb5dc3dc774614a6827b26ba6eabcb 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 <ValueTask1>d__1:MoveNext():this (MethodHash=87def557) | |
Generating code for Windows x64 | |
OPTIONS: compCodeOpt = BLENDED_CODE | |
OPTIONS: compDbgCode = false | |
OPTIONS: compDbgInfo = true | |
OPTIONS: compDbgEnC = false | |
OPTIONS: compProcedureSplitting = false | |
OPTIONS: compProcedureSplittingEH = false | |
OPTIONS: Stack probing is DISABLED | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 09 00 00 04 ldfld 0x4000009 | |
IL_0006 0a stloc.0 | |
IL_0007 06 ldloc.0 | |
IL_0008 2c 41 brfalse.s 65 (IL_004b) | |
IL_000a 28 03 00 00 06 call 0x6000003 | |
IL_000f 0d stloc.3 | |
IL_0010 12 03 ldloca.s 0x3 | |
IL_0012 16 ldc.i4.0 | |
IL_0013 28 21 00 00 0a call 0xA000021 | |
IL_0018 13 04 stloc.s 0x4 | |
IL_001a 12 04 ldloca.s 0x4 | |
IL_001c 28 22 00 00 0a call 0xA000022 | |
IL_0021 0c stloc.2 | |
IL_0022 12 02 ldloca.s 0x2 | |
IL_0024 28 23 00 00 0a call 0xA000023 | |
IL_0029 2d 3c brtrue.s 60 (IL_0067) | |
IL_002b 02 ldarg.0 | |
IL_002c 16 ldc.i4.0 | |
IL_002d 25 dup | |
IL_002e 0a stloc.0 | |
IL_002f 7d 09 00 00 04 stfld 0x4000009 | |
IL_0034 02 ldarg.0 | |
IL_0035 08 ldloc.2 | |
IL_0036 7d 0b 00 00 04 stfld 0x400000B | |
IL_003b 02 ldarg.0 | |
IL_003c 7c 0a 00 00 04 ldflda 0x400000A | |
IL_0041 12 02 ldloca.s 0x2 | |
IL_0043 02 ldarg.0 | |
IL_0044 28 04 00 00 2b call 0x2B000004 | |
IL_0049 de 53 leave.s 83 (IL_009e) | |
IL_004b 02 ldarg.0 | |
IL_004c 7b 0b 00 00 04 ldfld 0x400000B | |
IL_0051 0c stloc.2 | |
IL_0052 02 ldarg.0 | |
IL_0053 7c 0b 00 00 04 ldflda 0x400000B | |
IL_0058 fe 15 08 00 00 1b initobj 0x1B000008 | |
IL_005e 02 ldarg.0 | |
IL_005f 15 ldc.i4.m1 | |
IL_0060 25 dup | |
IL_0061 0a stloc.0 | |
IL_0062 7d 09 00 00 04 stfld 0x4000009 | |
IL_0067 12 02 ldloca.s 0x2 | |
IL_0069 28 25 00 00 0a call 0xA000025 | |
IL_006e 0b stloc.1 | |
IL_006f de 19 leave.s 25 (IL_008a) | |
IL_0071 13 05 stloc.s 0x5 | |
IL_0073 02 ldarg.0 | |
IL_0074 1f fe ldc.i4.s 0xFFFFFFFE | |
IL_0076 7d 09 00 00 04 stfld 0x4000009 | |
IL_007b 02 ldarg.0 | |
IL_007c 7c 0a 00 00 04 ldflda 0x400000A | |
IL_0081 11 05 ldloc.s 0x5 | |
IL_0083 28 26 00 00 0a call 0xA000026 | |
IL_0088 de 14 leave.s 20 (IL_009e) | |
IL_008a 02 ldarg.0 | |
IL_008b 1f fe ldc.i4.s 0xFFFFFFFE | |
IL_008d 7d 09 00 00 04 stfld 0x4000009 | |
IL_0092 02 ldarg.0 | |
IL_0093 7c 0a 00 00 04 ldflda 0x400000A | |
IL_0098 07 ldloc.1 | |
IL_0099 28 27 00 00 0a call 0xA000027 | |
IL_009e 2a ret | |
Set preferred register for V00 to [rcx] | |
'this' passed in register rcx | |
lvaSetClass: setting class for V06 to (00007FFC6B4AA6B0) Exception | |
lvaGrabTemp returning 7 (V07 tmp0) (a long lifetime temp) called for OutgoingArgSpace. | |
; Initial local variable assignments | |
; | |
; V00 this byref this | |
; V01 loc0 int | |
; V02 loc1 int | |
; V03 loc2 struct (16) | |
; V04 loc3 struct (16) | |
; V05 loc4 struct (16) | |
; V06 loc5 ref class-hnd | |
; V07 OutArgs lclBlk (na) | |
*************** In compInitDebuggingInfo() for <ValueTask1>d__1:MoveNext():this | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 7 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 this 000h 09Fh | |
1: 01h 01h V01 loc0 000h 09Fh | |
2: 02h 02h V02 loc1 000h 09Fh | |
3: 03h 03h V03 loc2 000h 09Fh | |
4: 04h 04h V04 loc3 000h 09Fh | |
5: 05h 05h V05 loc4 000h 09Fh | |
6: 06h 06h V06 loc5 000h 09Fh | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for <ValueTask1>d__1:MoveNext():this | |
Jump targets: | |
IL_0007 addr | |
IL_004b | |
IL_0067 | |
IL_0071 addr | |
IL_008a | |
IL_009e multi | |
New Basic Block BB01 [0000] created. | |
BB01 [000..007) | |
New Basic Block BB02 [0001] created. | |
BB02 [007..00A) | |
New Basic Block BB03 [0002] created. | |
BB03 [00A..02B) | |
New Basic Block BB04 [0003] created. | |
BB04 [02B..04B) | |
New Basic Block BB05 [0004] created. | |
BB05 [04B..067) | |
New Basic Block BB06 [0005] created. | |
BB06 [067..071) | |
New Basic Block BB07 [0006] created. | |
BB07 [071..08A) | |
New Basic Block BB08 [0007] created. | |
BB08 [08A..09E) | |
New Basic Block BB09 [0008] created. | |
BB09 [09E..09F) | |
EH clause #0: | |
Flags: 0x0 (catch) | |
TryOffset: 0x7 | |
TryLength: 0x6a | |
HandlerOffset: 0x71 | |
HandlerLength: 0x19 | |
ClassToken: 0x1000018 | |
*************** After fgFindBasicBlocks() has created the EH table | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
*************** In fgNormalizeEH() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 } | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) | |
BB09 [0008] 3 1 [09E..09F) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
No EH normalization performed. | |
IL Code Size,Instr 159, 63, Basic Block count 9, Local Variable Num,Ref count 8, 30 for method <ValueTask1>d__1:MoveNext():this | |
OPTIONS: opts.MinOpts() == false | |
Basic block list for '<ValueTask1>d__1:MoveNext():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 } | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) | |
BB09 [0008] 3 1 [09E..09F) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for <ValueTask1>d__1:MoveNext():this | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 04000009 | |
[ 1] 6 (0x006) stloc.0 | |
[000005] ------------ * STMT void (IL 0x000... ???) | |
[000002] ---XG------- | /--* FIELD int <>1__state | |
[000001] ------------ | | \--* LCL_VAR byref V00 this | |
[000004] -A-XG------- \--* ASG int | |
[000003] D------N---- \--* LCL_VAR int V01 loc0 | |
impImportBlockPending for BB02 | |
impImportBlockPending for BB07 | |
Importing BB02 (PC=007) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 7 (0x007) ldloc.0 | |
[ 1] 8 (0x008) brfalse.s | |
[000013] ------------ * STMT void (IL 0x007... ???) | |
[000012] ------------ \--* JTRUE void | |
[000010] ------------ | /--* CNS_INT int 0 | |
[000011] ------------ \--* EQ int | |
[000009] ------------ \--* LCL_VAR int V01 loc0 | |
impImportBlockPending for BB03 | |
impImportBlockPending for BB05 | |
Importing BB05 (PC=075) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 75 (0x04b) ldarg.0 | |
[ 1] 76 (0x04c) ldfld 0400000B | |
[ 1] 81 (0x051) stloc.2 | |
[000020] ------------ * STMT void (IL 0x04B... ???) | |
[000016] ---XG------- | /--* FIELD struct <>u__1 | |
[000015] ------------ | | \--* LCL_VAR byref V00 this | |
[000019] -A-XG---R--- \--* ASG struct (copy) | |
[000017] D----------- \--* LCL_VAR struct V03 loc2 | |
[ 0] 82 (0x052) ldarg.0 | |
[ 1] 83 (0x053) ldflda 0400000B | |
[ 1] 88 (0x058) initobj 1B000008 | |
[000027] ------------ * STMT void (IL 0x052... ???) | |
[000024] ------------ | /--* CNS_INT int 0 | |
[000026] IA-XG---R--- \--* ASG struct (init) | |
[000025] ---XG--N---- \--* BLK(16) struct | |
[000023] ---XG------- \--* ADDR byref | |
[000022] ---XG------- \--* FIELD struct <>u__1 | |
[000021] ------------ \--* LCL_VAR byref V00 this | |
[ 0] 94 (0x05e) ldarg.0 | |
[ 1] 95 (0x05f) ldc.i4.m1 -1 | |
[ 2] 96 (0x060) dup | |
lvaGrabTemp returning 8 (V08 tmp1) called for dup spill. | |
[000032] ------------ * STMT void (IL 0x05E... ???) | |
[000029] ------------ | /--* CNS_INT int -1 | |
[000031] -A---------- \--* ASG int | |
[000030] D------N---- \--* LCL_VAR int V08 tmp1 | |
[ 3] 97 (0x061) stloc.0 | |
[000037] ------------ * STMT void (IL ???... ???) | |
[000034] ------------ | /--* LCL_VAR int V08 tmp1 | |
[000036] -A---------- \--* ASG int | |
[000035] D------N---- \--* LCL_VAR int V01 loc0 | |
[ 2] 98 (0x062) stfld 04000009 | |
[000040] ------------ * STMT void (IL ???... ???) | |
[000033] ------------ | /--* LCL_VAR int V08 tmp1 | |
[000039] -A-XG------- \--* ASG int | |
[000038] ---XG--N---- \--* FIELD int <>1__state | |
[000028] ------------ \--* LCL_VAR byref V00 this | |
impImportBlockPending for BB06 | |
Importing BB06 (PC=103) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 103 (0x067) ldloca.s 2 | |
[ 1] 105 (0x069) call 0A000025 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
[000045] ------------ * STMT void (IL 0x067... ???) | |
[000044] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.GetResult (exactContextHnd=0x00007FFC6B4B74F9) | |
[000043] L----------- this in rcx \--* ADDR byref | |
[000042] ------------ \--* LCL_VAR struct V03 loc2 | |
[ 1] 110 (0x06e) stloc.1 | |
[000049] ------------ * STMT void (IL ???... ???) | |
[000046] --C--------- | /--* RET_EXPR int (inl return from call [000044]) | |
[000048] -AC--------- \--* ASG int | |
[000047] D------N---- \--* LCL_VAR int V02 loc1 | |
[ 0] 111 (0x06f) leave.s 008A | |
Before import CEE_LEAVE in BB06 (targetting BB08): | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (leave ) T0 } | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) | |
BB09 [0008] 3 1 [09E..09F) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportLeave - no enclosing finally-protected try blocks or catch handlers; convert CEE_LEAVE block BB06 to BBJ_ALWAYS | |
After import CEE_LEAVE: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) | |
BB09 [0008] 3 1 [09E..09F) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportBlockPending for BB08 | |
Importing BB08 (PC=138) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 138 (0x08a) ldarg.0 | |
[ 1] 139 (0x08b) ldc.i4.s -2 | |
[ 2] 141 (0x08d) stfld 04000009 | |
[000055] ------------ * STMT void (IL 0x08A... ???) | |
[000052] ------------ | /--* CNS_INT int -2 | |
[000054] -A-XG------- \--* ASG int | |
[000053] ---XG--N---- \--* FIELD int <>1__state | |
[000051] ------------ \--* LCL_VAR byref V00 this | |
[ 0] 146 (0x092) ldarg.0 | |
[ 1] 147 (0x093) ldflda 0400000A | |
[ 1] 152 (0x098) ldloc.1 | |
[ 2] 153 (0x099) call 0A000027 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000060] | |
[000062] ------------ * STMT void (IL 0x092... ???) | |
[000060] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B3469) | |
[000058] ---XG------- this in rcx +--* ADDR byref | |
[000057] ---XG------- | \--* FIELD struct <>t__builder | |
[000056] ------------ | \--* LCL_VAR byref V00 this | |
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
impImportBlockPending for BB09 | |
Importing BB09 (PC=158) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 158 (0x09e) ret | |
[000065] ------------ * STMT void (IL 0x09E... ???) | |
[000064] ------------ \--* RETURN void | |
Importing BB03 (PC=010) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 10 (0x00a) call 06000003 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
[000068] ------------ * STMT void (IL 0x00A... ???) | |
[000067] I-C-G------- \--* CALL struct Program.ValueTask2 (exactContextHnd=0x00007FFC0D5C5491) | |
[ 1] 15 (0x00f) stloc.3 | |
[000073] ------------ * STMT void (IL ???... ???) | |
[000069] --C--------- \--* RET_EXPR void (inl return from call [000067]) | |
[ 0] 16 (0x010) ldloca.s 3 | |
[ 1] 18 (0x012) ldc.i4.0 0 | |
[ 2] 19 (0x013) call 0A000021 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
[000079] ------------ * STMT void (IL 0x010... ???) | |
[000077] I-C-G------- \--* CALL struct ValueTask`1.ConfigureAwait (exactContextHnd=0x00007FFC6B4C3B09) | |
[000075] L----------- this in rcx +--* ADDR byref | |
[000074] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000076] ------------ arg1 \--* CNS_INT int 0 | |
[ 1] 24 (0x018) stloc.s 4 | |
[000084] ------------ * STMT void (IL ???... ???) | |
[000080] --C--------- \--* RET_EXPR void (inl return from call [000077]) | |
[ 0] 26 (0x01a) ldloca.s 4 | |
[ 1] 28 (0x01c) call 0A000022 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is struct, structSize is 16 | |
[000088] ------------ * STMT void (IL 0x01A... ???) | |
[000087] I-C-G------- \--* CALL struct ConfiguredValueTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC6B4E2569) | |
[000086] L----------- this in rcx \--* ADDR byref | |
[000085] ------------ \--* LCL_VAR struct V05 loc4 | |
[ 1] 33 (0x021) stloc.2 | |
[000093] ------------ * STMT void (IL ???... ???) | |
[000089] --C--------- \--* RET_EXPR void (inl return from call [000087]) | |
[ 0] 34 (0x022) ldloca.s 2 | |
[ 1] 36 (0x024) call 0A000023 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 | |
[000097] ------------ * STMT void (IL 0x022... ???) | |
[000096] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC6B4B74F9) | |
[000095] L----------- this in rcx \--* ADDR byref | |
[000094] ------------ \--* LCL_VAR struct V03 loc2 | |
[ 1] 41 (0x029) brtrue.s | |
[000102] ------------ * STMT void (IL ???... ???) | |
[000101] --C--------- \--* JTRUE void | |
[000099] ------------ | /--* CNS_INT int 0 | |
[000100] --C--------- \--* NE int | |
[000098] --C--------- \--* RET_EXPR int (inl return from call [000096]) | |
impImportBlockPending for BB04 | |
impImportBlockPending for BB06 | |
Importing BB04 (PC=043) of '<ValueTask1>d__1:MoveNext():this' | |
[ 0] 43 (0x02b) ldarg.0 | |
[ 1] 44 (0x02c) ldc.i4.0 0 | |
[ 2] 45 (0x02d) dup | |
[ 3] 46 (0x02e) stloc.0 | |
[000109] ------------ * STMT void (IL 0x02B... ???) | |
[000106] ------------ | /--* CNS_INT int 0 | |
[000108] -A---------- \--* ASG int | |
[000107] D------N---- \--* LCL_VAR int V01 loc0 | |
[ 2] 47 (0x02f) stfld 04000009 | |
[000112] ------------ * STMT void (IL ???... ???) | |
[000105] ------------ | /--* CNS_INT int 0 | |
[000111] -A-XG------- \--* ASG int | |
[000110] ---XG--N---- \--* FIELD int <>1__state | |
[000104] ------------ \--* LCL_VAR byref V00 this | |
[ 0] 52 (0x034) ldarg.0 | |
[ 1] 53 (0x035) ldloc.2 | |
[ 2] 54 (0x036) stfld 0400000B | |
[000119] ------------ * STMT void (IL 0x034... ???) | |
[000114] ------------ | /--* LCL_VAR struct V03 loc2 | |
[000118] -A-XG---R--- \--* ASG struct (copy) | |
[000117] ---XG------- \--* OBJ(16) struct | |
[000116] ---XG------- \--* ADDR byref | |
[000115] ---XG------- \--* FIELD struct <>u__1 | |
[000113] ------------ \--* LCL_VAR byref V00 this | |
[ 0] 59 (0x03b) ldarg.0 | |
[ 1] 60 (0x03c) ldflda 0400000A | |
[ 1] 65 (0x041) ldloca.s 2 | |
[ 2] 67 (0x043) ldarg.0 | |
[ 3] 68 (0x044) call 2B000004 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000129] ------------ * STMT void (IL 0x03B... ???) | |
[000126] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted (exactContextHnd=0x00007FFC0D5C6140) | |
[000122] ---XG------- this in rcx +--* ADDR byref | |
[000121] ---XG------- | \--* FIELD struct <>t__builder | |
[000120] ------------ | \--* LCL_VAR byref V00 this | |
[000124] L----------- arg1 +--* ADDR byref | |
[000123] ------------ | \--* LCL_VAR struct V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
[ 0] 73 (0x049) leave.s 009E | |
Before import CEE_LEAVE in BB04 (targetting BB09): | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (leave ) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportLeave - no enclosing finally-protected try blocks or catch handlers; convert CEE_LEAVE block BB04 to BBJ_ALWAYS | |
After import CEE_LEAVE: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportBlockPending for BB09 | |
Importing BB07 (PC=113) of '<ValueTask1>d__1:MoveNext():this' | |
lvaGrabTemp returning 9 (V09 tmp2) called for impSpillSpecialSideEff. | |
[000133] ------------ * STMT void (IL 0x071... ???) | |
[000007] -----O------ | /--* CATCH_ARG ref | |
[000132] -A---O------ \--* ASG ref | |
[000131] D------N---- \--* LCL_VAR ref V09 tmp2 | |
lvaSetClass: setting class for V09 to (00007FFC6B4AA6B0) Exception | |
[ 1] 113 (0x071) stloc.s 5 | |
[000137] ------------ * STMT void (IL ???... ???) | |
[000134] ------------ | /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---------- \--* ASG ref | |
[000135] D------N---- \--* LCL_VAR ref V06 loc5 | |
[ 0] 115 (0x073) ldarg.0 | |
[ 1] 116 (0x074) ldc.i4.s -2 | |
[ 2] 118 (0x076) stfld 04000009 | |
[000142] ------------ * STMT void (IL 0x073... ???) | |
[000139] ------------ | /--* CNS_INT int -2 | |
[000141] -A-XG------- \--* ASG int | |
[000140] ---XG--N---- \--* FIELD int <>1__state | |
[000138] ------------ \--* LCL_VAR byref V00 this | |
[ 0] 123 (0x07b) ldarg.0 | |
[ 1] 124 (0x07c) ldflda 0400000A | |
[ 1] 129 (0x081) ldloc.s 5 | |
[ 2] 131 (0x083) call 0A000026 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
Will not inline blocks that are in the catch handler region | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'within catch region' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:SetException(ref):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'within catch region' | |
[000149] ------------ * STMT void (IL 0x07B... ???) | |
[000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000145] ---XG------- this in rcx +--* ADDR byref | |
[000144] ---XG------- | \--* FIELD struct <>t__builder | |
[000143] ------------ | \--* LCL_VAR byref V00 this | |
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5 | |
[ 0] 136 (0x088) leave.s 009E | |
Before import CEE_LEAVE in BB07 (targetting BB09): | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 (leave ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportLeave - jumping out of a catch (EH#0), convert block BB07 to BBJ_EHCATCHRET block | |
impImportLeave - final destination of step blocks set to BB09 | |
impImportBlockPending for BB09 | |
After import CEE_LEAVE: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB06 [007..071), Handler at BB07..BB07 [071..08A) | |
impImportBlockPending for BB09 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071)-> BB08 (always) T0 } i | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
New BlockSet epoch 1, # of blocks (including unused BB00): 10, bitset array size: 1 (short) | |
*************** In fgMorph() | |
*************** In fgDebugCheckBBlist | |
*************** In fgInline() | |
Expanding INLINE_CANDIDATE in statement [000068] in BB03: | |
[000068] ------------ * STMT void (IL 0x00A...0x00F) | |
[000067] I-C-G------- \--* CALL void Program.ValueTask2 (exactContextHnd=0x00007FFC0D5C5491) | |
[000071] L----------- arg0 \--* ADDR byref | |
[000070] ------------ \--* LCL_VAR struct V04 loc3 | |
INLINER: inlineInfo.tokenLookupContextHandle for Program:ValueTask2():struct set to 0x00007FFC0D5C5491: | |
Invoking compiler for the inlinee method Program:ValueTask2():struct : | |
IL to import: | |
IL_0000 17 ldc.i4.1 | |
IL_0001 73 16 00 00 0a newobj 0xA000016 | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for Program:ValueTask2():struct is 0x00007FFC0D5C5491. | |
*************** In fgFindBasicBlocks() for Program:ValueTask2():struct | |
Jump targets: | |
none | |
New Basic Block BB10 [0009] created. | |
BB10 [000..007) | |
Basic block list for 'Program:ValueTask2():struct' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB10 [0009] 1 1 [000..007) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Program:ValueTask2():struct | |
impImportBlockPending for BB10 | |
Importing BB10 (PC=000) of 'Program:ValueTask2():struct' | |
[ 0] 0 (0x000) ldc.i4.1 1 | |
[ 1] 1 (0x001) newobj | |
lvaGrabTemp returning 10 (V10 tmp3) called for NewObj constructor temp. | |
[000155] ------------ * STMT void | |
[000153] ------------ | /--* CNS_INT int 0 | |
[000154] IA------R--- \--* ASG struct (init) | |
[000152] D------N---- \--* LCL_VAR struct V10 tmp3 | |
0A000016 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
[000160] ------------ * STMT void | |
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000157] L----------- this in rcx +--* ADDR byref | |
[000156] ------------ | \--* LCL_VAR struct V10 tmp3 | |
[000151] ------------ arg1 \--* CNS_INT int 1 | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000161] ------------ * LCL_VAR struct V10 tmp3 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB10 [0009] 1 1 [000..007) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000067] ----------- | |
Inlinee method body: | |
[000155] ------------ * STMT void (IL 0x00A... ???) | |
[000153] ------------ | /--* CNS_INT int 0 | |
[000154] IA------R--- \--* ASG struct (init) | |
[000152] D------N---- \--* LCL_VAR struct V10 tmp3 | |
[000160] ------------ * STMT void (IL 0x00A... ???) | |
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000157] L----------- this in rcx +--* ADDR byref | |
[000156] ------------ | \--* LCL_VAR struct V10 tmp3 | |
[000151] ------------ arg1 \--* CNS_INT int 1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000067] is | |
[000161] ------------ /--* LCL_VAR struct V10 tmp3 | |
[000164] -A------R--- * ASG struct (copy) | |
[000163] D----------- \--* LCL_VAR struct V04 loc3 | |
Successfully inlined Program:ValueTask2():struct (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Program:ValueTask2():struct' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000160] in BB03: | |
[000160] ------------ * STMT void (IL 0x00A... ???) | |
[000158] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000157] L----------- this in rcx +--* ADDR byref | |
[000156] ------------ | \--* LCL_VAR struct V10 tmp3 | |
[000151] ------------ arg1 \--* CNS_INT int 1 | |
thisArg: is a constant is byref to a struct local | |
[000157] L----------- * ADDR byref | |
[000156] ------------ \--* LCL_VAR struct V10 tmp3 | |
Argument #1: is a constant | |
[000151] ------------ * CNS_INT int 1 | |
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:.ctor(int):this set to 0x00007FFC6B4C3B09: | |
Invoking compiler for the inlinee method ValueTask`1:.ctor(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 01 09 00 0a stfld 0xA000901 | |
IL_0007 02 ldarg.0 | |
IL_0008 14 ldnull | |
IL_0009 7d 02 09 00 0a stfld 0xA000902 | |
IL_000e 02 ldarg.0 | |
IL_000f 17 ldc.i4.1 | |
IL_0010 7d 03 09 00 0a stfld 0xA000903 | |
IL_0015 02 ldarg.0 | |
IL_0016 16 ldc.i4.0 | |
IL_0017 7d 04 09 00 0a stfld 0xA000904 | |
IL_001c 2a ret | |
INLINER impTokenLookupContextHandle for ValueTask`1:.ctor(int):this is 0x00007FFC6B4C3B09. | |
*************** In fgFindBasicBlocks() for ValueTask`1:.ctor(int):this | |
Jump targets: | |
none | |
New Basic Block BB11 [0010] created. | |
BB11 [000..01D) | |
Basic block list for 'ValueTask`1:.ctor(int):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB11 [0010] 1 1 [000..01D) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ValueTask`1:.ctor(int):this | |
impImportBlockPending for BB11 | |
Importing BB11 (PC=000) of 'ValueTask`1:.ctor(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) stfld 0A000901 | |
[000172] ------------ * STMT void | |
[000169] ------------ | /--* CNS_INT int 1 | |
[000171] -A---------- \--* ASG int | |
[000170] -------N---- \--* FIELD int _result | |
[000167] L----------- \--* ADDR byref | |
[000168] ------------ \--* LCL_VAR struct V10 tmp3 | |
[ 0] 7 (0x007) ldarg.0 | |
[ 1] 8 (0x008) ldnull | |
[ 2] 9 (0x009) stfld 0A000902 | |
[000178] ------------ * STMT void | |
[000175] ------------ | /--* CNS_INT ref null | |
[000177] -A---------- \--* ASG ref | |
[000176] -------N---- \--* FIELD ref _obj | |
[000173] L----------- \--* ADDR byref | |
[000174] ------------ \--* LCL_VAR struct V10 tmp3 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldc.i4.1 1 | |
[ 2] 16 (0x010) stfld 0A000903 | |
[000184] ------------ * STMT void | |
[000181] ------------ | /--* CNS_INT int 1 | |
[000183] -A---------- \--* ASG bool | |
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000179] L----------- \--* ADDR byref | |
[000180] ------------ \--* LCL_VAR struct V10 tmp3 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldc.i4.0 0 | |
[ 2] 23 (0x017) stfld 0A000904 | |
[000190] ------------ * STMT void | |
[000187] ------------ | /--* CNS_INT int 0 | |
[000189] -A---------- \--* ASG short | |
[000188] -------N---- \--* FIELD short _token | |
[000185] L----------- \--* ADDR byref | |
[000186] ------------ \--* LCL_VAR struct V10 tmp3 | |
[ 0] 28 (0x01c) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB11 [0010] 1 1 [000..01D) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000158] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000172] ------------ * STMT void (IL 0x00A... ???) | |
[000169] ------------ | /--* CNS_INT int 1 | |
[000171] -A---------- \--* ASG int | |
[000170] -------N---- \--* FIELD int _result | |
[000167] L----------- \--* ADDR byref | |
[000168] ------------ \--* LCL_VAR struct V10 tmp3 | |
[000178] ------------ * STMT void (IL 0x00A... ???) | |
[000175] ------------ | /--* CNS_INT ref null | |
[000177] -A---------- \--* ASG ref | |
[000176] -------N---- \--* FIELD ref _obj | |
[000173] L----------- \--* ADDR byref | |
[000174] ------------ \--* LCL_VAR struct V10 tmp3 | |
[000184] ------------ * STMT void (IL 0x00A... ???) | |
[000181] ------------ | /--* CNS_INT int 1 | |
[000183] -A---------- \--* ASG bool | |
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000179] L----------- \--* ADDR byref | |
[000180] ------------ \--* LCL_VAR struct V10 tmp3 | |
[000190] ------------ * STMT void (IL 0x00A... ???) | |
[000187] ------------ | /--* CNS_INT int 0 | |
[000189] -A---------- \--* ASG short | |
[000188] -------N---- \--* FIELD short _token | |
[000185] L----------- \--* ADDR byref | |
[000186] ------------ \--* LCL_VAR struct V10 tmp3 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined ValueTask`1:.ctor(int):this (29 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:.ctor(int):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000069] with [000164] | |
[000069] --C--------- * RET_EXPR void (inl return from call [000164]) | |
Inserting the inline return expression | |
[000161] ------------ /--* LCL_VAR struct V10 tmp3 | |
[000164] -A------R--- * ASG struct (copy) | |
[000163] D----------- \--* LCL_VAR struct V04 loc3 | |
Expanding INLINE_CANDIDATE in statement [000079] in BB03: | |
[000079] ------------ * STMT void (IL 0x010...0x018) | |
[000077] I-C-G------- \--* CALL void ValueTask`1.ConfigureAwait (exactContextHnd=0x00007FFC6B4C3B09) | |
[000075] L----------- this in rcx +--* ADDR byref | |
[000074] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000082] L----------- arg1 +--* ADDR byref | |
[000081] ------------ | \--* LCL_VAR struct V05 loc4 | |
[000076] ------------ arg2 \--* CNS_INT int 0 | |
thisArg: is a constant is byref to a struct local | |
[000075] L----------- * ADDR byref | |
[000074] ------------ \--* LCL_VAR struct V04 loc3 | |
Argument #1: is a constant | |
[000076] ------------ * CNS_INT int 0 | |
Folding operator with constant nodes into a constant: | |
[000192] ------------ * CAST int <- bool <- int | |
[000076] ------------ \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000192] ------------ * CNS_INT int 0 | |
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:ConfigureAwait(bool):struct:this set to 0x00007FFC6B4C3B09: | |
Invoking compiler for the inlinee method ValueTask`1:ConfigureAwait(bool):struct:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 02 09 00 0a ldfld 0xA000902 | |
IL_0006 02 ldarg.0 | |
IL_0007 7b 01 09 00 0a ldfld 0xA000901 | |
IL_000c 02 ldarg.0 | |
IL_000d 7b 04 09 00 0a ldfld 0xA000904 | |
IL_0012 03 ldarg.1 | |
IL_0013 73 10 09 00 0a newobj 0xA000910 | |
IL_0018 73 11 09 00 0a newobj 0xA000911 | |
IL_001d 2a ret | |
INLINER impTokenLookupContextHandle for ValueTask`1:ConfigureAwait(bool):struct:this is 0x00007FFC6B4C3B09. | |
*************** In fgFindBasicBlocks() for ValueTask`1:ConfigureAwait(bool):struct:this | |
Jump targets: | |
none | |
New Basic Block BB12 [0011] created. | |
BB12 [000..01E) | |
Basic block list for 'ValueTask`1:ConfigureAwait(bool):struct:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB12 [0011] 1 1 [000..01E) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ValueTask`1:ConfigureAwait(bool):struct:this | |
impImportBlockPending for BB12 | |
Importing BB12 (PC=000) of 'ValueTask`1:ConfigureAwait(bool):struct:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A000902 | |
[ 1] 6 (0x006) ldarg.0 | |
[ 2] 7 (0x007) ldfld 0A000901 | |
[ 2] 12 (0x00c) ldarg.0 | |
[ 3] 13 (0x00d) ldfld 0A000904 | |
[ 3] 18 (0x012) ldarg.1 | |
[ 4] 19 (0x013) newobj | |
lvaGrabTemp returning 11 (V11 tmp4) called for NewObj constructor temp. | |
[000207] ------------ * STMT void | |
[000205] ------------ | /--* CNS_INT int 0 | |
[000206] IA------R--- \--* ASG struct (init) | |
[000204] D------N---- \--* LCL_VAR struct V11 tmp4 | |
0A000910 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
[000215] ------------ * STMT void | |
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000209] L----------- this in rcx +--* ADDR byref | |
[000208] ------------ | \--* LCL_VAR struct V11 tmp4 | |
[000196] ------------ arg1 +--* FIELD ref _obj | |
[000194] L----------- | \--* ADDR byref | |
[000195] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000199] ------------ arg2 +--* FIELD int _result | |
[000197] L----------- | \--* ADDR byref | |
[000198] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000202] ------------ arg3 +--* FIELD short _token | |
[000200] L----------- | \--* ADDR byref | |
[000201] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000203] ------------ arg4 \--* CNS_INT int 0 | |
[ 1] 24 (0x018) newobj | |
lvaGrabTemp returning 12 (V12 tmp5) called for NewObj constructor temp. | |
[000220] ------------ * STMT void | |
[000218] ------------ | /--* CNS_INT int 0 | |
[000219] IA------R--- \--* ASG struct (init) | |
[000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
0A000911 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000216] ------------ * LCL_VAR struct V11 tmp4 | |
resulting tree: | |
[000225] x----------- * OBJ(16) struct | |
[000224] L----------- \--* ADDR byref | |
[000216] ------------ \--* LCL_VAR struct V11 tmp4 | |
[000227] ------------ * STMT void | |
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569) | |
[000222] L----------- this in rcx +--* ADDR byref | |
[000221] ------------ | \--* LCL_VAR struct V12 tmp5 | |
[000225] x----------- arg1 \--* OBJ(16) struct | |
[000224] L----------- \--* ADDR byref | |
[000216] ------------ \--* LCL_VAR struct V11 tmp4 | |
[ 1] 29 (0x01d) ret | |
Inlinee Return expression (before normalization) => | |
[000228] ------------ * LCL_VAR struct V12 tmp5 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB12 [0011] 1 1 [000..01E) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000077] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000207] ------------ * STMT void (IL 0x010... ???) | |
[000205] ------------ | /--* CNS_INT int 0 | |
[000206] IA------R--- \--* ASG struct (init) | |
[000204] D------N---- \--* LCL_VAR struct V11 tmp4 | |
[000215] ------------ * STMT void (IL 0x010... ???) | |
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000209] L----------- this in rcx +--* ADDR byref | |
[000208] ------------ | \--* LCL_VAR struct V11 tmp4 | |
[000196] ------------ arg1 +--* FIELD ref _obj | |
[000194] L----------- | \--* ADDR byref | |
[000195] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000199] ------------ arg2 +--* FIELD int _result | |
[000197] L----------- | \--* ADDR byref | |
[000198] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000202] ------------ arg3 +--* FIELD short _token | |
[000200] L----------- | \--* ADDR byref | |
[000201] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000203] ------------ arg4 \--* CNS_INT int 0 | |
[000220] ------------ * STMT void (IL 0x010... ???) | |
[000218] ------------ | /--* CNS_INT int 0 | |
[000219] IA------R--- \--* ASG struct (init) | |
[000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
[000227] ------------ * STMT void (IL 0x010... ???) | |
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569) | |
[000222] L----------- this in rcx +--* ADDR byref | |
[000221] ------------ | \--* LCL_VAR struct V12 tmp5 | |
[000225] x----------- arg1 \--* OBJ(16) struct | |
[000224] L----------- \--* ADDR byref | |
[000216] ------------ \--* LCL_VAR struct V11 tmp4 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000077] is | |
[000228] ------------ /--* LCL_VAR struct V12 tmp5 | |
[000231] -A------R--- * ASG struct (copy) | |
[000230] D----------- \--* LCL_VAR struct V05 loc4 | |
Successfully inlined ValueTask`1:ConfigureAwait(bool):struct:this (30 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:ConfigureAwait(bool):struct:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000215] in BB03: | |
[000215] ------------ * STMT void (IL 0x010... ???) | |
[000210] I-C-G------- \--* CALL void ValueTask`1..ctor (exactContextHnd=0x00007FFC6B4C3B09) | |
[000209] L----------- this in rcx +--* ADDR byref | |
[000208] ------------ | \--* LCL_VAR struct V11 tmp4 | |
[000196] ------------ arg1 +--* FIELD ref _obj | |
[000194] L----------- | \--* ADDR byref | |
[000195] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000199] ------------ arg2 +--* FIELD int _result | |
[000197] L----------- | \--* ADDR byref | |
[000198] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000202] ------------ arg3 +--* FIELD short _token | |
[000200] L----------- | \--* ADDR byref | |
[000201] ------------ | \--* LCL_VAR struct V04 loc3 | |
[000203] ------------ arg4 \--* CNS_INT int 0 | |
thisArg: is a constant is byref to a struct local | |
[000209] L----------- * ADDR byref | |
[000208] ------------ \--* LCL_VAR struct V11 tmp4 | |
Argument #1: has caller local ref | |
[000196] ------------ * FIELD ref _obj | |
[000194] L----------- \--* ADDR byref | |
[000195] ------------ \--* LCL_VAR struct V04 loc3 | |
Argument #2: has caller local ref | |
[000199] ------------ * FIELD int _result | |
[000197] L----------- \--* ADDR byref | |
[000198] ------------ \--* LCL_VAR struct V04 loc3 | |
Argument #3: has caller local ref | |
[000202] ------------ * FIELD short _token | |
[000200] L----------- \--* ADDR byref | |
[000201] ------------ \--* LCL_VAR struct V04 loc3 | |
Argument #4: is a constant | |
[000203] ------------ * CNS_INT int 0 | |
Folding operator with constant nodes into a constant: | |
[000233] ------------ * CAST int <- bool <- int | |
[000203] ------------ \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000233] ------------ * CNS_INT int 0 | |
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:.ctor(ref,int,short,bool):this set to 0x00007FFC6B4C3B09: | |
Invoking compiler for the inlinee method ValueTask`1:.ctor(ref,int,short,bool):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 02 09 00 0a stfld 0xA000902 | |
IL_0007 02 ldarg.0 | |
IL_0008 04 ldarg.2 | |
IL_0009 7d 01 09 00 0a stfld 0xA000901 | |
IL_000e 02 ldarg.0 | |
IL_000f 05 ldarg.3 | |
IL_0010 7d 04 09 00 0a stfld 0xA000904 | |
IL_0015 02 ldarg.0 | |
IL_0016 0e 04 ldarg.s 0x4 | |
IL_0018 7d 03 09 00 0a stfld 0xA000903 | |
IL_001d 2a ret | |
INLINER impTokenLookupContextHandle for ValueTask`1:.ctor(ref,int,short,bool):this is 0x00007FFC6B4C3B09. | |
*************** In fgFindBasicBlocks() for ValueTask`1:.ctor(ref,int,short,bool):this | |
Jump targets: | |
none | |
New Basic Block BB13 [0012] created. | |
BB13 [000..01E) | |
Basic block list for 'ValueTask`1:.ctor(ref,int,short,bool):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB13 [0012] 1 1 [000..01E) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ValueTask`1:.ctor(ref,int,short,bool):this | |
impImportBlockPending for BB13 | |
Importing BB13 (PC=000) of 'ValueTask`1:.ctor(ref,int,short,bool):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 13 (V13 tmp6) called for Inlining Arg. | |
lvaSetClass: setting class for V13 to (00007FFC6B4A7DB8) Object | |
[ 2] 2 (0x002) stfld 0A000902 | |
[000240] ------------ * STMT void | |
[000237] ------------ | /--* LCL_VAR ref V13 tmp6 | |
[000239] -A---------- \--* ASG ref | |
[000238] -------N---- \--* FIELD ref _obj | |
[000235] L----------- \--* ADDR byref | |
[000236] ------------ \--* LCL_VAR struct V11 tmp4 | |
[ 0] 7 (0x007) ldarg.0 | |
[ 1] 8 (0x008) ldarg.2 | |
lvaGrabTemp returning 14 (V14 tmp7) called for Inlining Arg. | |
[ 2] 9 (0x009) stfld 0A000901 | |
[000246] ------------ * STMT void | |
[000243] ------------ | /--* LCL_VAR int V14 tmp7 | |
[000245] -A---------- \--* ASG int | |
[000244] -------N---- \--* FIELD int _result | |
[000241] L----------- \--* ADDR byref | |
[000242] ------------ \--* LCL_VAR struct V11 tmp4 | |
[ 0] 14 (0x00e) ldarg.0 | |
[ 1] 15 (0x00f) ldarg.3 | |
lvaGrabTemp returning 15 (V15 tmp8) called for Inlining Arg. | |
[ 2] 16 (0x010) stfld 0A000904 | |
[000252] ------------ * STMT void | |
[000249] ------------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---------- \--* ASG short | |
[000250] -------N---- \--* FIELD short _token | |
[000247] L----------- \--* ADDR byref | |
[000248] ------------ \--* LCL_VAR struct V11 tmp4 | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldarg.s 4 | |
[ 2] 24 (0x018) stfld 0A000903 | |
[000258] ------------ * STMT void | |
[000255] ------------ | /--* CNS_INT int 0 | |
[000257] -A---------- \--* ASG bool | |
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000253] L----------- \--* ADDR byref | |
[000254] ------------ \--* LCL_VAR struct V11 tmp4 | |
[ 0] 29 (0x01d) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB13 [0012] 1 1 [000..01E) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000210] ----------- | |
Arguments setup: | |
[000261] ------------ * STMT void (IL 0x010... ???) | |
[000196] ------------ | /--* FIELD ref _obj | |
[000194] L----------- | | \--* ADDR byref | |
[000195] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000260] -A---------- \--* ASG ref | |
[000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
[000264] ------------ * STMT void (IL 0x010... ???) | |
[000199] ------------ | /--* FIELD int _result | |
[000197] L----------- | | \--* ADDR byref | |
[000198] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000263] -A---------- \--* ASG int | |
[000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
[000267] ------------ * STMT void (IL 0x010... ???) | |
[000202] ------------ | /--* FIELD short _token | |
[000200] L----------- | | \--* ADDR byref | |
[000201] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000266] -A---------- \--* ASG short | |
[000265] D------N---- \--* LCL_VAR short V15 tmp8 | |
Inlinee method body: | |
[000240] ------------ * STMT void (IL 0x010... ???) | |
[000237] ------------ | /--* LCL_VAR ref V13 tmp6 | |
[000239] -A---------- \--* ASG ref | |
[000238] -------N---- \--* FIELD ref _obj | |
[000235] L----------- \--* ADDR byref | |
[000236] ------------ \--* LCL_VAR struct V11 tmp4 | |
[000246] ------------ * STMT void (IL 0x010... ???) | |
[000243] ------------ | /--* LCL_VAR int V14 tmp7 | |
[000245] -A---------- \--* ASG int | |
[000244] -------N---- \--* FIELD int _result | |
[000241] L----------- \--* ADDR byref | |
[000242] ------------ \--* LCL_VAR struct V11 tmp4 | |
[000252] ------------ * STMT void (IL 0x010... ???) | |
[000249] ------------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---------- \--* ASG short | |
[000250] -------N---- \--* FIELD short _token | |
[000247] L----------- \--* ADDR byref | |
[000248] ------------ \--* LCL_VAR struct V11 tmp4 | |
[000258] ------------ * STMT void (IL 0x010... ???) | |
[000255] ------------ | /--* CNS_INT int 0 | |
[000257] -A---------- \--* ASG bool | |
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000253] L----------- \--* ADDR byref | |
[000254] ------------ \--* LCL_VAR struct V11 tmp4 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined ValueTask`1:.ctor(ref,int,short,bool):this (30 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:.ctor(ref,int,short,bool):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000227] in BB03: | |
[000227] ------------ * STMT void (IL 0x010... ???) | |
[000223] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1..ctor (exactContextHnd=0x00007FFC6B4E2569) | |
[000222] L----------- this in rcx +--* ADDR byref | |
[000221] ------------ | \--* LCL_VAR struct V12 tmp5 | |
[000225] x----------- arg1 \--* OBJ(16) struct | |
[000224] L----------- \--* ADDR byref | |
[000216] ------------ \--* LCL_VAR struct V11 tmp4 | |
thisArg: is a constant is byref to a struct local | |
[000222] L----------- * ADDR byref | |
[000221] ------------ \--* LCL_VAR struct V12 tmp5 | |
Argument #1: | |
[000225] x----------- * OBJ(16) struct | |
[000224] L----------- \--* ADDR byref | |
[000216] ------------ \--* LCL_VAR struct V11 tmp4 | |
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:.ctor(struct):this set to 0x00007FFC6B4E2569: | |
Invoking compiler for the inlinee method ConfiguredValueTaskAwaitable`1:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 2b 0c 00 0a stfld 0xA000C2B | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:.ctor(struct):this is 0x00007FFC6B4E2569. | |
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaitable`1:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB14 [0013] created. | |
BB14 [000..008) | |
Basic block list for 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB14 [0013] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ConfiguredValueTaskAwaitable`1:.ctor(struct):this | |
impImportBlockPending for BB14 | |
Importing BB14 (PC=000) of 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 16 (V16 tmp9) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 0A000C2B | |
[000277] ------------ * STMT void | |
[000272] ------------ | /--* LCL_VAR struct V16 tmp9 | |
[000276] -A------R--- \--* ASG struct (copy) | |
[000275] ------------ \--* OBJ(16) struct | |
[000274] ------------ \--* ADDR byref | |
[000273] ------------ \--* FIELD struct _value | |
[000270] L----------- \--* ADDR byref | |
[000271] ------------ \--* LCL_VAR struct V12 tmp5 | |
[ 0] 7 (0x007) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB14 [0013] 1 1 [000..008) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000223] ----------- | |
Arguments setup: | |
[000281] ------------ * STMT void (IL 0x010... ???) | |
[000225] x----------- | /--* OBJ(16) struct | |
[000224] L----------- | | \--* ADDR byref | |
[000216] ------------ | | \--* LCL_VAR struct V11 tmp4 | |
[000280] -A------R--- \--* ASG struct (copy) | |
[000278] D----------- \--* LCL_VAR struct V16 tmp9 | |
Inlinee method body: | |
[000277] ------------ * STMT void (IL 0x010... ???) | |
[000272] ------------ | /--* LCL_VAR struct V16 tmp9 | |
[000276] -A------R--- \--* ASG struct (copy) | |
[000275] ------------ \--* OBJ(16) struct | |
[000274] ------------ \--* ADDR byref | |
[000273] ------------ \--* FIELD struct _value | |
[000270] L----------- \--* ADDR byref | |
[000271] ------------ \--* LCL_VAR struct V12 tmp5 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined ConfiguredValueTaskAwaitable`1:.ctor(struct):this (8 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaitable`1:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000080] with [000231] | |
[000080] --C--------- * RET_EXPR void (inl return from call [000231]) | |
Inserting the inline return expression | |
[000228] ------------ /--* LCL_VAR struct V12 tmp5 | |
[000231] -A------R--- * ASG struct (copy) | |
[000230] D----------- \--* LCL_VAR struct V05 loc4 | |
Expanding INLINE_CANDIDATE in statement [000088] in BB03: | |
[000088] ------------ * STMT void (IL 0x01A...0x021) | |
[000087] I-C-G------- \--* CALL void ConfiguredValueTaskAwaitable`1.GetAwaiter (exactContextHnd=0x00007FFC6B4E2569) | |
[000086] L----------- this in rcx +--* ADDR byref | |
[000085] ------------ | \--* LCL_VAR struct V05 loc4 | |
[000091] L----------- arg1 \--* ADDR byref | |
[000090] ------------ \--* LCL_VAR struct V03 loc2 | |
thisArg: is a constant is byref to a struct local | |
[000086] L----------- * ADDR byref | |
[000085] ------------ \--* LCL_VAR struct V05 loc4 | |
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this set to 0x00007FFC6B4E2569: | |
Invoking compiler for the inlinee method ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 2b 0c 00 0a ldfld 0xA000C2B | |
IL_0006 73 2c 0c 00 0a newobj 0xA000C2C | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this is 0x00007FFC6B4E2569. | |
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this | |
Jump targets: | |
none | |
New Basic Block BB15 [0014] created. | |
BB15 [000..00C) | |
Basic block list for 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB15 [0014] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this | |
impImportBlockPending for BB15 | |
Importing BB15 (PC=000) of 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A000C2B | |
[ 1] 6 (0x006) newobj | |
lvaGrabTemp returning 17 (V17 tmp10) called for NewObj constructor temp. | |
[000290] ------------ * STMT void | |
[000288] ------------ | /--* CNS_INT int 0 | |
[000289] IA------R--- \--* ASG struct (init) | |
[000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
0A000C2C | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000286] ------------ * FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
resulting tree: | |
[000295] ---XG------- * OBJ(16) struct | |
[000294] ------------ \--* ADDR byref | |
[000286] ------------ \--* FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
[000297] ------------ * STMT void | |
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9) | |
[000292] L----------- this in rcx +--* ADDR byref | |
[000291] ------------ | \--* LCL_VAR struct V17 tmp10 | |
[000295] ---XG------- arg1 \--* OBJ(16) struct | |
[000294] ------------ \--* ADDR byref | |
[000286] ------------ \--* FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
[ 1] 11 (0x00b) ret | |
Inlinee Return expression (before normalization) => | |
[000298] ------------ * LCL_VAR struct V17 tmp10 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB15 [0014] 1 1 [000..00C) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000087] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000290] ------------ * STMT void (IL 0x01A... ???) | |
[000288] ------------ | /--* CNS_INT int 0 | |
[000289] IA------R--- \--* ASG struct (init) | |
[000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
[000297] ------------ * STMT void (IL 0x01A... ???) | |
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9) | |
[000292] L----------- this in rcx +--* ADDR byref | |
[000291] ------------ | \--* LCL_VAR struct V17 tmp10 | |
[000295] ---XG------- arg1 \--* OBJ(16) struct | |
[000294] ------------ \--* ADDR byref | |
[000286] ------------ \--* FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000087] is | |
[000298] ------------ /--* LCL_VAR struct V17 tmp10 | |
[000301] -A------R--- * ASG struct (copy) | |
[000300] D----------- \--* LCL_VAR struct V03 loc2 | |
Successfully inlined ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this (12 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000297] in BB03: | |
[000297] ------------ * STMT void (IL 0x01A... ???) | |
[000293] I-CXG------- \--* CALL void ConfiguredValueTaskAwaiter..ctor (exactContextHnd=0x00007FFC6B4B74F9) | |
[000292] L----------- this in rcx +--* ADDR byref | |
[000291] ------------ | \--* LCL_VAR struct V17 tmp10 | |
[000295] ---XG------- arg1 \--* OBJ(16) struct | |
[000294] ------------ \--* ADDR byref | |
[000286] ------------ \--* FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
thisArg: is a constant is byref to a struct local | |
[000292] L----------- * ADDR byref | |
[000291] ------------ \--* LCL_VAR struct V17 tmp10 | |
Argument #1: has global refs has caller local ref has side effects | |
[000295] ---XG------- * OBJ(16) struct | |
[000294] ------------ \--* ADDR byref | |
[000286] ------------ \--* FIELD struct _value | |
[000284] L----------- \--* ADDR byref | |
[000285] ------------ \--* LCL_VAR struct V05 loc4 | |
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:.ctor(struct):this set to 0x00007FFC6B4B74F9: | |
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 2d 0c 00 0a stfld 0xA000C2D | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:.ctor(struct):this is 0x00007FFC6B4B74F9. | |
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB16 [0015] created. | |
BB16 [000..008) | |
Basic block list for 'ConfiguredValueTaskAwaiter:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB16 [0015] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ConfiguredValueTaskAwaiter:.ctor(struct):this | |
impImportBlockPending for BB16 | |
Importing BB16 (PC=000) of 'ConfiguredValueTaskAwaiter:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 18 (V18 tmp11) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 0A000C2D | |
[000311] ------------ * STMT void | |
[000306] ------------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A------R--- \--* ASG struct (copy) | |
[000309] ------------ \--* OBJ(16) struct | |
[000308] ------------ \--* ADDR byref | |
[000307] ------------ \--* FIELD struct _value | |
[000304] L----------- \--* ADDR byref | |
[000305] ------------ \--* LCL_VAR struct V17 tmp10 | |
[ 0] 7 (0x007) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB16 [0015] 1 1 [000..008) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000293] ----------- | |
Arguments setup: | |
[000315] ------------ * STMT void (IL 0x01A... ???) | |
[000295] ---XG------- | /--* OBJ(16) struct | |
[000294] ------------ | | \--* ADDR byref | |
[000286] ------------ | | \--* FIELD struct _value | |
[000284] L----------- | | \--* ADDR byref | |
[000285] ------------ | | \--* LCL_VAR struct V05 loc4 | |
[000314] -A-XG---R--- \--* ASG struct (copy) | |
[000312] D----------- \--* LCL_VAR struct V18 tmp11 | |
Inlinee method body: | |
[000311] ------------ * STMT void (IL 0x01A... ???) | |
[000306] ------------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A------R--- \--* ASG struct (copy) | |
[000309] ------------ \--* OBJ(16) struct | |
[000308] ------------ \--* ADDR byref | |
[000307] ------------ \--* FIELD struct _value | |
[000304] L----------- \--* ADDR byref | |
[000305] ------------ \--* LCL_VAR struct V17 tmp10 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined ConfiguredValueTaskAwaiter:.ctor(struct):this (8 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000089] with [000301] | |
[000089] --C--------- * RET_EXPR void (inl return from call [000301]) | |
Inserting the inline return expression | |
[000298] ------------ /--* LCL_VAR struct V17 tmp10 | |
[000301] -A------R--- * ASG struct (copy) | |
[000300] D----------- \--* LCL_VAR struct V03 loc2 | |
Expanding INLINE_CANDIDATE in statement [000097] in BB03: | |
[000097] ------------ * STMT void (IL 0x022...0x029) | |
[000096] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.get_IsCompleted (exactContextHnd=0x00007FFC6B4B74F9) | |
[000095] L----------- this in rcx \--* ADDR byref | |
[000094] ------------ \--* LCL_VAR struct V03 loc2 | |
thisArg: is a constant is byref to a struct local | |
[000095] L----------- * ADDR byref | |
[000094] ------------ \--* LCL_VAR struct V03 loc2 | |
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this set to 0x00007FFC6B4B74F9: | |
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 2d 0c 00 0a ldflda 0xA000C2D | |
IL_0006 28 2e 0c 00 0a call 0xA000C2E | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this is 0x00007FFC6B4B74F9. | |
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this | |
Jump targets: | |
none | |
New Basic Block BB17 [0016] created. | |
BB17 [000..00C) | |
Basic block list for 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB17 [0016] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this | |
impImportBlockPending for BB17 | |
Importing BB17 (PC=000) of 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 0A000C2D | |
[ 1] 6 (0x006) call 0A000C2E | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 | |
[000323] ------------ * STMT void | |
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09) | |
[000321] ------------ this in rcx \--* ADDR byref | |
[000320] ------------ \--* FIELD struct _value | |
[000318] L----------- \--* ADDR byref | |
[000319] ------------ \--* LCL_VAR struct V03 loc2 | |
[ 1] 11 (0x00b) ret | |
Inlinee Return expression (before normalization) => | |
[000324] --C--------- * RET_EXPR int (inl return from call [000322]) | |
Inlinee Return expression (after normalization) => | |
[000325] --C--------- * CAST int <- bool <- int | |
[000324] --C--------- \--* RET_EXPR int (inl return from call [000322]) | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB17 [0016] 1 1 [000..00C) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000096] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000323] ------------ * STMT void (IL 0x022... ???) | |
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09) | |
[000321] ------------ this in rcx \--* ADDR byref | |
[000320] ------------ \--* FIELD struct _value | |
[000318] L----------- \--* ADDR byref | |
[000319] ------------ \--* LCL_VAR struct V03 loc2 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000096] is | |
[000325] --C--------- * CAST int <- bool <- int | |
[000324] --C--------- \--* RET_EXPR int (inl return from call [000322]) | |
Successfully inlined ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this (12 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000323] in BB03: | |
[000323] ------------ * STMT void (IL 0x022... ???) | |
[000322] I-C-G------- \--* CALL int ValueTask`1.get_IsCompleted (exactContextHnd=0x00007FFC6B4C3B09) | |
[000321] ------------ this in rcx \--* ADDR byref | |
[000320] ------------ \--* FIELD struct _value | |
[000318] L----------- \--* ADDR byref | |
[000319] ------------ \--* LCL_VAR struct V03 loc2 | |
thisArg: has caller local ref is byref to a struct local | |
[000321] ------------ * ADDR byref | |
[000320] ------------ \--* FIELD struct _value | |
[000318] L----------- \--* ADDR byref | |
[000319] ------------ \--* LCL_VAR struct V03 loc2 | |
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:get_IsCompleted():bool:this set to 0x00007FFC6B4C3B09: | |
Invoking compiler for the inlinee method ValueTask`1:get_IsCompleted():bool:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 02 09 00 0a ldfld 0xA000902 | |
IL_0006 0a stloc.0 | |
IL_0007 06 ldloc.0 | |
IL_0008 2d 02 brtrue.s 2 (IL_000c) | |
IL_000a 17 ldc.i4.1 | |
IL_000b 2a ret | |
IL_000c 06 ldloc.0 | |
IL_000d 75 ae 02 00 1b isinst 0x1B0002AE | |
IL_0012 25 dup | |
IL_0013 0b stloc.1 | |
IL_0014 2c 07 brfalse.s 7 (IL_001d) | |
IL_0016 07 ldloc.1 | |
IL_0017 6f e5 29 00 06 callvirt 0x60029E5 | |
IL_001c 2a ret | |
IL_001d 06 ldloc.0 | |
IL_001e 28 53 02 00 2b call 0x2B000253 | |
IL_0023 02 ldarg.0 | |
IL_0024 7b 04 09 00 0a ldfld 0xA000904 | |
IL_0029 6f 0a 09 00 0a callvirt 0xA00090A | |
IL_002e 16 ldc.i4.0 | |
IL_002f fe 03 cgt.un | |
IL_0031 2a ret | |
INLINER impTokenLookupContextHandle for ValueTask`1:get_IsCompleted():bool:this is 0x00007FFC6B4C3B09. | |
*************** In fgFindBasicBlocks() for ValueTask`1:get_IsCompleted():bool:this | |
Jump targets: | |
IL_000c | |
IL_001d | |
New Basic Block BB18 [0017] created. | |
BB18 [000..00A) | |
New Basic Block BB19 [0018] created. | |
BB19 [00A..00C) | |
New Basic Block BB20 [0019] created. | |
BB20 [00C..016) | |
New Basic Block BB21 [0020] created. | |
BB21 [016..01D) | |
New Basic Block BB22 [0021] created. | |
BB22 [01D..032) | |
lvaGrabTemp returning 19 (V19 tmp12) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'ValueTask`1:get_IsCompleted():bool:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB18 [0017] 1 1 [000..00A)-> BB20 ( cond ) | |
BB19 [0018] 1 1 [00A..00C) (return) | |
BB20 [0019] 1 1 [00C..016)-> BB22 ( cond ) | |
BB21 [0020] 1 1 [016..01D) (return) | |
BB22 [0021] 1 1 [01D..032) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ValueTask`1:get_IsCompleted():bool:this | |
impImportBlockPending for BB18 | |
Importing BB18 (PC=000) of 'ValueTask`1:get_IsCompleted():bool:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A000902 | |
[ 1] 6 (0x006) stloc.0 | |
lvaGrabTemp returning 20 (V20 tmp13) (a long lifetime temp) called for Inline stloc first use temp. | |
lvaSetClass: setting class for V20 to (00007FFC6B4A7DB8) Object | |
[000335] ------------ * STMT void | |
[000332] ----G------- | /--* FIELD ref _obj | |
[000328] ----G------- | | \--* ADDR byref | |
[000329] ----G------- | | \--* FIELD struct _value | |
[000330] L----------- | | \--* ADDR byref | |
[000331] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000334] -A--G------- \--* ASG ref | |
[000333] D------N---- \--* LCL_VAR ref V20 tmp13 | |
[ 0] 7 (0x007) ldloc.0 | |
[ 1] 8 (0x008) brtrue.s | |
[000340] ------------ * STMT void | |
[000339] ------------ \--* JTRUE void | |
[000337] ------------ | /--* CNS_INT ref null | |
[000338] ------------ \--* NE int | |
[000336] ------------ \--* LCL_VAR ref V20 tmp13 | |
impImportBlockPending for BB19 | |
impImportBlockPending for BB20 | |
Importing BB20 (PC=012) of 'ValueTask`1:get_IsCompleted():bool:this' | |
[ 0] 12 (0x00c) ldloc.0 | |
[ 1] 13 (0x00d) isinst 1B0002AE | |
Considering optimization of isinst from 00007FFC6B4A7DB8 (Object) to 00007FFC6B4AFBD8 (Task`1) | |
Can't optimize since fromClass is inexact | |
Expanding isinst as call because inline expansion not legal | |
[ 1] 18 (0x012) dup | |
lvaGrabTemp returning 21 (V21 tmp14) called for dup spill. | |
[000349] ------------ * STMT void | |
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13 | |
[000348] -AC-G------- \--* ASG ref | |
[000347] D------N---- \--* LCL_VAR ref V21 tmp14 | |
[ 2] 19 (0x013) stloc.1 | |
lvaGrabTemp returning 22 (V22 tmp15) (a long lifetime temp) called for Inline stloc first use temp. | |
lvaSetClass: setting class for V22 to (00007FFC6B4AFBD8) Task`1 | |
[000354] ------------ * STMT void | |
[000351] ------------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---------- \--* ASG ref | |
[000352] D------N---- \--* LCL_VAR ref V22 tmp15 | |
[ 1] 20 (0x014) brfalse.s | |
[000358] ------------ * STMT void | |
[000357] ------------ \--* JTRUE void | |
[000355] ------------ | /--* CNS_INT ref null | |
[000356] ------------ \--* EQ int | |
[000350] ------------ \--* LCL_VAR ref V21 tmp14 | |
impImportBlockPending for BB21 | |
impImportBlockPending for BB22 | |
Importing BB22 (PC=029) of 'ValueTask`1:get_IsCompleted():bool:this' | |
[ 0] 29 (0x01d) ldloc.0 | |
[ 1] 30 (0x01e) call 2B000253 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[000365] ------------ * STMT void | |
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13 | |
[ 1] 35 (0x023) ldarg.0 | |
[ 2] 36 (0x024) ldfld 0A000904 | |
[ 2] 41 (0x029) callvirt 0A00090A | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is int, structSize is 0 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is __Canon (attrib 20020000) | |
base method is IValueTaskSource`1::GetStatus | |
--- base class is interface | |
--- no derived method, sorry | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'ValueTask`1:get_IsCompleted():bool:this' calling 'IValueTaskSource`1:GetStatus(short):int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 46 (0x02e) ldc.i4.0 0 | |
[ 2] 47 (0x02f) cgt.un | |
[ 1] 49 (0x031) ret | |
Inlinee Return expression (before normalization) => | |
[000374] ------------ /--* CNS_INT int 0 | |
[000375] N-C-G----U-- * GT int | |
[000372] --C-G------- \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000366] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000361]) | |
[000371] ----G------- arg1 \--* FIELD short _token | |
[000367] ----G------- \--* ADDR byref | |
[000368] ----G------- \--* FIELD struct _value | |
[000369] L----------- \--* ADDR byref | |
[000370] ------------ \--* LCL_VAR struct V03 loc2 | |
[000378] ------------ * STMT void | |
[000374] ------------ | /--* CNS_INT int 0 | |
[000375] N-C-G----U-- | /--* GT int | |
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000366] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000361]) | |
[000371] ----G------- arg1 | | \--* FIELD short _token | |
[000367] ----G------- | | \--* ADDR byref | |
[000368] ----G------- | | \--* FIELD struct _value | |
[000369] L----------- | | \--* ADDR byref | |
[000370] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000377] -AC-G------- \--* ASG bool | |
[000376] D------N---- \--* LCL_VAR bool V19 tmp12 | |
Inlinee Return expression (after normalization) => | |
[000379] ------------ * LCL_VAR int V19 tmp12 | |
Importing BB21 (PC=022) of 'ValueTask`1:get_IsCompleted():bool:this' | |
[ 0] 22 (0x016) ldloc.1 | |
[ 1] 23 (0x017) callvirt 060029E5 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0 | |
[000383] ------------ * STMT void | |
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15 | |
[ 1] 28 (0x01c) ret | |
Inlinee Return expression (before normalization) => | |
[000384] --C--------- * RET_EXPR int (inl return from call [000382]) | |
[000388] ------------ * STMT void | |
[000385] --C--------- | /--* CAST int <- bool <- int | |
[000384] --C--------- | | \--* RET_EXPR int (inl return from call [000382]) | |
[000387] -AC--------- \--* ASG bool | |
[000386] D------N---- \--* LCL_VAR bool V19 tmp12 | |
Inlinee Return expression (after normalization) => | |
[000389] ------------ * LCL_VAR int V19 tmp12 | |
Importing BB19 (PC=010) of 'ValueTask`1:get_IsCompleted():bool:this' | |
[ 0] 10 (0x00a) ldc.i4.1 1 | |
[ 1] 11 (0x00b) ret | |
Inlinee Return expression (before normalization) => | |
[000391] ------------ * CNS_INT int 1 | |
[000395] ------------ * STMT void | |
[000392] ------------ | /--* CAST int <- bool <- int | |
[000391] ------------ | | \--* CNS_INT int 1 | |
[000394] -A---------- \--* ASG bool | |
[000393] D------N---- \--* LCL_VAR bool V19 tmp12 | |
Inlinee Return expression (after normalization) => | |
[000396] ------------ * LCL_VAR int V19 tmp12 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB18 [0017] 1 1 [000..00A)-> BB20 ( cond ) i | |
BB19 [0018] 1 1 [00A..00C) (return) i | |
BB20 [0019] 1 1 [00C..016)-> BB22 ( cond ) i | |
BB21 [0020] 1 1 [016..01D) (return) i | |
BB22 [0021] 1 1 [01D..032) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000322] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB23 [0022] created. | |
Convert bbJumpKind of BB19 to BBJ_ALWAYS to bottomBlock BB23 | |
Convert bbJumpKind of BB21 to BBJ_ALWAYS to bottomBlock BB23 | |
Convert bbJumpKind of BB22 to BBJ_NONE | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
[000400] ------------ * STMT void (IL 0x022... ???) | |
[000397] ------------ | /--* CNS_INT ref null | |
[000399] -A---------- \--* ASG ref | |
[000398] D------N---- \--* LCL_VAR ref V20 tmp13 | |
[000404] ------------ * STMT void (IL 0x022... ???) | |
[000401] ------------ | /--* CNS_INT ref null | |
[000403] -A---------- \--* ASG ref | |
[000402] D------N---- \--* LCL_VAR ref V22 tmp15 | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB18 [022..023) -> BB20 (cond), preds={} succs={BB19,BB20} | |
***** BB18, stmt 1 | |
[000335] ------------ * STMT void (IL 0x022... ???) | |
[000332] ----G------- | /--* FIELD ref _obj | |
[000328] ----G------- | | \--* ADDR byref | |
[000329] ----G------- | | \--* FIELD struct _value | |
[000330] L----------- | | \--* ADDR byref | |
[000331] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000334] -A--G------- \--* ASG ref | |
[000333] D------N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB18, stmt 2 | |
[000340] ------------ * STMT void (IL 0x022... ???) | |
[000339] ------------ \--* JTRUE void | |
[000337] ------------ | /--* CNS_INT ref null | |
[000338] ------------ \--* NE int | |
[000336] ------------ \--* LCL_VAR ref V20 tmp13 | |
------------ BB19 [022..023) -> BB23 (always), preds={} succs={BB23} | |
***** BB19, stmt 3 | |
[000395] ------------ * STMT void (IL 0x022... ???) | |
[000392] ------------ | /--* CAST int <- bool <- int | |
[000391] ------------ | | \--* CNS_INT int 1 | |
[000394] -A---------- \--* ASG bool | |
[000393] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------ BB20 [022..023) -> BB22 (cond), preds={} succs={BB21,BB22} | |
***** BB20, stmt 4 | |
[000349] ------------ * STMT void (IL 0x022... ???) | |
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13 | |
[000348] -AC-G------- \--* ASG ref | |
[000347] D------N---- \--* LCL_VAR ref V21 tmp14 | |
***** BB20, stmt 5 | |
[000354] ------------ * STMT void (IL 0x022... ???) | |
[000351] ------------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---------- \--* ASG ref | |
[000352] D------N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB20, stmt 6 | |
[000358] ------------ * STMT void (IL 0x022... ???) | |
[000357] ------------ \--* JTRUE void | |
[000355] ------------ | /--* CNS_INT ref null | |
[000356] ------------ \--* EQ int | |
[000350] ------------ \--* LCL_VAR ref V21 tmp14 | |
------------ BB21 [022..023) -> BB23 (always), preds={} succs={BB23} | |
***** BB21, stmt 7 | |
[000383] ------------ * STMT void (IL 0x022... ???) | |
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15 | |
***** BB21, stmt 8 | |
[000388] ------------ * STMT void (IL 0x022... ???) | |
[000385] --C--------- | /--* CAST int <- bool <- int | |
[000384] --C--------- | | \--* RET_EXPR int (inl return from call [000382]) | |
[000387] -AC--------- \--* ASG bool | |
[000386] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------ BB22 [022..023), preds={} succs={BB23} | |
***** BB22, stmt 9 | |
[000365] ------------ * STMT void (IL 0x022... ???) | |
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13 | |
***** BB22, stmt 10 | |
[000378] ------------ * STMT void (IL 0x022... ???) | |
[000374] ------------ | /--* CNS_INT int 0 | |
[000375] N-C-G----U-- | /--* GT int | |
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000366] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000361]) | |
[000371] ----G------- arg1 | | \--* FIELD short _token | |
[000367] ----G------- | | \--* ADDR byref | |
[000368] ----G------- | | \--* FIELD struct _value | |
[000369] L----------- | | \--* ADDR byref | |
[000370] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000377] -AC-G------- \--* ASG bool | |
[000376] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------------------------------------------------------------------------------------------------------------- | |
Return expression for call at [000322] is | |
[000396] ------------ * LCL_VAR int V19 tmp12 | |
Successfully inlined ValueTask`1:get_IsCompleted():bool:this (50 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:get_IsCompleted():bool:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000383] in BB21: | |
[000383] ------------ * STMT void (IL 0x022... ???) | |
[000382] I-C-G------- \--* CALL nullcheck int Task.get_IsCompleted (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000381] ------------ this in rcx \--* LCL_VAR ref V22 tmp15 | |
thisArg: is a local var | |
[000381] ------------ * LCL_VAR ref V22 tmp15 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsCompleted():bool:this set to 0x00007FFC6B4AFAC1: | |
Invoking compiler for the inlinee method Task:get_IsCompleted():bool:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 fe 13 volatile. | |
IL_0003 7b fb 0d 00 04 ldfld 0x4000DFB | |
IL_0008 0a stloc.0 | |
IL_0009 06 ldloc.0 | |
IL_000a 28 e6 29 00 06 call 0x60029E6 | |
IL_000f 2a ret | |
INLINER impTokenLookupContextHandle for Task:get_IsCompleted():bool:this is 0x00007FFC6B4AFAC1. | |
*************** In fgFindBasicBlocks() for Task:get_IsCompleted():bool:this | |
Jump targets: | |
none | |
New Basic Block BB24 [0023] created. | |
BB24 [000..010) | |
Basic block list for 'Task:get_IsCompleted():bool:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB24 [0023] 1 1 [000..010) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task:get_IsCompleted():bool:this | |
impImportBlockPending for BB24 | |
Importing BB24 (PC=000) of 'Task:get_IsCompleted():bool:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) volatile.ldfld 04000DFB | |
[ 1] 8 (0x008) stloc.0 | |
lvaGrabTemp returning 23 (V23 tmp16) (a long lifetime temp) called for Inline stloc first use temp. | |
[000410] ------------ * STMT void | |
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags | |
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XGO------ \--* ASG int | |
[000408] D------N---- \--* LCL_VAR int V23 tmp16 | |
[ 0] 9 (0x009) ldloc.0 | |
[ 1] 10 (0x00a) call 060029E6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 | |
[000414] ------------ * STMT void | |
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16 | |
[ 1] 15 (0x00f) ret | |
Inlinee Return expression (before normalization) => | |
[000415] --C--------- * RET_EXPR int (inl return from call [000412]) | |
Inlinee Return expression (after normalization) => | |
[000416] --C--------- * CAST int <- bool <- int | |
[000415] --C--------- \--* RET_EXPR int (inl return from call [000412]) | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB24 [0023] 1 1 [000..010) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000382] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000410] ------------ * STMT void (IL 0x022... ???) | |
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags | |
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XGO------ \--* ASG int | |
[000408] D------N---- \--* LCL_VAR int V23 tmp16 | |
[000414] ------------ * STMT void (IL 0x022... ???) | |
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000382] is | |
[000416] --C--------- * CAST int <- bool <- int | |
[000415] --C--------- \--* RET_EXPR int (inl return from call [000412]) | |
Successfully inlined Task:get_IsCompleted():bool:this (16 IL bytes) (depth 3) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:get_IsCompleted():bool:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000414] in BB21: | |
[000414] ------------ * STMT void (IL 0x022... ???) | |
[000412] I-C-G------- \--* CALL int Task.IsCompletedMethod (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000411] ------------ arg0 \--* LCL_VAR int V23 tmp16 | |
Argument #0: is a local var | |
[000411] ------------ * LCL_VAR int V23 tmp16 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task:IsCompletedMethod(int):bool set to 0x00007FFC6B4AFAC1: | |
Invoking compiler for the inlinee method Task:IsCompletedMethod(int):bool : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 20 00 00 60 01 ldc.i4 0x1600000 | |
IL_0006 5f and | |
IL_0007 16 ldc.i4.0 | |
IL_0008 fe 03 cgt.un | |
IL_000a 2a ret | |
INLINER impTokenLookupContextHandle for Task:IsCompletedMethod(int):bool is 0x00007FFC6B4AFAC1. | |
*************** In fgFindBasicBlocks() for Task:IsCompletedMethod(int):bool | |
Jump targets: | |
none | |
New Basic Block BB25 [0024] created. | |
BB25 [000..00B) | |
Basic block list for 'Task:IsCompletedMethod(int):bool' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB25 [0024] 1 1 [000..00B) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task:IsCompletedMethod(int):bool | |
impImportBlockPending for BB25 | |
Importing BB25 (PC=000) of 'Task:IsCompletedMethod(int):bool' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldc.i4 23068672 | |
[ 2] 6 (0x006) and | |
[ 1] 7 (0x007) ldc.i4.0 0 | |
[ 2] 8 (0x008) cgt.un | |
[ 1] 10 (0x00a) ret | |
Inlinee Return expression (before normalization) => | |
[000421] ------------ /--* CNS_INT int 0 | |
[000422] N--------U-- * GT int | |
[000419] ------------ | /--* CNS_INT int 0x1600000 | |
[000420] ------------ \--* AND int | |
[000411] ------------ \--* LCL_VAR int V23 tmp16 | |
Inlinee Return expression (after normalization) => | |
[000421] ------------ /--* CNS_INT int 0 | |
[000422] N--------U-- * GT int | |
[000419] ------------ | /--* CNS_INT int 0x1600000 | |
[000420] ------------ \--* AND int | |
[000411] ------------ \--* LCL_VAR int V23 tmp16 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB25 [0024] 1 1 [000..00B) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000412] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000412] is | |
[000421] ------------ /--* CNS_INT int 0 | |
[000422] N--------U-- * GT int | |
[000419] ------------ | /--* CNS_INT int 0x1600000 | |
[000420] ------------ \--* AND int | |
[000411] ------------ \--* LCL_VAR int V23 tmp16 | |
Successfully inlined Task:IsCompletedMethod(int):bool (11 IL bytes) (depth 4) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:IsCompletedMethod(int):bool' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000384] with [000416] | |
[000384] --C--------- * RET_EXPR int (inl return from call [000416]) | |
Inserting the inline return expression | |
[000416] --C--------- * CAST int <- bool <- int | |
[000415] --C--------- \--* RET_EXPR int (inl return from call [000422]) | |
Replacing the return expression placeholder [000415] with [000422] | |
[000415] --C--------- * RET_EXPR int (inl return from call [000422]) | |
Inserting the inline return expression | |
[000421] ------------ /--* CNS_INT int 0 | |
[000422] N--------U-- * GT int | |
[000419] ------------ | /--* CNS_INT int 0x1600000 | |
[000420] ------------ \--* AND int | |
[000411] ------------ \--* LCL_VAR int V23 tmp16 | |
Expanding INLINE_CANDIDATE in statement [000365] in BB22: | |
[000365] ------------ * STMT void (IL 0x022... ???) | |
[000361] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000362] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000360] ------------ arg1 \--* LCL_VAR ref V20 tmp13 | |
Argument #0: is a local var | |
[000360] ------------ * LCL_VAR ref V20 tmp13 | |
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEEA8: | |
Invoking compiler for the inlinee method Unsafe:As(ref):ref : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 2a ret | |
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEEA8. | |
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref | |
Jump targets: | |
none | |
New Basic Block BB26 [0025] created. | |
BB26 [000..002) | |
Basic block list for 'Unsafe:As(ref):ref' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB26 [0025] 1 1 [000..002) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Unsafe:As(ref):ref | |
impImportBlockPending for BB26 | |
Importing BB26 (PC=000) of 'Unsafe:As(ref):ref' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ret | |
Inlinee Return expression (before normalization) => | |
[000360] ------------ * LCL_VAR ref V20 tmp13 | |
Inlinee Return expression (after normalization) => | |
[000360] ------------ * LCL_VAR ref V20 tmp13 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB26 [0025] 1 1 [000..002) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000361] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000361] is | |
[000360] ------------ * LCL_VAR ref V20 tmp13 | |
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 3) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000366] with [000360] | |
[000366] --C--------- * RET_EXPR ref (inl return from call [000360]) | |
Inserting the inline return expression | |
[000360] ------------ * LCL_VAR ref V20 tmp13 | |
**** Late devirt opportunity | |
[000372] --C-G------- * CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] ------------ this in rcx +--* LCL_VAR ref V20 tmp13 | |
[000371] ----G------- arg1 \--* FIELD short _token | |
[000367] ----G------- \--* ADDR byref | |
[000368] ----G------- \--* FIELD struct _value | |
[000369] L----------- \--* ADDR byref | |
[000370] ------------ \--* LCL_VAR struct V03 loc2 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is Object (attrib 20000000) | |
base method is IValueTaskSource`1::GetStatus | |
--- base class is interface | |
--- no derived method, sorry | |
Replacing the return expression placeholder [000098] with [000325] | |
[000098] --C--------- * RET_EXPR int (inl return from call [000325]) | |
Inserting the inline return expression | |
[000325] --C--------- * CAST int <- bool <- int | |
[000324] --C--------- \--* RET_EXPR int (inl return from call [000396]) | |
Replacing the return expression placeholder [000324] with [000396] | |
[000324] --C--------- * RET_EXPR int (inl return from call [000396]) | |
Inserting the inline return expression | |
[000396] ------------ * LCL_VAR int V19 tmp12 | |
Expanding INLINE_CANDIDATE in statement [000129] in BB04: | |
[000129] ------------ * STMT void (IL 0x03B...0x049) | |
[000126] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.AwaitUnsafeOnCompleted (exactContextHnd=0x00007FFC0D5C6140) | |
[000122] ---XG------- this in rcx +--* ADDR byref | |
[000121] ---XG------- | \--* FIELD struct <>t__builder | |
[000120] ------------ | \--* LCL_VAR byref V00 this | |
[000124] L----------- arg1 +--* ADDR byref | |
[000123] ------------ | \--* LCL_VAR struct V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
thisArg: has global refs has side effects | |
[000122] ---XG------- * ADDR byref | |
[000121] ---XG------- \--* FIELD struct <>t__builder | |
[000120] ------------ \--* LCL_VAR byref V00 this | |
Argument #1: is a constant is byref to a struct local | |
[000124] L----------- * ADDR byref | |
[000123] ------------ \--* LCL_VAR struct V03 loc2 | |
Argument #2: is a local var | |
[000125] ------------ * LCL_VAR byref V00 this | |
INLINER: inlineInfo.tokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this set to 0x00007FFC0D5C6140: | |
Invoking compiler for the inlinee method AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 17 ldc.i4.1 | |
IL_0002 7d 23 0c 00 0a stfld 0xA000C23 | |
IL_0007 02 ldarg.0 | |
IL_0008 7c 21 0c 00 0a ldflda 0xA000C21 | |
IL_000d 03 ldarg.1 | |
IL_000e 04 ldarg.2 | |
IL_000f 28 56 03 00 2b call 0x2B000356 | |
IL_0014 2a ret | |
INLINER impTokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this is 0x00007FFC0D5C6140. | |
*************** In fgFindBasicBlocks() for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 17 : state 110 [ ldflda ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 35 : state 5 [ ldarg.2 ] | |
weight= 79 : state 40 [ call ] | |
weight= 19 : state 42 [ ret ] | |
Inline candidate looks like a wrapper method. Multiplier increased to 1. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4. | |
Inline candidate callsite is boring. Multiplier increased to 5.3. | |
calleeNativeSizeEstimate=245 | |
callsiteNativeSizeEstimate=145 | |
benefit multiplier=5.3 | |
threshold=768 | |
Native estimate for function size is within threshold for inlining 24.5 <= 76.8 (multiplier = 5.3) | |
Jump targets: | |
none | |
New Basic Block BB27 [0026] created. | |
BB27 [000..015) | |
Basic block list for 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB27 [0026] 1 1 [000..015) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this | |
impImportBlockPending for BB27 | |
Importing BB27 (PC=000) of 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 24 (V24 tmp17) called for Inlining Arg. | |
[ 1] 1 (0x001) ldc.i4.1 1 | |
[ 2] 2 (0x002) stfld 0A000C23 | |
[000431] ------------ * STMT void | |
[000428] ------------ | /--* CNS_INT int 1 | |
[000430] -A-XG------- \--* ASG bool | |
[000429] ---XG--N---- \--* FIELD bool _useBuilder | |
[000427] ------------ \--* LCL_VAR byref V24 tmp17 | |
[ 0] 7 (0x007) ldarg.0 | |
[ 1] 8 (0x008) ldflda 0A000C21 | |
[ 1] 13 (0x00d) ldarg.1 | |
[ 2] 14 (0x00e) ldarg.2 | |
[ 3] 15 (0x00f) call 2B000356 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling' for 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' calling 'AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' | |
INLINER: Marking AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this as NOINLINE because of has exception handling | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'has exception handling' | |
[000440] ------------ * STMT void | |
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
[000434] ---XG------- this in rcx +--* ADDR byref | |
[000433] ---XG------- | \--* FIELD struct _methodBuilder | |
[000432] ------------ | \--* LCL_VAR byref V24 tmp17 | |
[000435] L----------- arg1 +--* ADDR byref | |
[000436] ------------ | \--* LCL_VAR struct V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
[ 0] 20 (0x014) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB27 [0026] 1 1 [000..015) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000126] ----------- | |
Arguments setup: | |
[000443] ------------ * STMT void (IL 0x03B... ???) | |
[000122] ---XG------- | /--* ADDR byref | |
[000121] ---XG------- | | \--* FIELD struct <>t__builder | |
[000120] ------------ | | \--* LCL_VAR byref V00 this | |
[000442] -A-XG------- \--* ASG byref | |
[000441] D------N---- \--* LCL_VAR byref V24 tmp17 | |
Inlinee method body: | |
[000431] ------------ * STMT void (IL 0x03B... ???) | |
[000428] ------------ | /--* CNS_INT int 1 | |
[000430] -A-XG------- \--* ASG bool | |
[000429] ---XG--N---- \--* FIELD bool _useBuilder | |
[000427] ------------ \--* LCL_VAR byref V24 tmp17 | |
[000440] ------------ * STMT void (IL 0x03B... ???) | |
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
[000434] ---XG------- this in rcx +--* ADDR byref | |
[000433] ---XG------- | \--* FIELD struct _methodBuilder | |
[000432] ------------ | \--* LCL_VAR byref V24 tmp17 | |
[000435] L----------- arg1 +--* ADDR byref | |
[000436] ------------ | \--* LCL_VAR struct V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this (21 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement [000045] in BB06: | |
[000045] ------------ * STMT void (IL 0x067...0x06E) | |
[000044] I-C-G------- \--* CALL int ConfiguredValueTaskAwaiter.GetResult (exactContextHnd=0x00007FFC6B4B74F9) | |
[000043] L----------- this in rcx \--* ADDR byref | |
[000042] ------------ \--* LCL_VAR struct V03 loc2 | |
thisArg: is a constant is byref to a struct local | |
[000043] L----------- * ADDR byref | |
[000042] ------------ \--* LCL_VAR struct V03 loc2 | |
INLINER: inlineInfo.tokenLookupContextHandle for ConfiguredValueTaskAwaiter:GetResult():int:this set to 0x00007FFC6B4B74F9: | |
Invoking compiler for the inlinee method ConfiguredValueTaskAwaiter:GetResult():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 2d 0c 00 0a ldflda 0xA000C2D | |
IL_0006 28 13 09 00 0a call 0xA000913 | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for ConfiguredValueTaskAwaiter:GetResult():int:this is 0x00007FFC6B4B74F9. | |
*************** In fgFindBasicBlocks() for ConfiguredValueTaskAwaiter:GetResult():int:this | |
Jump targets: | |
none | |
New Basic Block BB28 [0027] created. | |
BB28 [000..00C) | |
Basic block list for 'ConfiguredValueTaskAwaiter:GetResult():int:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB28 [0027] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ConfiguredValueTaskAwaiter:GetResult():int:this | |
impImportBlockPending for BB28 | |
Importing BB28 (PC=000) of 'ConfiguredValueTaskAwaiter:GetResult():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 0A000C2D | |
[ 1] 6 (0x006) call 0A000913 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is int, structSize is 0 | |
[000451] ------------ * STMT void | |
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09) | |
[000449] ------------ this in rcx \--* ADDR byref | |
[000448] ------------ \--* FIELD struct _value | |
[000446] L----------- \--* ADDR byref | |
[000447] ------------ \--* LCL_VAR struct V03 loc2 | |
[ 1] 11 (0x00b) ret | |
Inlinee Return expression (before normalization) => | |
[000452] --C--------- * RET_EXPR int (inl return from call [000450]) | |
Inlinee Return expression (after normalization) => | |
[000452] --C--------- * RET_EXPR int (inl return from call [000450]) | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB28 [0027] 1 1 [000..00C) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000044] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000451] ------------ * STMT void (IL 0x067... ???) | |
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09) | |
[000449] ------------ this in rcx \--* ADDR byref | |
[000448] ------------ \--* FIELD struct _value | |
[000446] L----------- \--* ADDR byref | |
[000447] ------------ \--* LCL_VAR struct V03 loc2 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000044] is | |
[000452] --C--------- * RET_EXPR int (inl return from call [000450]) | |
Successfully inlined ConfiguredValueTaskAwaiter:GetResult():int:this (12 IL bytes) (depth 1) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ConfiguredValueTaskAwaiter:GetResult():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000451] in BB06: | |
[000451] ------------ * STMT void (IL 0x067... ???) | |
[000450] I-C-G------- \--* CALL int ValueTask`1.get_Result (exactContextHnd=0x00007FFC6B4C3B09) | |
[000449] ------------ this in rcx \--* ADDR byref | |
[000448] ------------ \--* FIELD struct _value | |
[000446] L----------- \--* ADDR byref | |
[000447] ------------ \--* LCL_VAR struct V03 loc2 | |
thisArg: has caller local ref is byref to a struct local | |
[000449] ------------ * ADDR byref | |
[000448] ------------ \--* FIELD struct _value | |
[000446] L----------- \--* ADDR byref | |
[000447] ------------ \--* LCL_VAR struct V03 loc2 | |
INLINER: inlineInfo.tokenLookupContextHandle for ValueTask`1:get_Result():int:this set to 0x00007FFC6B4C3B09: | |
Invoking compiler for the inlinee method ValueTask`1:get_Result():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 02 09 00 0a ldfld 0xA000902 | |
IL_0006 0a stloc.0 | |
IL_0007 06 ldloc.0 | |
IL_0008 2d 07 brtrue.s 7 (IL_0011) | |
IL_000a 02 ldarg.0 | |
IL_000b 7b 01 09 00 0a ldfld 0xA000901 | |
IL_0010 2a ret | |
IL_0011 06 ldloc.0 | |
IL_0012 75 ae 02 00 1b isinst 0x1B0002AE | |
IL_0017 25 dup | |
IL_0018 0b stloc.1 | |
IL_0019 2c 0d brfalse.s 13 (IL_0028) | |
IL_001b 07 ldloc.1 | |
IL_001c 28 c2 50 00 06 call 0x60050C2 | |
IL_0021 07 ldloc.1 | |
IL_0022 6f 0e 09 00 0a callvirt 0xA00090E | |
IL_0027 2a ret | |
IL_0028 06 ldloc.0 | |
IL_0029 28 53 02 00 2b call 0x2B000253 | |
IL_002e 02 ldarg.0 | |
IL_002f 7b 04 09 00 0a ldfld 0xA000904 | |
IL_0034 6f 0b 09 00 0a callvirt 0xA00090B | |
IL_0039 2a ret | |
INLINER impTokenLookupContextHandle for ValueTask`1:get_Result():int:this is 0x00007FFC6B4C3B09. | |
*************** In fgFindBasicBlocks() for ValueTask`1:get_Result():int:this | |
Jump targets: | |
IL_0011 | |
IL_0028 | |
New Basic Block BB29 [0028] created. | |
BB29 [000..00A) | |
New Basic Block BB30 [0029] created. | |
BB30 [00A..011) | |
New Basic Block BB31 [0030] created. | |
BB31 [011..01B) | |
New Basic Block BB32 [0031] created. | |
BB32 [01B..028) | |
New Basic Block BB33 [0032] created. | |
BB33 [028..03A) | |
lvaGrabTemp returning 25 (V25 tmp18) (a long lifetime temp) called for Inline return value spill temp. | |
Basic block list for 'ValueTask`1:get_Result():int:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB29 [0028] 1 1 [000..00A)-> BB31 ( cond ) | |
BB30 [0029] 1 1 [00A..011) (return) | |
BB31 [0030] 1 1 [011..01B)-> BB33 ( cond ) | |
BB32 [0031] 1 1 [01B..028) (return) | |
BB33 [0032] 1 1 [028..03A) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for ValueTask`1:get_Result():int:this | |
impImportBlockPending for BB29 | |
Importing BB29 (PC=000) of 'ValueTask`1:get_Result():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A000902 | |
[ 1] 6 (0x006) stloc.0 | |
lvaGrabTemp returning 26 (V26 tmp19) (a long lifetime temp) called for Inline stloc first use temp. | |
lvaSetClass: setting class for V26 to (00007FFC6B4A7DB8) Object | |
[000462] ------------ * STMT void | |
[000459] ----G------- | /--* FIELD ref _obj | |
[000455] ----G------- | | \--* ADDR byref | |
[000456] ----G------- | | \--* FIELD struct _value | |
[000457] L----------- | | \--* ADDR byref | |
[000458] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000461] -A--G------- \--* ASG ref | |
[000460] D------N---- \--* LCL_VAR ref V26 tmp19 | |
[ 0] 7 (0x007) ldloc.0 | |
[ 1] 8 (0x008) brtrue.s | |
[000467] ------------ * STMT void | |
[000466] ------------ \--* JTRUE void | |
[000464] ------------ | /--* CNS_INT ref null | |
[000465] ------------ \--* NE int | |
[000463] ------------ \--* LCL_VAR ref V26 tmp19 | |
impImportBlockPending for BB30 | |
impImportBlockPending for BB31 | |
Importing BB31 (PC=017) of 'ValueTask`1:get_Result():int:this' | |
[ 0] 17 (0x011) ldloc.0 | |
[ 1] 18 (0x012) isinst 1B0002AE | |
Considering optimization of isinst from 00007FFC6B4A7DB8 (Object) to 00007FFC6B4AFBD8 (Task`1) | |
Can't optimize since fromClass is inexact | |
Expanding isinst as call because inline expansion not legal | |
[ 1] 23 (0x017) dup | |
lvaGrabTemp returning 27 (V27 tmp20) called for dup spill. | |
[000476] ------------ * STMT void | |
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19 | |
[000475] -AC-G------- \--* ASG ref | |
[000474] D------N---- \--* LCL_VAR ref V27 tmp20 | |
[ 2] 24 (0x018) stloc.1 | |
lvaGrabTemp returning 28 (V28 tmp21) (a long lifetime temp) called for Inline stloc first use temp. | |
lvaSetClass: setting class for V28 to (00007FFC6B4AFBD8) Task`1 | |
[000481] ------------ * STMT void | |
[000478] ------------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---------- \--* ASG ref | |
[000479] D------N---- \--* LCL_VAR ref V28 tmp21 | |
[ 1] 25 (0x019) brfalse.s | |
[000485] ------------ * STMT void | |
[000484] ------------ \--* JTRUE void | |
[000482] ------------ | /--* CNS_INT ref null | |
[000483] ------------ \--* EQ int | |
[000477] ------------ \--* LCL_VAR ref V27 tmp20 | |
impImportBlockPending for BB32 | |
impImportBlockPending for BB33 | |
Importing BB33 (PC=040) of 'ValueTask`1:get_Result():int:this' | |
[ 0] 40 (0x028) ldloc.0 | |
[ 1] 41 (0x029) call 2B000253 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[000492] ------------ * STMT void | |
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19 | |
[ 1] 46 (0x02e) ldarg.0 | |
[ 2] 47 (0x02f) ldfld 0A000904 | |
[ 2] 52 (0x034) callvirt 0A00090B | |
In Compiler::impImportCall: opcode is callvirt, kind=2, callRetType is int, structSize is 0 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is __Canon (attrib 20020000) | |
base method is IValueTaskSource`1::GetResult | |
--- base class is interface | |
--- no derived method, sorry | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' for 'ValueTask`1:get_Result():int:this' calling 'IValueTaskSource`1:GetResult(short):int:this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this call site' reason 'target not direct' | |
[ 1] 57 (0x039) ret | |
Inlinee Return expression (before normalization) => | |
[000499] --C-G------- * CALLV stub int IValueTaskSource`1.GetResult | |
[000493] --C--------- this in rcx +--* RET_EXPR ref (inl return from call [000488]) | |
[000498] ----G------- arg1 \--* FIELD short _token | |
[000494] ----G------- \--* ADDR byref | |
[000495] ----G------- \--* FIELD struct _value | |
[000496] L----------- \--* ADDR byref | |
[000497] ------------ \--* LCL_VAR struct V03 loc2 | |
[000503] ------------ * STMT void | |
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000493] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000488]) | |
[000498] ----G------- arg1 | | \--* FIELD short _token | |
[000494] ----G------- | | \--* ADDR byref | |
[000495] ----G------- | | \--* FIELD struct _value | |
[000496] L----------- | | \--* ADDR byref | |
[000497] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000502] -AC-G------- \--* ASG int | |
[000501] D------N---- \--* LCL_VAR int V25 tmp18 | |
Inlinee Return expression (after normalization) => | |
[000504] ------------ * LCL_VAR int V25 tmp18 | |
Importing BB32 (PC=027) of 'ValueTask`1:get_Result():int:this' | |
[ 0] 27 (0x01b) ldloc.1 | |
[ 1] 28 (0x01c) call 060050C2 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000509] ------------ * STMT void | |
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209) | |
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
[ 0] 33 (0x021) ldloc.1 | |
[ 1] 34 (0x022) callvirt 0A00090E | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is int, structSize is 0 | |
[000512] ------------ * STMT void | |
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
[ 1] 39 (0x027) ret | |
Inlinee Return expression (before normalization) => | |
[000513] --C--------- * RET_EXPR int (inl return from call [000511]) | |
[000516] ------------ * STMT void | |
[000513] --C--------- | /--* RET_EXPR int (inl return from call [000511]) | |
[000515] -AC--------- \--* ASG int | |
[000514] D------N---- \--* LCL_VAR int V25 tmp18 | |
Inlinee Return expression (after normalization) => | |
[000517] ------------ * LCL_VAR int V25 tmp18 | |
Importing BB30 (PC=010) of 'ValueTask`1:get_Result():int:this' | |
[ 0] 10 (0x00a) ldarg.0 | |
[ 1] 11 (0x00b) ldfld 0A000901 | |
[ 1] 16 (0x010) ret | |
Inlinee Return expression (before normalization) => | |
[000523] ----G------- * FIELD int _result | |
[000519] ----G------- \--* ADDR byref | |
[000520] ----G------- \--* FIELD struct _value | |
[000521] L----------- \--* ADDR byref | |
[000522] ------------ \--* LCL_VAR struct V03 loc2 | |
[000526] ------------ * STMT void | |
[000523] ----G------- | /--* FIELD int _result | |
[000519] ----G------- | | \--* ADDR byref | |
[000520] ----G------- | | \--* FIELD struct _value | |
[000521] L----------- | | \--* ADDR byref | |
[000522] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000525] -A--G------- \--* ASG int | |
[000524] D------N---- \--* LCL_VAR int V25 tmp18 | |
Inlinee Return expression (after normalization) => | |
[000527] ------------ * LCL_VAR int V25 tmp18 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB29 [0028] 1 1 [000..00A)-> BB31 ( cond ) i | |
BB30 [0029] 1 1 [00A..011) (return) i | |
BB31 [0030] 1 1 [011..01B)-> BB33 ( cond ) i | |
BB32 [0031] 1 1 [01B..028) (return) i | |
BB33 [0032] 1 1 [028..03A) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000450] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB34 [0033] created. | |
EH#0: New last block of try: BB34 | |
Convert bbJumpKind of BB30 to BBJ_ALWAYS to bottomBlock BB34 | |
Convert bbJumpKind of BB32 to BBJ_ALWAYS to bottomBlock BB34 | |
Convert bbJumpKind of BB33 to BBJ_NONE | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
[000531] ------------ * STMT void (IL 0x067... ???) | |
[000528] ------------ | /--* CNS_INT ref null | |
[000530] -A---------- \--* ASG ref | |
[000529] D------N---- \--* LCL_VAR ref V26 tmp19 | |
[000535] ------------ * STMT void (IL 0x067... ???) | |
[000532] ------------ | /--* CNS_INT ref null | |
[000534] -A---------- \--* ASG ref | |
[000533] D------N---- \--* LCL_VAR ref V28 tmp21 | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB29 [067..068) -> BB31 (cond), preds={} succs={BB30,BB31} | |
***** BB29, stmt 1 | |
[000462] ------------ * STMT void (IL 0x067... ???) | |
[000459] ----G------- | /--* FIELD ref _obj | |
[000455] ----G------- | | \--* ADDR byref | |
[000456] ----G------- | | \--* FIELD struct _value | |
[000457] L----------- | | \--* ADDR byref | |
[000458] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000461] -A--G------- \--* ASG ref | |
[000460] D------N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB29, stmt 2 | |
[000467] ------------ * STMT void (IL 0x067... ???) | |
[000466] ------------ \--* JTRUE void | |
[000464] ------------ | /--* CNS_INT ref null | |
[000465] ------------ \--* NE int | |
[000463] ------------ \--* LCL_VAR ref V26 tmp19 | |
------------ BB30 [067..068) -> BB34 (always), preds={} succs={BB34} | |
***** BB30, stmt 3 | |
[000526] ------------ * STMT void (IL 0x067... ???) | |
[000523] ----G------- | /--* FIELD int _result | |
[000519] ----G------- | | \--* ADDR byref | |
[000520] ----G------- | | \--* FIELD struct _value | |
[000521] L----------- | | \--* ADDR byref | |
[000522] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000525] -A--G------- \--* ASG int | |
[000524] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB31 [067..068) -> BB33 (cond), preds={} succs={BB32,BB33} | |
***** BB31, stmt 4 | |
[000476] ------------ * STMT void (IL 0x067... ???) | |
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19 | |
[000475] -AC-G------- \--* ASG ref | |
[000474] D------N---- \--* LCL_VAR ref V27 tmp20 | |
***** BB31, stmt 5 | |
[000481] ------------ * STMT void (IL 0x067... ???) | |
[000478] ------------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---------- \--* ASG ref | |
[000479] D------N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB31, stmt 6 | |
[000485] ------------ * STMT void (IL 0x067... ???) | |
[000484] ------------ \--* JTRUE void | |
[000482] ------------ | /--* CNS_INT ref null | |
[000483] ------------ \--* EQ int | |
[000477] ------------ \--* LCL_VAR ref V27 tmp20 | |
------------ BB32 [067..068) -> BB34 (always), preds={} succs={BB34} | |
***** BB32, stmt 7 | |
[000509] ------------ * STMT void (IL 0x067... ???) | |
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209) | |
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
***** BB32, stmt 8 | |
[000512] ------------ * STMT void (IL 0x067... ???) | |
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
***** BB32, stmt 9 | |
[000516] ------------ * STMT void (IL 0x067... ???) | |
[000513] --C--------- | /--* RET_EXPR int (inl return from call [000511]) | |
[000515] -AC--------- \--* ASG int | |
[000514] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB33 [067..068), preds={} succs={BB34} | |
***** BB33, stmt 10 | |
[000492] ------------ * STMT void (IL 0x067... ???) | |
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19 | |
***** BB33, stmt 11 | |
[000503] ------------ * STMT void (IL 0x067... ???) | |
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000493] --C--------- this in rcx | | +--* RET_EXPR ref (inl return from call [000488]) | |
[000498] ----G------- arg1 | | \--* FIELD short _token | |
[000494] ----G------- | | \--* ADDR byref | |
[000495] ----G------- | | \--* FIELD struct _value | |
[000496] L----------- | | \--* ADDR byref | |
[000497] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000502] -AC-G------- \--* ASG int | |
[000501] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------------------------------------------------------------------------------------------------------------- | |
Return expression for call at [000450] is | |
[000527] ------------ * LCL_VAR int V25 tmp18 | |
Successfully inlined ValueTask`1:get_Result():int:this (58 IL bytes) (depth 2) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
BB06 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'ValueTask`1:get_Result():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000509] in BB32: | |
[000509] ------------ * STMT void (IL 0x067... ???) | |
[000507] I-C-G------- \--* CALL void TaskAwaiter.ValidateEnd (exactContextHnd=0x00007FFC6B4B3209) | |
[000506] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
Argument #0: is a local var | |
[000506] ------------ * LCL_VAR ref V28 tmp21 | |
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:ValidateEnd(ref) set to 0x00007FFC6B4B3209: | |
Invoking compiler for the inlinee method TaskAwaiter:ValidateEnd(ref) : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 6f c9 29 00 06 callvirt 0x60029C9 | |
IL_0006 2c 06 brfalse.s 6 (IL_000e) | |
IL_0008 02 ldarg.0 | |
IL_0009 28 c3 50 00 06 call 0x60050C3 | |
IL_000e 2a ret | |
INLINER impTokenLookupContextHandle for TaskAwaiter:ValidateEnd(ref) is 0x00007FFC6B4B3209. | |
*************** In fgFindBasicBlocks() for TaskAwaiter:ValidateEnd(ref) | |
Jump targets: | |
IL_000e | |
New Basic Block BB35 [0034] created. | |
BB35 [000..008) | |
New Basic Block BB36 [0035] created. | |
BB36 [008..00E) | |
New Basic Block BB37 [0036] created. | |
BB37 [00E..00F) | |
Basic block list for 'TaskAwaiter:ValidateEnd(ref)' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB35 [0034] 1 1 [000..008)-> BB37 ( cond ) | |
BB36 [0035] 1 1 [008..00E) | |
BB37 [0036] 2 1 [00E..00F) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for TaskAwaiter:ValidateEnd(ref) | |
impImportBlockPending for BB35 | |
Importing BB35 (PC=000) of 'TaskAwaiter:ValidateEnd(ref)' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) callvirt 060029C9 | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is bool, structSize is 0 | |
[000539] ------------ * STMT void | |
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
[ 1] 6 (0x006) brfalse.s | |
[000544] ------------ * STMT void | |
[000543] --C--------- \--* JTRUE void | |
[000541] ------------ | /--* CNS_INT int 0 | |
[000542] --C--------- \--* EQ int | |
[000540] --C--------- \--* RET_EXPR int (inl return from call [000538]) | |
impImportBlockPending for BB36 | |
impImportBlockPending for BB37 | |
Importing BB37 (PC=014) of 'TaskAwaiter:ValidateEnd(ref)' | |
[ 0] 14 (0x00e) ret | |
Importing BB36 (PC=008) of 'TaskAwaiter:ValidateEnd(ref)' | |
[ 0] 8 (0x008) ldarg.0 | |
[ 1] 9 (0x009) call 060050C3 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000550] ------------ * STMT void | |
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209) | |
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
impImportBlockPending for BB37 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB35 [0034] 1 1 [000..008)-> BB37 ( cond ) i | |
BB36 [0035] 1 1 [008..00E) i | |
BB37 [0036] 2 1 [00E..00F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000507] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB38 [0037] created. | |
Convert bbJumpKind of BB37 to BBJ_NONE | |
fgInlineAppendStatements: no gc ref inline locals. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB35 [067..068) -> BB37 (cond), preds={} succs={BB36,BB37} | |
***** BB35, stmt 1 | |
[000539] ------------ * STMT void (IL 0x067... ???) | |
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
***** BB35, stmt 2 | |
[000544] ------------ * STMT void (IL 0x067... ???) | |
[000543] --C--------- \--* JTRUE void | |
[000541] ------------ | /--* CNS_INT int 0 | |
[000542] --C--------- \--* EQ int | |
[000540] --C--------- \--* RET_EXPR int (inl return from call [000538]) | |
------------ BB36 [067..068), preds={} succs={BB37} | |
***** BB36, stmt 3 | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209) | |
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
------------ BB37 [067..068), preds={} succs={BB38} | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined TaskAwaiter:ValidateEnd(ref) (15 IL bytes) (depth 3) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
BB32 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'TaskAwaiter:ValidateEnd(ref)' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000539] in BB35: | |
[000539] ------------ * STMT void (IL 0x067... ???) | |
[000538] I-C-G------- \--* CALL nullcheck int Task.get_IsWaitNotificationEnabledOrNotRanToCompletion (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000506] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
thisArg: is a local var | |
[000506] ------------ * LCL_VAR ref V28 tmp21 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this set to 0x00007FFC6B4AFAC1: | |
Invoking compiler for the inlinee method Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 fe 13 volatile. | |
IL_0003 7b fb 0d 00 04 ldfld 0x4000DFB | |
IL_0008 20 00 00 00 11 ldc.i4 0x11000000 | |
IL_000d 5f and | |
IL_000e 20 00 00 00 01 ldc.i4 0x1000000 | |
IL_0013 fe 01 ceq | |
IL_0015 16 ldc.i4.0 | |
IL_0016 fe 01 ceq | |
IL_0018 2a ret | |
INLINER impTokenLookupContextHandle for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this is 0x00007FFC6B4AFAC1. | |
*************** In fgFindBasicBlocks() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this | |
Jump targets: | |
none | |
New Basic Block BB39 [0038] created. | |
BB39 [000..019) | |
Basic block list for 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB39 [0038] 1 1 [000..019) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this | |
impImportBlockPending for BB39 | |
Importing BB39 (PC=000) of 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) volatile.ldfld 04000DFB | |
[ 1] 8 (0x008) ldc.i4 285212672 | |
[ 2] 13 (0x00d) and | |
[ 1] 14 (0x00e) ldc.i4 16777216 | |
[ 2] 19 (0x013) ceq | |
[ 1] 21 (0x015) ldc.i4.0 0 | |
[ 2] 22 (0x016) ceq | |
[ 1] 24 (0x018) ret | |
Inlinee Return expression (before normalization) => | |
[000558] ------------ /--* CNS_INT int 0 | |
[000559] ---XGO------ * EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
Inlinee Return expression (after normalization) => | |
[000558] ------------ /--* CNS_INT int 0 | |
[000559] ---XGO------ * EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB39 [0038] 1 1 [000..019) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000538] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000538] is | |
[000558] ------------ /--* CNS_INT int 0 | |
[000559] ---XGO------ * EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
Successfully inlined Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this (25 IL bytes) (depth 4) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000540] with [000559] | |
[000540] --C--------- * RET_EXPR int (inl return from call [000559]) | |
Inserting the inline return expression | |
[000558] ------------ /--* CNS_INT int 0 | |
[000559] ---XGO------ * EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
Expanding INLINE_CANDIDATE in statement [000550] in BB36: | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] I-C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification (exactContextHnd=0x00007FFC6B4B3209) | |
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
Argument #0: is a local var | |
[000547] ------------ * LCL_VAR ref V28 tmp21 | |
INLINER: inlineInfo.tokenLookupContextHandle for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) set to 0x00007FFC6B4B3209: | |
Invoking compiler for the inlinee method TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 6f e5 29 00 06 callvirt 0x60029E5 | |
IL_0006 2d 11 brtrue.s 17 (IL_0019) | |
IL_0008 02 ldarg.0 | |
IL_0009 15 ldc.i4.m1 | |
IL_000a 12 01 ldloca.s 0x1 | |
IL_000c fe 15 38 03 00 02 initobj 0x2000338 | |
IL_0012 07 ldloc.1 | |
IL_0013 6f 1b 2a 00 06 callvirt 0x6002A1B | |
IL_0018 0a stloc.0 | |
IL_0019 02 ldarg.0 | |
IL_001a 6f c7 29 00 06 callvirt 0x60029C7 | |
IL_001f 26 pop | |
IL_0020 02 ldarg.0 | |
IL_0021 6f e7 29 00 06 callvirt 0x60029E7 | |
IL_0026 2d 06 brtrue.s 6 (IL_002e) | |
IL_0028 02 ldarg.0 | |
IL_0029 28 c4 50 00 06 call 0x60050C4 | |
IL_002e 2a ret | |
INLINER impTokenLookupContextHandle for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) is 0x00007FFC6B4B3209. | |
*************** In fgFindBasicBlocks() for TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 83 : state 99 [ callvirt ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 22 : state 22 [ ldc.i4.m1 ] | |
weight= 61 : state 19 [ ldloca.s ] | |
weight= 55 : state 180 [ initobj ] | |
weight= 9 : state 8 [ ldloc.1 ] | |
weight= 83 : state 99 [ callvirt ] | |
weight= 6 : state 11 [ stloc.0 ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 83 : state 99 [ callvirt ] | |
weight=-24 : state 39 [ pop ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 83 : state 99 [ callvirt ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in methods of promotable struct increased to 3. | |
Inline candidate looks like a wrapper method. Multiplier increased to 4. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 5. | |
Inline candidate callsite is boring. Multiplier increased to 6.3. | |
calleeNativeSizeEstimate=659 | |
callsiteNativeSizeEstimate=85 | |
benefit multiplier=6.3 | |
threshold=535 | |
Native estimate for function size exceeds threshold for inlining 65.9 > 53.5 (multiplier = 6.3) | |
Inline expansion aborted, inline not profitable | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref)' | |
INLINER: during 'fgInline' result 'failed this call site' reason 'unprofitable inline' | |
Expanding INLINE_CANDIDATE in statement [000512] in BB38: | |
[000512] ------------ * STMT void (IL 0x067... ???) | |
[000511] I-C-G------- \--* CALL nullcheck int Task`1.get_ResultOnSuccess (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000510] ------------ this in rcx \--* LCL_VAR ref V28 tmp21 | |
thisArg: is a local var | |
[000510] ------------ * LCL_VAR ref V28 tmp21 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:get_ResultOnSuccess():int:this set to 0x00007FFC6B4AFBD9: | |
Invoking compiler for the inlinee method Task`1:get_ResultOnSuccess():int:this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 94 07 00 0a ldfld 0xA000794 | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for Task`1:get_ResultOnSuccess():int:this is 0x00007FFC6B4AFBD9. | |
*************** In fgFindBasicBlocks() for Task`1:get_ResultOnSuccess():int:this | |
Jump targets: | |
none | |
New Basic Block BB40 [0039] created. | |
BB40 [000..007) | |
Basic block list for 'Task`1:get_ResultOnSuccess():int:this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB40 [0039] 1 1 [000..007) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task`1:get_ResultOnSuccess():int:this | |
impImportBlockPending for BB40 | |
Importing BB40 (PC=000) of 'Task`1:get_ResultOnSuccess():int:this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 0A000794 | |
[ 1] 6 (0x006) ret | |
Inlinee Return expression (before normalization) => | |
[000562] ---XG------- * FIELD int m_result | |
[000510] ------------ \--* LCL_VAR ref V28 tmp21 | |
Inlinee Return expression (after normalization) => | |
[000562] ---XG------- * FIELD int m_result | |
[000510] ------------ \--* LCL_VAR ref V28 tmp21 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB40 [0039] 1 1 [000..007) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000511] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000511] is | |
[000562] ---XG------- * FIELD int m_result | |
[000510] ------------ \--* LCL_VAR ref V28 tmp21 | |
Successfully inlined Task`1:get_ResultOnSuccess():int:this (7 IL bytes) (depth 3) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Task`1:get_ResultOnSuccess():int:this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000513] with [000562] | |
[000513] --C--------- * RET_EXPR int (inl return from call [000562]) | |
Inserting the inline return expression | |
[000562] ---XG------- * FIELD int m_result | |
[000510] ------------ \--* LCL_VAR ref V28 tmp21 | |
Expanding INLINE_CANDIDATE in statement [000492] in BB33: | |
[000492] ------------ * STMT void (IL 0x067... ???) | |
[000488] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEEA8) | |
[000489] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abceea8 method | |
[000487] ------------ arg1 \--* LCL_VAR ref V26 tmp19 | |
Argument #0: is a local var | |
[000487] ------------ * LCL_VAR ref V26 tmp19 | |
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEEA8: | |
Invoking compiler for the inlinee method Unsafe:As(ref):ref : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 2a ret | |
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEEA8. | |
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref | |
Jump targets: | |
none | |
New Basic Block BB41 [0040] created. | |
BB41 [000..002) | |
Basic block list for 'Unsafe:As(ref):ref' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB41 [0040] 1 1 [000..002) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Unsafe:As(ref):ref | |
impImportBlockPending for BB41 | |
Importing BB41 (PC=000) of 'Unsafe:As(ref):ref' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ret | |
Inlinee Return expression (before normalization) => | |
[000487] ------------ * LCL_VAR ref V26 tmp19 | |
Inlinee Return expression (after normalization) => | |
[000487] ------------ * LCL_VAR ref V26 tmp19 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB41 [0040] 1 1 [000..002) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000488] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000488] is | |
[000487] ------------ * LCL_VAR ref V26 tmp19 | |
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 3) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000493] with [000487] | |
[000493] --C--------- * RET_EXPR ref (inl return from call [000487]) | |
Inserting the inline return expression | |
[000487] ------------ * LCL_VAR ref V26 tmp19 | |
**** Late devirt opportunity | |
[000499] --C-G------- * CALLV stub int IValueTaskSource`1.GetResult | |
[000487] ------------ this in rcx +--* LCL_VAR ref V26 tmp19 | |
[000498] ----G------- arg1 \--* FIELD short _token | |
[000494] ----G------- \--* ADDR byref | |
[000495] ----G------- \--* FIELD struct _value | |
[000496] L----------- \--* ADDR byref | |
[000497] ------------ \--* LCL_VAR struct V03 loc2 | |
impDevirtualizeCall: Trying to devirtualize interface call: | |
class for 'this' is Object (attrib 20000000) | |
base method is IValueTaskSource`1::GetResult | |
--- base class is interface | |
--- no derived method, sorry | |
Replacing the return expression placeholder [000046] with [000452] | |
[000046] --C--------- * RET_EXPR int (inl return from call [000452]) | |
Inserting the inline return expression | |
[000452] --C--------- * RET_EXPR int (inl return from call [000527]) | |
Replacing the return expression placeholder [000452] with [000527] | |
[000452] --C--------- * RET_EXPR int (inl return from call [000527]) | |
Inserting the inline return expression | |
[000527] ------------ * LCL_VAR int V25 tmp18 | |
Expanding INLINE_CANDIDATE in statement [000062] in BB08: | |
[000062] ------------ * STMT void (IL 0x092...0x099) | |
[000060] I-CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B3469) | |
[000058] ---XG------- this in rcx +--* ADDR byref | |
[000057] ---XG------- | \--* FIELD struct <>t__builder | |
[000056] ------------ | \--* LCL_VAR byref V00 this | |
[000059] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
Note: candidate is implicit tail call | |
thisArg: has global refs has side effects | |
[000058] ---XG------- * ADDR byref | |
[000057] ---XG------- \--* FIELD struct <>t__builder | |
[000056] ------------ \--* LCL_VAR byref V00 this | |
Argument #1: is a local var | |
[000059] ------------ * LCL_VAR int V02 loc1 | |
INLINER: inlineInfo.tokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:SetResult(int):this set to 0x00007FFC6B4B3469: | |
Invoking compiler for the inlinee method AsyncValueTaskMethodBuilder`1:SetResult(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 23 0c 00 0a ldfld 0xA000C23 | |
IL_0006 2c 0d brfalse.s 13 (IL_0015) | |
IL_0008 02 ldarg.0 | |
IL_0009 7c 21 0c 00 0a ldflda 0xA000C21 | |
IL_000e 03 ldarg.1 | |
IL_000f 28 24 0c 00 0a call 0xA000C24 | |
IL_0014 2a ret | |
IL_0015 02 ldarg.0 | |
IL_0016 03 ldarg.1 | |
IL_0017 7d 25 0c 00 0a stfld 0xA000C25 | |
IL_001c 02 ldarg.0 | |
IL_001d 17 ldc.i4.1 | |
IL_001e 7d 26 0c 00 0a stfld 0xA000C26 | |
IL_0023 2a ret | |
INLINER impTokenLookupContextHandle for AsyncValueTaskMethodBuilder`1:SetResult(int):this is 0x00007FFC6B4B3469. | |
*************** In fgFindBasicBlocks() for AsyncValueTaskMethodBuilder`1:SetResult(int):this | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 27 : state 44 [ brfalse.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 17 : state 110 [ ldflda ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 79 : state 40 [ call ] | |
weight= 19 : state 42 [ ret ] | |
weight= 69 : state 226 [ ldarg.0 -> ldarg.1 -> stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
Inline candidate looks like a wrapper method. Multiplier increased to 1. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 2. | |
Inline candidate callsite is boring. Multiplier increased to 3.3. | |
calleeNativeSizeEstimate=356 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=3.3 | |
threshold=379 | |
Native estimate for function size is within threshold for inlining 35.6 <= 37.9 (multiplier = 3.3) | |
Jump targets: | |
IL_0015 | |
New Basic Block BB42 [0041] created. | |
BB42 [000..008) | |
New Basic Block BB43 [0042] created. | |
BB43 [008..015) | |
New Basic Block BB44 [0043] created. | |
BB44 [015..024) | |
Basic block list for 'AsyncValueTaskMethodBuilder`1:SetResult(int):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB42 [0041] 1 1 [000..008)-> BB44 ( cond ) | |
BB43 [0042] 1 1 [008..015) (return) | |
BB44 [0043] 1 1 [015..024) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for AsyncValueTaskMethodBuilder`1:SetResult(int):this | |
impImportBlockPending for BB42 | |
Importing BB42 (PC=000) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 29 (V29 tmp22) called for Inlining Arg. | |
[ 1] 1 (0x001) ldfld 0A000C23 | |
[ 1] 6 (0x006) brfalse.s | |
[000572] ------------ * STMT void | |
[000571] ---XG------- \--* JTRUE void | |
[000569] ------------ | /--* CNS_INT int 0 | |
[000570] ---XG------- \--* EQ int | |
[000568] ---XG------- \--* FIELD bool _useBuilder | |
[000567] ------------ \--* LCL_VAR byref V29 tmp22 | |
impImportBlockPending for BB43 | |
impImportBlockPending for BB44 | |
Importing BB44 (PC=021) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldarg.1 | |
[ 2] 23 (0x017) stfld 0A000C25 | |
[000577] ------------ * STMT void | |
[000059] ------------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG------- \--* ASG int | |
[000575] ---XG--N---- \--* FIELD int _result | |
[000574] ------------ \--* LCL_VAR byref V29 tmp22 | |
[ 0] 28 (0x01c) ldarg.0 | |
[ 1] 29 (0x01d) ldc.i4.1 1 | |
[ 2] 30 (0x01e) stfld 0A000C26 | |
[000582] ------------ * STMT void | |
[000579] ------------ | /--* CNS_INT int 1 | |
[000581] -A-XG------- \--* ASG bool | |
[000580] ---XG--N---- \--* FIELD bool _haveResult | |
[000578] ------------ \--* LCL_VAR byref V29 tmp22 | |
[ 0] 35 (0x023) ret | |
Importing BB43 (PC=008) of 'AsyncValueTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 8 (0x008) ldarg.0 | |
[ 1] 9 (0x009) ldflda 0A000C21 | |
[ 1] 14 (0x00e) ldarg.1 | |
[ 2] 15 (0x00f) call 0A000C24 (Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000588] | |
[000590] ------------ * STMT void | |
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000586] ---XG------- this in rcx +--* ADDR byref | |
[000585] ---XG------- | \--* FIELD struct _methodBuilder | |
[000584] ------------ | \--* LCL_VAR byref V29 tmp22 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
[ 0] 20 (0x014) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB42 [0041] 1 1 [000..008)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [008..015) (return) i | |
BB44 [0043] 1 1 [015..024) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000060] ----------- | |
Arguments setup: | |
[000593] ------------ * STMT void (IL 0x092... ???) | |
[000058] ---XG------- | /--* ADDR byref | |
[000057] ---XG------- | | \--* FIELD struct <>t__builder | |
[000056] ------------ | | \--* LCL_VAR byref V00 this | |
[000592] -A-XG------- \--* ASG byref | |
[000591] D------N---- \--* LCL_VAR byref V29 tmp22 | |
Inlinee method body:New Basic Block BB45 [0044] created. | |
Convert bbJumpKind of BB43 to BBJ_ALWAYS to bottomBlock BB45 | |
Convert bbJumpKind of BB44 to BBJ_NONE | |
fgInlineAppendStatements: no gc ref inline locals. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093)-> BB45 (always) i | |
BB44 [0043] 1 1 [092..093) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB42 [092..093) -> BB44 (cond), preds={} succs={BB43,BB44} | |
***** BB42, stmt 1 | |
[000572] ------------ * STMT void (IL 0x092... ???) | |
[000571] ---XG------- \--* JTRUE void | |
[000569] ------------ | /--* CNS_INT int 0 | |
[000570] ---XG------- \--* EQ int | |
[000568] ---XG------- \--* FIELD bool _useBuilder | |
[000567] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB43 [092..093) -> BB45 (always), preds={} succs={BB45} | |
***** BB43, stmt 2 | |
[000590] ------------ * STMT void (IL 0x092... ???) | |
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000586] ---XG------- this in rcx +--* ADDR byref | |
[000585] ---XG------- | \--* FIELD struct _methodBuilder | |
[000584] ------------ | \--* LCL_VAR byref V29 tmp22 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
------------ BB44 [092..093), preds={} succs={BB45} | |
***** BB44, stmt 3 | |
[000577] ------------ * STMT void (IL 0x092... ???) | |
[000059] ------------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG------- \--* ASG int | |
[000575] ---XG--N---- \--* FIELD int _result | |
[000574] ------------ \--* LCL_VAR byref V29 tmp22 | |
***** BB44, stmt 4 | |
[000582] ------------ * STMT void (IL 0x092... ???) | |
[000579] ------------ | /--* CNS_INT int 1 | |
[000581] -A-XG------- \--* ASG bool | |
[000580] ---XG--N---- \--* FIELD bool _haveResult | |
[000578] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined AsyncValueTaskMethodBuilder`1:SetResult(int):this (36 IL bytes) (depth 1) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncValueTaskMethodBuilder`1:SetResult(int):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement [000590] in BB43: | |
[000590] ------------ * STMT void (IL 0x092... ???) | |
[000588] I-CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000586] ---XG------- this in rcx +--* ADDR byref | |
[000585] ---XG------- | \--* FIELD struct _methodBuilder | |
[000584] ------------ | \--* LCL_VAR byref V29 tmp22 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
Note: candidate is implicit tail call | |
thisArg: has global refs has side effects | |
[000586] ---XG------- * ADDR byref | |
[000585] ---XG------- \--* FIELD struct _methodBuilder | |
[000584] ------------ \--* LCL_VAR byref V29 tmp22 | |
Argument #1: is a local var | |
[000587] ------------ * LCL_VAR int V02 loc1 | |
INLINER: inlineInfo.tokenLookupContextHandle for AsyncTaskMethodBuilder`1:SetResult(int):this set to 0x00007FFC6B4B5471: | |
Invoking compiler for the inlinee method AsyncTaskMethodBuilder`1:SetResult(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 05 0c 00 0a ldfld 0xA000C05 | |
IL_0006 2d 0d brtrue.s 13 (IL_0015) | |
IL_0008 02 ldarg.0 | |
IL_0009 03 ldarg.1 | |
IL_000a 28 06 09 00 0a call 0xA000906 | |
IL_000f 7d 05 0c 00 0a stfld 0xA000C05 | |
IL_0014 2a ret | |
IL_0015 02 ldarg.0 | |
IL_0016 03 ldarg.1 | |
IL_0017 28 10 0c 00 0a call 0xA000C10 | |
IL_001c 2a ret | |
INLINER impTokenLookupContextHandle for AsyncTaskMethodBuilder`1:SetResult(int):this is 0x00007FFC6B4B5471. | |
*************** In fgFindBasicBlocks() for AsyncTaskMethodBuilder`1:SetResult(int):this | |
weight= 31 : state 191 [ ldarg.0 -> ldfld ] | |
weight= 25 : state 45 [ brtrue.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 79 : state 40 [ call ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 79 : state 40 [ call ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in methods of promotable struct increased to 3. | |
Inline candidate looks like a wrapper method. Multiplier increased to 4. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 5. | |
Inline candidate callsite is boring. Multiplier increased to 6.3. | |
calleeNativeSizeEstimate=335 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=6.3 | |
threshold=724 | |
Native estimate for function size is within threshold for inlining 33.5 <= 72.4 (multiplier = 6.3) | |
Jump targets: | |
IL_0015 | |
New Basic Block BB46 [0045] created. | |
BB46 [000..008) | |
New Basic Block BB47 [0046] created. | |
BB47 [008..015) | |
New Basic Block BB48 [0047] created. | |
BB48 [015..01D) | |
Basic block list for 'AsyncTaskMethodBuilder`1:SetResult(int):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB46 [0045] 1 1 [000..008)-> BB48 ( cond ) | |
BB47 [0046] 1 1 [008..015) (return) | |
BB48 [0047] 1 1 [015..01D) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for AsyncTaskMethodBuilder`1:SetResult(int):this | |
impImportBlockPending for BB46 | |
Importing BB46 (PC=000) of 'AsyncTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
lvaGrabTemp returning 30 (V30 tmp23) called for Inlining Arg. | |
[ 1] 1 (0x001) ldfld 0A000C05 | |
[ 1] 6 (0x006) brtrue.s | |
[000601] ------------ * STMT void | |
[000600] ---XG------- \--* JTRUE void | |
[000598] ------------ | /--* CNS_INT ref null | |
[000599] ---XG------- \--* NE int | |
[000597] ---XG------- \--* FIELD ref m_task | |
[000596] ------------ \--* LCL_VAR byref V30 tmp23 | |
impImportBlockPending for BB47 | |
impImportBlockPending for BB48 | |
Importing BB48 (PC=021) of 'AsyncTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 21 (0x015) ldarg.0 | |
[ 1] 22 (0x016) ldarg.1 | |
[ 2] 23 (0x017) call 0A000C10 (Inline Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
GTF_CALL_M_IMPLICIT_TAILCALL bit set for call [000604] | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'AsyncTaskMethodBuilder`1:SetResult(int):this' calling 'AsyncTaskMethodBuilder`1:SetExistingTaskResult(int):this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[000606] ------------ * STMT void | |
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
[ 0] 28 (0x01c) ret | |
Importing BB47 (PC=008) of 'AsyncTaskMethodBuilder`1:SetResult(int):this' | |
[ 0] 8 (0x008) ldarg.0 | |
[ 1] 9 (0x009) ldarg.1 | |
[ 2] 10 (0x00a) call 0A000906 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[000612] ------------ * STMT void | |
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1 | |
[ 2] 15 (0x00f) stfld 0A000C05 | |
[000616] ------------ * STMT void | |
[000613] --C--------- | /--* RET_EXPR ref (inl return from call [000610]) | |
[000615] -ACXG------- \--* ASG ref | |
[000614] ---XG--N---- \--* FIELD ref m_task | |
[000608] ------------ \--* LCL_VAR byref V30 tmp23 | |
[ 0] 20 (0x014) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB46 [0045] 1 1 [000..008)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [008..015) (return) i | |
BB48 [0047] 1 1 [015..01D) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000588] ----------- | |
Arguments setup: | |
[000619] ------------ * STMT void (IL 0x092... ???) | |
[000586] ---XG------- | /--* ADDR byref | |
[000585] ---XG------- | | \--* FIELD struct _methodBuilder | |
[000584] ------------ | | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG------- \--* ASG byref | |
[000617] D------N---- \--* LCL_VAR byref V30 tmp23 | |
Inlinee method body:New Basic Block BB49 [0048] created. | |
Convert bbJumpKind of BB47 to BBJ_ALWAYS to bottomBlock BB49 | |
Convert bbJumpKind of BB48 to BBJ_NONE | |
fgInlineAppendStatements: no gc ref inline locals. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093)-> BB49 (always) i | |
BB48 [0047] 1 1 [092..093) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB46 [092..093) -> BB48 (cond), preds={} succs={BB47,BB48} | |
***** BB46, stmt 1 | |
[000601] ------------ * STMT void (IL 0x092... ???) | |
[000600] ---XG------- \--* JTRUE void | |
[000598] ------------ | /--* CNS_INT ref null | |
[000599] ---XG------- \--* NE int | |
[000597] ---XG------- \--* FIELD ref m_task | |
[000596] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB47 [092..093) -> BB49 (always), preds={} succs={BB49} | |
***** BB47, stmt 2 | |
[000612] ------------ * STMT void (IL 0x092... ???) | |
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1 | |
***** BB47, stmt 3 | |
[000616] ------------ * STMT void (IL 0x092... ???) | |
[000613] --C--------- | /--* RET_EXPR ref (inl return from call [000610]) | |
[000615] -ACXG------- \--* ASG ref | |
[000614] ---XG--N---- \--* FIELD ref m_task | |
[000608] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB48 [092..093), preds={} succs={BB49} | |
***** BB48, stmt 4 | |
[000606] ------------ * STMT void (IL 0x092... ???) | |
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined AsyncTaskMethodBuilder`1:SetResult(int):this (29 IL bytes) (depth 2) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:SetResult(int):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement [000612] in BB47: | |
[000612] ------------ * STMT void (IL 0x092... ???) | |
[000610] I-C-G------- \--* CALL ref AsyncTaskMethodBuilder`1.GetTaskForResult (exactContextHnd=0x00007FFC6B4B5471) | |
[000609] ------------ arg0 \--* LCL_VAR int V02 loc1 | |
Argument #0: is a local var | |
[000609] ------------ * LCL_VAR int V02 loc1 | |
INLINER: inlineInfo.tokenLookupContextHandle for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref set to 0x00007FFC6B4B5471: | |
Invoking compiler for the inlinee method AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref : | |
IL to import: | |
IL_0000 12 00 ldloca.s 0x0 | |
IL_0002 fe 15 03 00 00 1b initobj 0x1B000003 | |
IL_0008 06 ldloc.0 | |
IL_0009 8c 03 00 00 1b box 0x1B000003 | |
IL_000e 39 40 02 00 00 brfalse 576 (IL_0253) | |
IL_0013 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_0018 28 a6 09 00 06 call 0x60009A6 | |
IL_001d d0 ff 00 00 02 ldtoken 0x20000FF | |
IL_0022 28 a6 09 00 06 call 0x60009A6 | |
IL_0027 28 ad 09 00 06 call 0x60009AD | |
IL_002c 2c 23 brfalse.s 35 (IL_0051) | |
IL_002e 02 ldarg.0 | |
IL_002f 8c 03 00 00 1b box 0x1B000003 | |
IL_0034 a5 ff 00 00 02 unbox.any 0x20000FF | |
IL_0039 0b stloc.1 | |
IL_003a 07 ldloc.1 | |
IL_003b 2d 07 brtrue.s 7 (IL_0044) | |
IL_003d 7e fe 1c 00 04 ldsfld 0x4001CFE | |
IL_0042 2b 05 br.s 5 (IL_0049) | |
IL_0044 7e fd 1c 00 04 ldsfld 0x4001CFD | |
IL_0049 0c stloc.2 | |
IL_004a 08 ldloc.2 | |
IL_004b 28 51 03 00 2b call 0x2B000351 | |
IL_0050 2a ret | |
IL_0051 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_0056 28 a6 09 00 06 call 0x60009A6 | |
IL_005b d0 48 01 00 02 ldtoken 0x2000148 | |
IL_0060 28 a6 09 00 06 call 0x60009A6 | |
IL_0065 28 ad 09 00 06 call 0x60009AD | |
IL_006a 2c 2e brfalse.s 46 (IL_009a) | |
IL_006c 02 ldarg.0 | |
IL_006d 8c 03 00 00 1b box 0x1B000003 | |
IL_0072 a5 48 01 00 02 unbox.any 0x2000148 | |
IL_0077 0d stloc.3 | |
IL_0078 09 ldloc.3 | |
IL_0079 1f 09 ldc.i4.s 0x9 | |
IL_007b 3c e1 01 00 00 bge 481 (IL_0261) | |
IL_0080 09 ldloc.3 | |
IL_0081 15 ldc.i4.m1 | |
IL_0082 3f da 01 00 00 blt 474 (IL_0261) | |
IL_0087 7e ff 1c 00 04 ldsfld 0x4001CFF | |
IL_008c 09 ldloc.3 | |
IL_008d 15 ldc.i4.m1 | |
IL_008e 59 sub | |
IL_008f 9a ldelem.ref | |
IL_0090 13 04 stloc.s 0x4 | |
IL_0092 11 04 ldloc.s 0x4 | |
IL_0094 28 51 03 00 2b call 0x2B000351 | |
IL_0099 2a ret | |
IL_009a d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_009f 28 a6 09 00 06 call 0x60009A6 | |
IL_00a4 d0 a5 01 00 02 ldtoken 0x20001A5 | |
IL_00a9 28 a6 09 00 06 call 0x60009A6 | |
IL_00ae 28 ad 09 00 06 call 0x60009AD | |
IL_00b3 2c 10 brfalse.s 16 (IL_00c5) | |
IL_00b5 02 ldarg.0 | |
IL_00b6 8c 03 00 00 1b box 0x1B000003 | |
IL_00bb a5 a5 01 00 02 unbox.any 0x20001A5 | |
IL_00c0 39 88 01 00 00 brfalse 392 (IL_024d) | |
IL_00c5 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_00ca 28 a6 09 00 06 call 0x60009A6 | |
IL_00cf d0 00 01 00 02 ldtoken 0x2000100 | |
IL_00d4 28 a6 09 00 06 call 0x60009A6 | |
IL_00d9 28 ad 09 00 06 call 0x60009AD | |
IL_00de 2c 10 brfalse.s 16 (IL_00f0) | |
IL_00e0 02 ldarg.0 | |
IL_00e1 8c 03 00 00 1b box 0x1B000003 | |
IL_00e6 a5 00 01 00 02 unbox.any 0x2000100 | |
IL_00eb 39 5d 01 00 00 brfalse 349 (IL_024d) | |
IL_00f0 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_00f5 28 a6 09 00 06 call 0x60009A6 | |
IL_00fa d0 73 01 00 02 ldtoken 0x2000173 | |
IL_00ff 28 a6 09 00 06 call 0x60009A6 | |
IL_0104 28 ad 09 00 06 call 0x60009AD | |
IL_0109 2c 10 brfalse.s 16 (IL_011b) | |
IL_010b 02 ldarg.0 | |
IL_010c 8c 03 00 00 1b box 0x1B000003 | |
IL_0111 a5 73 01 00 02 unbox.any 0x2000173 | |
IL_0116 39 32 01 00 00 brfalse 306 (IL_024d) | |
IL_011b d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_0120 28 a6 09 00 06 call 0x60009A6 | |
IL_0125 d0 01 01 00 02 ldtoken 0x2000101 | |
IL_012a 28 a6 09 00 06 call 0x60009A6 | |
IL_012f 28 ad 09 00 06 call 0x60009AD | |
IL_0134 2c 10 brfalse.s 16 (IL_0146) | |
IL_0136 02 ldarg.0 | |
IL_0137 8c 03 00 00 1b box 0x1B000003 | |
IL_013c a5 01 01 00 02 unbox.any 0x2000101 | |
IL_0141 39 07 01 00 00 brfalse 263 (IL_024d) | |
IL_0146 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_014b 28 a6 09 00 06 call 0x60009A6 | |
IL_0150 d0 49 01 00 02 ldtoken 0x2000149 | |
IL_0155 28 a6 09 00 06 call 0x60009A6 | |
IL_015a 28 ad 09 00 06 call 0x60009AD | |
IL_015f 2c 10 brfalse.s 16 (IL_0171) | |
IL_0161 02 ldarg.0 | |
IL_0162 8c 03 00 00 1b box 0x1B000003 | |
IL_0167 a5 49 01 00 02 unbox.any 0x2000149 | |
IL_016c 39 dc 00 00 00 brfalse 220 (IL_024d) | |
IL_0171 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_0176 28 a6 09 00 06 call 0x60009A6 | |
IL_017b d0 a6 01 00 02 ldtoken 0x20001A6 | |
IL_0180 28 a6 09 00 06 call 0x60009A6 | |
IL_0185 28 ad 09 00 06 call 0x60009AD | |
IL_018a 2c 10 brfalse.s 16 (IL_019c) | |
IL_018c 02 ldarg.0 | |
IL_018d 8c 03 00 00 1b box 0x1B000003 | |
IL_0192 a5 a6 01 00 02 unbox.any 0x20001A6 | |
IL_0197 39 b1 00 00 00 brfalse 177 (IL_024d) | |
IL_019c d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_01a1 28 a6 09 00 06 call 0x60009A6 | |
IL_01a6 d0 47 01 00 02 ldtoken 0x2000147 | |
IL_01ab 28 a6 09 00 06 call 0x60009A6 | |
IL_01b0 28 ad 09 00 06 call 0x60009AD | |
IL_01b5 2c 10 brfalse.s 16 (IL_01c7) | |
IL_01b7 02 ldarg.0 | |
IL_01b8 8c 03 00 00 1b box 0x1B000003 | |
IL_01bd a5 47 01 00 02 unbox.any 0x2000147 | |
IL_01c2 39 86 00 00 00 brfalse 134 (IL_024d) | |
IL_01c7 d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_01cc 28 a6 09 00 06 call 0x60009A6 | |
IL_01d1 d0 a4 01 00 02 ldtoken 0x20001A4 | |
IL_01d6 28 a6 09 00 06 call 0x60009A6 | |
IL_01db 28 ad 09 00 06 call 0x60009AD | |
IL_01e0 2c 0d brfalse.s 13 (IL_01ef) | |
IL_01e2 02 ldarg.0 | |
IL_01e3 8c 03 00 00 1b box 0x1B000003 | |
IL_01e8 a5 a4 01 00 02 unbox.any 0x20001A4 | |
IL_01ed 2c 5e brfalse.s 94 (IL_024d) | |
IL_01ef d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_01f4 28 a6 09 00 06 call 0x60009A6 | |
IL_01f9 d0 4a 01 00 02 ldtoken 0x200014A | |
IL_01fe 28 a6 09 00 06 call 0x60009A6 | |
IL_0203 28 ad 09 00 06 call 0x60009AD | |
IL_0208 2c 14 brfalse.s 20 (IL_021e) | |
IL_020a 16 ldc.i4.0 | |
IL_020b d3 conv.i | |
IL_020c 02 ldarg.0 | |
IL_020d 8c 03 00 00 1b box 0x1B000003 | |
IL_0212 a5 4a 01 00 02 unbox.any 0x200014A | |
IL_0217 28 13 15 00 06 call 0x6001513 | |
IL_021c 2d 2f brtrue.s 47 (IL_024d) | |
IL_021e d0 03 00 00 1b ldtoken 0x1B000003 | |
IL_0223 28 a6 09 00 06 call 0x60009A6 | |
IL_0228 d0 a7 01 00 02 ldtoken 0x20001A7 | |
IL_022d 28 a6 09 00 06 call 0x60009A6 | |
IL_0232 28 ad 09 00 06 call 0x60009AD | |
IL_0237 2c 28 brfalse.s 40 (IL_0261) | |
IL_0239 16 ldc.i4.0 | |
IL_023a e0 conv.u | |
IL_023b 02 ldarg.0 | |
IL_023c 8c 03 00 00 1b box 0x1B000003 | |
IL_0241 a5 a7 01 00 02 unbox.any 0x20001A7 | |
IL_0246 28 c0 19 00 06 call 0x60019C0 | |
IL_024b 2c 14 brfalse.s 20 (IL_0261) | |
IL_024d 7e 14 0c 00 0a ldsfld 0xA000C14 | |
IL_0252 2a ret | |
IL_0253 02 ldarg.0 | |
IL_0254 8c 03 00 00 1b box 0x1B000003 | |
IL_0259 2d 06 brtrue.s 6 (IL_0261) | |
IL_025b 7e 14 0c 00 0a ldsfld 0xA000C14 | |
IL_0260 2a ret | |
IL_0261 02 ldarg.0 | |
IL_0262 73 15 0c 00 0a newobj 0xA000C15 | |
IL_0267 2a ret | |
INLINER impTokenLookupContextHandle for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref is 0x00007FFC6B4B5471. | |
*************** In fgFindBasicBlocks() for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref | |
Jump targets: | |
IL_0044 | |
IL_0049 | |
IL_0051 | |
IL_009a | |
IL_00c5 | |
IL_00f0 | |
IL_011b | |
IL_0146 | |
IL_0171 | |
IL_019c | |
IL_01c7 | |
IL_01ef | |
IL_021e | |
IL_024d multi | |
IL_0253 | |
IL_0261 multi | |
New Basic Block BB50 [0049] created. | |
BB50 [000..013) | |
New Basic Block BB51 [0050] created. | |
BB51 [013..02E) | |
New Basic Block BB52 [0051] created. | |
BB52 [02E..03D) | |
New Basic Block BB53 [0052] created. | |
BB53 [03D..044) | |
New Basic Block BB54 [0053] created. | |
BB54 [044..049) | |
New Basic Block BB55 [0054] created. | |
BB55 [049..051) | |
New Basic Block BB56 [0055] created. | |
BB56 [051..06C) | |
New Basic Block BB57 [0056] created. | |
BB57 [06C..080) | |
New Basic Block BB58 [0057] created. | |
BB58 [080..087) | |
New Basic Block BB59 [0058] created. | |
BB59 [087..09A) | |
New Basic Block BB60 [0059] created. | |
BB60 [09A..0B5) | |
New Basic Block BB61 [0060] created. | |
BB61 [0B5..0C5) | |
New Basic Block BB62 [0061] created. | |
BB62 [0C5..0E0) | |
New Basic Block BB63 [0062] created. | |
BB63 [0E0..0F0) | |
New Basic Block BB64 [0063] created. | |
BB64 [0F0..10B) | |
New Basic Block BB65 [0064] created. | |
BB65 [10B..11B) | |
New Basic Block BB66 [0065] created. | |
BB66 [11B..136) | |
New Basic Block BB67 [0066] created. | |
BB67 [136..146) | |
New Basic Block BB68 [0067] created. | |
BB68 [146..161) | |
New Basic Block BB69 [0068] created. | |
BB69 [161..171) | |
New Basic Block BB70 [0069] created. | |
BB70 [171..18C) | |
New Basic Block BB71 [0070] created. | |
BB71 [18C..19C) | |
New Basic Block BB72 [0071] created. | |
BB72 [19C..1B7) | |
New Basic Block BB73 [0072] created. | |
BB73 [1B7..1C7) | |
New Basic Block BB74 [0073] created. | |
BB74 [1C7..1E2) | |
New Basic Block BB75 [0074] created. | |
BB75 [1E2..1EF) | |
New Basic Block BB76 [0075] created. | |
BB76 [1EF..20A) | |
New Basic Block BB77 [0076] created. | |
BB77 [20A..21E) | |
New Basic Block BB78 [0077] created. | |
BB78 [21E..239) | |
New Basic Block BB79 [0078] created. | |
BB79 [239..24D) | |
New Basic Block BB80 [0079] created. | |
BB80 [24D..253) | |
New Basic Block BB81 [0080] created. | |
BB81 [253..25B) | |
New Basic Block BB82 [0081] created. | |
BB82 [25B..261) | |
New Basic Block BB83 [0082] created. | |
BB83 [261..268) | |
lvaGrabTemp returning 31 (V31 tmp24) (a long lifetime temp) called for Inline return value spill temp. | |
lvaSetClass: setting class for V31 to (00007FFC6B4AFBD8) Task`1 | |
Basic block list for 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB50 [0049] 1 1 [000..013)-> BB81 ( cond ) | |
BB51 [0050] 1 1 [013..02E)-> BB56 ( cond ) | |
BB52 [0051] 1 1 [02E..03D)-> BB54 ( cond ) | |
BB53 [0052] 1 1 [03D..044)-> BB55 (always) | |
BB54 [0053] 1 1 [044..049) | |
BB55 [0054] 2 1 [049..051) (return) | |
BB56 [0055] 1 1 [051..06C)-> BB60 ( cond ) | |
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond ) | |
BB58 [0057] 1 1 [080..087)-> BB83 ( cond ) | |
BB59 [0058] 1 1 [087..09A) (return) | |
BB60 [0059] 1 1 [09A..0B5)-> BB62 ( cond ) | |
BB61 [0060] 1 1 [0B5..0C5)-> BB80 ( cond ) | |
BB62 [0061] 2 1 [0C5..0E0)-> BB64 ( cond ) | |
BB63 [0062] 1 1 [0E0..0F0)-> BB80 ( cond ) | |
BB64 [0063] 2 1 [0F0..10B)-> BB66 ( cond ) | |
BB65 [0064] 1 1 [10B..11B)-> BB80 ( cond ) | |
BB66 [0065] 2 1 [11B..136)-> BB68 ( cond ) | |
BB67 [0066] 1 1 [136..146)-> BB80 ( cond ) | |
BB68 [0067] 2 1 [146..161)-> BB70 ( cond ) | |
BB69 [0068] 1 1 [161..171)-> BB80 ( cond ) | |
BB70 [0069] 2 1 [171..18C)-> BB72 ( cond ) | |
BB71 [0070] 1 1 [18C..19C)-> BB80 ( cond ) | |
BB72 [0071] 2 1 [19C..1B7)-> BB74 ( cond ) | |
BB73 [0072] 1 1 [1B7..1C7)-> BB80 ( cond ) | |
BB74 [0073] 2 1 [1C7..1E2)-> BB76 ( cond ) | |
BB75 [0074] 1 1 [1E2..1EF)-> BB80 ( cond ) | |
BB76 [0075] 2 1 [1EF..20A)-> BB78 ( cond ) | |
BB77 [0076] 1 1 [20A..21E)-> BB80 ( cond ) | |
BB78 [0077] 2 1 [21E..239)-> BB83 ( cond ) | |
BB79 [0078] 1 1 [239..24D)-> BB83 ( cond ) | |
BB80 [0079] 10 1 [24D..253) (return) | |
BB81 [0080] 1 1 [253..25B)-> BB83 ( cond ) | |
BB82 [0081] 1 1 [25B..261) (return) | |
BB83 [0082] 5 1 [261..268) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref | |
impImportBlockPending for BB50 | |
Importing BB50 (PC=000) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 0 (0x000) ldloca.s 0 | |
lvaGrabTemp returning 32 (V32 tmp25) (a long lifetime temp) called for Inline ldloca(s) first use temp. | |
[ 1] 2 (0x002) initobj 1B000003 | |
[000627] ------------ * STMT void | |
[000624] ------------ | /--* CNS_INT int 0 | |
[000626] IA------R--- \--* ASG struct (init) | |
[000625] -------N---- \--* BLK(4) struct | |
[000623] L----------- \--* ADDR byref | |
[000622] ------------ \--* LCL_VAR int V32 tmp25 | |
[ 0] 8 (0x008) ldloc.0 | |
[ 1] 9 (0x009) box 1B000003 | |
Compiler::impImportAndPushBox -- handling BOX(value class) via inline allocate/copy sequence | |
lvaGrabTemp returning 33 (V33 tmp26) called for Single-def Box Helper. | |
lvaSetClass: setting class for V33 to (00007FFC6B4A92C8) Int32 [exact] | |
[000633] ------------ * STMT void | |
[000630] ------------ | /--* ALLOCOBJ ref | |
[000629] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4a92c8 class | |
[000632] -A---------- \--* ASG ref | |
[000631] D------N---- \--* LCL_VAR ref V33 tmp26 | |
[000639] ------------ * STMT void | |
[000628] ------------ | /--* LCL_VAR int V32 tmp25 | |
[000638] -A---------- \--* ASG int | |
[000637] -------N---- \--* IND int | |
[000635] ------------ | /--* CNS_INT long 8 | |
[000636] ------------ \--* ADD byref | |
[000634] ------------ \--* LCL_VAR ref V33 tmp26 | |
[ 1] 14 (0x00e) brfalse | |
Attempting to optimize BOX(valueType) EQ null [000643] | |
gtTryRemoveBoxUpstreamEffects: attempting to remove side effects of BOX (valuetype) [000641] (assign/newobj [000633] copy [000639]) | |
Bashing NEWOBJ [000632] to NOP | |
Bashing COPY [000638] to NOP; no source side effects. | |
Success: replacing BOX(valueType) EQ null with 0 | |
The block falls through into the next BB51 | |
impImportBlockPending for BB51 | |
Importing BB51 (PC=019) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 19 (0x013) ldtoken | |
[ 1] 24 (0x018) call 060009A6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[ 1] 29 (0x01d) ldtoken | |
[ 2] 34 (0x022) call 060009A6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[ 2] 39 (0x027) call 060009AD | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 | |
Importing Type.op_*Equality intrinsic | |
Folding call to Type:op_Equality to a simple compare via EQ | |
Optimizing compare of types-from-handles to instead compare handles | |
Asking runtime to compare 00007FFC6B4A92C8 (Int32) and 00007FFC6B4A7468 (Boolean) for equality | |
Runtime reports comparison is known at jit time: 0 | |
[ 1] 44 (0x02c) brfalse.s | |
Folding operator with constant nodes into a constant: | |
[000654] ------------ /--* CNS_INT int 0 | |
[000655] ------------ * EQ int | |
[000653] ------------ \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000655] ------------ * CNS_INT int 1 | |
The conditional jump becomes an unconditional jump to BB56 | |
impImportBlockPending for BB56 | |
Importing BB56 (PC=081) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 81 (0x051) ldtoken | |
[ 1] 86 (0x056) call 060009A6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[ 1] 91 (0x05b) ldtoken | |
[ 2] 96 (0x060) call 060009A6 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[ 2] 101 (0x065) call 060009AD | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is bool, structSize is 0 | |
Importing Type.op_*Equality intrinsic | |
Folding call to Type:op_Equality to a simple compare via EQ | |
Optimizing compare of types-from-handles to instead compare handles | |
Asking runtime to compare 00007FFC6B4A92C8 (Int32) and 00007FFC6B4A92C8 (Int32) for equality | |
Runtime reports comparison is known at jit time: 1 | |
[ 1] 106 (0x06a) brfalse.s | |
Folding operator with constant nodes into a constant: | |
[000665] ------------ /--* CNS_INT int 0 | |
[000666] ------------ * EQ int | |
[000664] ------------ \--* CNS_INT int 1 | |
Bashed to int constant: | |
[000666] ------------ * CNS_INT int 0 | |
The block falls through into the next BB57 | |
impImportBlockPending for BB57 | |
Importing BB57 (PC=108) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 108 (0x06c) ldarg.0 | |
[ 1] 109 (0x06d) box 1B000003 | |
Importing BOX; UNBOX.ANY as NOP | |
[ 1] 119 (0x077) stloc.3 | |
lvaGrabTemp returning 34 (V34 tmp27) (a long lifetime temp) called for Inline stloc first use temp. | |
[000670] ------------ * STMT void | |
[000609] ------------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---------- \--* ASG int | |
[000668] D------N---- \--* LCL_VAR int V34 tmp27 | |
[ 0] 120 (0x078) ldloc.3 | |
[ 1] 121 (0x079) ldc.i4.s 9 | |
[ 2] 123 (0x07b) bge | |
[000675] ------------ * STMT void | |
[000674] ------------ \--* JTRUE void | |
[000672] ------------ | /--* CNS_INT int 9 | |
[000673] ------------ \--* GE int | |
[000671] ------------ \--* LCL_VAR int V34 tmp27 | |
impImportBlockPending for BB58 | |
impImportBlockPending for BB83 | |
Importing BB83 (PC=609) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 609 (0x261) ldarg.0 | |
[ 1] 610 (0x262) newobj | |
lvaGrabTemp returning 35 (V35 tmp28) called for NewObj constructor temp. | |
[000682] ------------ * STMT void | |
[000679] ------------ | /--* ALLOCOBJ ref | |
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -A---------- \--* ASG ref | |
[000680] D------N---- \--* LCL_VAR ref V35 tmp28 | |
lvaSetClass: setting class for V35 to (00007FFC6B4AFBD8) Task`1 [exact] | |
0A000C15 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
[000686] ------------ * STMT void | |
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
[ 1] 615 (0x267) ret | |
Inlinee Return expression (before normalization) => | |
[000687] ------------ * LCL_VAR ref V35 tmp28 | |
[000690] ------------ * STMT void | |
[000687] ------------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---------- \--* ASG ref | |
[000688] D------N---- \--* LCL_VAR ref V31 tmp24 | |
Inlinee Return expression (after normalization) => | |
[000691] ------------ * LCL_VAR ref V31 tmp24 | |
Importing BB58 (PC=128) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 128 (0x080) ldloc.3 | |
[ 1] 129 (0x081) ldc.i4.m1 -1 | |
[ 2] 130 (0x082) blt | |
[000697] ------------ * STMT void | |
[000696] ------------ \--* JTRUE void | |
[000694] ------------ | /--* CNS_INT int -1 | |
[000695] ------------ \--* LT int | |
[000693] ------------ \--* LCL_VAR int V34 tmp27 | |
impImportBlockPending for BB59 | |
impImportBlockPending for BB83 | |
Importing BB59 (PC=135) of 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
[ 0] 135 (0x087) ldsfld 04001CFF | |
[ 1] 140 (0x08c) ldloc.3 | |
[ 2] 141 (0x08d) ldc.i4.m1 -1 | |
[ 3] 142 (0x08e) sub | |
[ 2] 143 (0x08f) ldelem.ref | |
[ 1] 144 (0x090) stloc.s 4 | |
lvaGrabTemp returning 36 (V36 tmp29) (a long lifetime temp) called for Inline stloc first use temp. | |
lvaSetClass: setting class for V36 to (00007FFC6B4AFBD8) Task`1 | |
[000713] ------------ * STMT void | |
[000708] ------------ | /--* CNS_INT int -1 | |
[000709] ------------ | /--* SUB int | |
[000707] ------------ | | \--* LCL_VAR int V34 tmp27 | |
[000710] R-CXG------- | /--* INDEX ref | |
[000699] ----G------- | | | /--* FIELD ref Int32Tasks | |
[000706] --CXG------- | | \--* COMMA ref | |
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A | |
[000712] -ACXG------- \--* ASG ref | |
[000711] D------N---- \--* LCL_VAR ref V36 tmp29 | |
[ 0] 146 (0x092) ldloc.s 4 | |
[ 1] 148 (0x094) call 2B000351 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is ref, structSize is 0 | |
[000719] ------------ * STMT void | |
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98) | |
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method | |
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29 | |
[ 1] 153 (0x099) ret | |
Inlinee Return expression (before normalization) => | |
[000720] --C--------- * RET_EXPR ref (inl return from call [000715]) | |
[000723] ------------ * STMT void | |
[000720] --C--------- | /--* RET_EXPR ref (inl return from call [000715]) | |
[000722] -AC--------- \--* ASG ref | |
[000721] D------N---- \--* LCL_VAR ref V31 tmp24 | |
Inlinee Return expression (after normalization) => | |
[000724] ------------ * LCL_VAR ref V31 tmp24 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB50 [0049] 1 1 [000..013) i newobj | |
BB51 [0050] 1 1 [013..02E)-> BB56 (always) i | |
BB52 [0051] 1 1 [02E..03D)-> BB54 ( cond ) | |
BB53 [0052] 1 1 [03D..044)-> BB55 (always) | |
BB54 [0053] 1 1 [044..049) | |
BB55 [0054] 2 1 [049..051) (return) | |
BB56 [0055] 1 1 [051..06C) i | |
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond ) i | |
BB58 [0057] 1 1 [080..087)-> BB83 ( cond ) i | |
BB59 [0058] 1 1 [087..09A) (return) i | |
BB60 [0059] 1 1 [09A..0B5)-> BB62 ( cond ) | |
BB61 [0060] 1 1 [0B5..0C5)-> BB80 ( cond ) | |
BB62 [0061] 2 1 [0C5..0E0)-> BB64 ( cond ) | |
BB63 [0062] 1 1 [0E0..0F0)-> BB80 ( cond ) | |
BB64 [0063] 2 1 [0F0..10B)-> BB66 ( cond ) | |
BB65 [0064] 1 1 [10B..11B)-> BB80 ( cond ) | |
BB66 [0065] 2 1 [11B..136)-> BB68 ( cond ) | |
BB67 [0066] 1 1 [136..146)-> BB80 ( cond ) | |
BB68 [0067] 2 1 [146..161)-> BB70 ( cond ) | |
BB69 [0068] 1 1 [161..171)-> BB80 ( cond ) | |
BB70 [0069] 2 1 [171..18C)-> BB72 ( cond ) | |
BB71 [0070] 1 1 [18C..19C)-> BB80 ( cond ) | |
BB72 [0071] 2 1 [19C..1B7)-> BB74 ( cond ) | |
BB73 [0072] 1 1 [1B7..1C7)-> BB80 ( cond ) | |
BB74 [0073] 2 1 [1C7..1E2)-> BB76 ( cond ) | |
BB75 [0074] 1 1 [1E2..1EF)-> BB80 ( cond ) | |
BB76 [0075] 2 1 [1EF..20A)-> BB78 ( cond ) | |
BB77 [0076] 1 1 [20A..21E)-> BB80 ( cond ) | |
BB78 [0077] 2 1 [21E..239)-> BB83 ( cond ) | |
BB79 [0078] 1 1 [239..24D)-> BB83 ( cond ) | |
BB80 [0079] 10 1 [24D..253) (return) | |
BB81 [0080] 1 1 [253..25B)-> BB83 ( cond ) | |
BB82 [0081] 1 1 [25B..261) (return) | |
BB83 [0082] 5 1 [261..268) (return) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB52 was not imported, marked as removed (1) | |
BB53 was not imported, marked as removed (2) | |
BB54 was not imported, marked as removed (3) | |
BB55 was not imported, marked as removed (4) | |
BB60 was not imported, marked as removed (5) | |
BB61 was not imported, marked as removed (6) | |
BB62 was not imported, marked as removed (7) | |
BB63 was not imported, marked as removed (8) | |
BB64 was not imported, marked as removed (9) | |
BB65 was not imported, marked as removed (10) | |
BB66 was not imported, marked as removed (11) | |
BB67 was not imported, marked as removed (12) | |
BB68 was not imported, marked as removed (13) | |
BB69 was not imported, marked as removed (14) | |
BB70 was not imported, marked as removed (15) | |
BB71 was not imported, marked as removed (16) | |
BB72 was not imported, marked as removed (17) | |
BB73 was not imported, marked as removed (18) | |
BB74 was not imported, marked as removed (19) | |
BB75 was not imported, marked as removed (20) | |
BB76 was not imported, marked as removed (21) | |
BB77 was not imported, marked as removed (22) | |
BB78 was not imported, marked as removed (23) | |
BB79 was not imported, marked as removed (24) | |
BB80 was not imported, marked as removed (25) | |
BB81 was not imported, marked as removed (26) | |
BB82 was not imported, marked as removed (27) | |
Renumbering the basic blocks for fgRemoveEmptyBlocks | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB50 [0049] 1 1 [000..013) i newobj | |
BB51 [0050] 1 1 [013..02E)-> BB56 (always) i | |
BB56 [0055] 1 1 [051..06C) i | |
BB57 [0056] 1 1 [06C..080)-> BB83 ( cond ) i | |
BB58 [0057] 1 1 [080..087)-> BB83 ( cond ) i | |
BB59 [0058] 1 1 [087..09A) (return) i | |
BB83 [0082] 5 1 [261..268) (return) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
Renumber BB50 to BB84 | |
Renumber BB51 to BB85 | |
Renumber BB56 to BB86 | |
Renumber BB57 to BB87 | |
Renumber BB58 to BB88 | |
Renumber BB59 to BB89 | |
Renumber BB83 to BB90 | |
*************** After renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB84 [0049] 1 1 [000..013) i newobj | |
BB85 [0050] 1 1 [013..02E)-> BB86 (always) i | |
BB86 [0055] 1 1 [051..06C) i | |
BB87 [0056] 1 1 [06C..080)-> BB90 ( cond ) i | |
BB88 [0057] 1 1 [080..087)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [087..09A) (return) i | |
BB90 [0082] 5 1 [261..268) (return) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short) | |
----------- Statements (and blocks) added due to the inlining of call [000610] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB91 [0083] created. | |
Convert bbJumpKind of BB89 to BBJ_ALWAYS to bottomBlock BB91 | |
Convert bbJumpKind of BB90 to BBJ_NONE | |
fgInlineAppendStatements: nulling out gc ref inlinee locals. | |
[000728] ------------ * STMT void (IL 0x092... ???) | |
[000725] ------------ | /--* CNS_INT ref null | |
[000727] -A---------- \--* ASG ref | |
[000726] D------N---- \--* LCL_VAR ref V36 tmp29 | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB84 [092..093), preds={} succs={BB85} | |
***** BB84, stmt 1 | |
[000627] ------------ * STMT void (IL 0x092... ???) | |
[000624] ------------ | /--* CNS_INT int 0 | |
[000626] IA------R--- \--* ASG struct (init) | |
[000625] -------N---- \--* BLK(4) struct | |
[000623] L----------- \--* ADDR byref | |
[000622] ------------ \--* LCL_VAR int V32 tmp25 | |
***** BB84, stmt 2 | |
[000633] ------------ * STMT void (IL 0x092... ???) | |
[000632] ------------ \--* NOP void | |
***** BB84, stmt 3 | |
[000639] ------------ * STMT void (IL 0x092... ???) | |
[000638] ------------ \--* NOP void | |
------------ BB85 [092..093) -> BB86 (always), preds={} succs={BB86} | |
------------ BB86 [092..093), preds={} succs={BB87} | |
------------ BB87 [092..093) -> BB90 (cond), preds={} succs={BB88,BB90} | |
***** BB87, stmt 4 | |
[000670] ------------ * STMT void (IL 0x092... ???) | |
[000609] ------------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---------- \--* ASG int | |
[000668] D------N---- \--* LCL_VAR int V34 tmp27 | |
***** BB87, stmt 5 | |
[000675] ------------ * STMT void (IL 0x092... ???) | |
[000674] ------------ \--* JTRUE void | |
[000672] ------------ | /--* CNS_INT int 9 | |
[000673] ------------ \--* GE int | |
[000671] ------------ \--* LCL_VAR int V34 tmp27 | |
------------ BB88 [092..093) -> BB90 (cond), preds={} succs={BB89,BB90} | |
***** BB88, stmt 6 | |
[000697] ------------ * STMT void (IL 0x092... ???) | |
[000696] ------------ \--* JTRUE void | |
[000694] ------------ | /--* CNS_INT int -1 | |
[000695] ------------ \--* LT int | |
[000693] ------------ \--* LCL_VAR int V34 tmp27 | |
------------ BB89 [092..093) -> BB91 (always), preds={} succs={BB91} | |
***** BB89, stmt 7 | |
[000713] ------------ * STMT void (IL 0x092... ???) | |
[000708] ------------ | /--* CNS_INT int -1 | |
[000709] ------------ | /--* SUB int | |
[000707] ------------ | | \--* LCL_VAR int V34 tmp27 | |
[000710] R-CXG------- | /--* INDEX ref | |
[000699] ----G------- | | | /--* FIELD ref Int32Tasks | |
[000706] --CXG------- | | \--* COMMA ref | |
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A | |
[000712] -ACXG------- \--* ASG ref | |
[000711] D------N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB89, stmt 8 | |
[000719] ------------ * STMT void (IL 0x092... ???) | |
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98) | |
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method | |
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29 | |
***** BB89, stmt 9 | |
[000723] ------------ * STMT void (IL 0x092... ???) | |
[000720] --C--------- | /--* RET_EXPR ref (inl return from call [000715]) | |
[000722] -AC--------- \--* ASG ref | |
[000721] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB90 [092..093), preds={} succs={BB91} | |
***** BB90, stmt 10 | |
[000682] ------------ * STMT void (IL 0x092... ???) | |
[000679] ------------ | /--* ALLOCOBJ ref | |
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -A---------- \--* ASG ref | |
[000680] D------N---- \--* LCL_VAR ref V35 tmp28 | |
***** BB90, stmt 11 | |
[000686] ------------ * STMT void (IL 0x092... ???) | |
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
***** BB90, stmt 12 | |
[000690] ------------ * STMT void (IL 0x092... ???) | |
[000687] ------------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---------- \--* ASG ref | |
[000688] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------------------------------------------------------------------------------------------------------------- | |
INLINER: Updating optMethodFlags -- root:0 callee:2 new:2 | |
Return expression for call at [000610] is | |
[000724] ------------ * LCL_VAR ref V31 tmp24 | |
Successfully inlined AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref (616 IL bytes) (depth 3) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
BB47 becomes empty | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Expanding INLINE_CANDIDATE in statement [000719] in BB89: | |
[000719] ------------ * STMT void (IL 0x092... ???) | |
[000715] I-C-G------- \--* CALL ref Unsafe.As (exactContextHnd=0x00007FFC6ABCEF98) | |
[000716] ------------ arg0 +--* CNS_INT(h) long 0x7ffc6abcef98 method | |
[000714] ------------ arg1 \--* LCL_VAR ref V36 tmp29 | |
Argument #0: is a local var | |
[000714] ------------ * LCL_VAR ref V36 tmp29 | |
INLINER: inlineInfo.tokenLookupContextHandle for Unsafe:As(ref):ref set to 0x00007FFC6ABCEF98: | |
Invoking compiler for the inlinee method Unsafe:As(ref):ref : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 2a ret | |
INLINER impTokenLookupContextHandle for Unsafe:As(ref):ref is 0x00007FFC6ABCEF98. | |
*************** In fgFindBasicBlocks() for Unsafe:As(ref):ref | |
Jump targets: | |
none | |
New Basic Block BB92 [0084] created. | |
BB92 [000..002) | |
Basic block list for 'Unsafe:As(ref):ref' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB92 [0084] 1 1 [000..002) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Unsafe:As(ref):ref | |
impImportBlockPending for BB92 | |
Importing BB92 (PC=000) of 'Unsafe:As(ref):ref' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ret | |
Inlinee Return expression (before normalization) => | |
[000714] ------------ * LCL_VAR ref V36 tmp29 | |
Inlinee Return expression (after normalization) => | |
[000714] ------------ * LCL_VAR ref V36 tmp29 | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB92 [0084] 1 1 [000..002) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000715] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Return expression for call at [000715] is | |
[000714] ------------ * LCL_VAR ref V36 tmp29 | |
Successfully inlined Unsafe:As(ref):ref (2 IL bytes) (depth 4) [aggressive inline attribute] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for '<ValueTask1>d__1:MoveNext():this' calling 'Unsafe:As(ref):ref' | |
INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' | |
Replacing the return expression placeholder [000720] with [000714] | |
[000720] --C--------- * RET_EXPR ref (inl return from call [000714]) | |
Inserting the inline return expression | |
[000714] ------------ * LCL_VAR ref V36 tmp29 | |
Expanding INLINE_CANDIDATE in statement [000686] in BB90: | |
[000686] ------------ * STMT void (IL 0x092... ???) | |
[000684] I-C-G------- \--* CALL void Task`1..ctor (exactContextHnd=0x00007FFC6B4AFBD9) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000677] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
thisArg: is a local var | |
[000683] ------------ * LCL_VAR ref V35 tmp28 | |
Argument #1: is a local var | |
[000677] ------------ * LCL_VAR int V02 loc1 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task`1:.ctor(int):this set to 0x00007FFC6B4AFBD9: | |
Invoking compiler for the inlinee method Task`1:.ctor(int):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 16 ldc.i4.0 | |
IL_0002 16 ldc.i4.0 | |
IL_0003 12 00 ldloca.s 0x0 | |
IL_0005 fe 15 38 03 00 02 initobj 0x2000338 | |
IL_000b 06 ldloc.0 | |
IL_000c 28 b1 29 00 06 call 0x60029B1 | |
IL_0011 02 ldarg.0 | |
IL_0012 03 ldarg.1 | |
IL_0013 7d 94 07 00 0a stfld 0xA000794 | |
IL_0018 2a ret | |
INLINER impTokenLookupContextHandle for Task`1:.ctor(int):this is 0x00007FFC6B4AFBD9. | |
*************** In fgFindBasicBlocks() for Task`1:.ctor(int):this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 15 : state 23 [ ldc.i4.0 ] | |
weight= 15 : state 23 [ ldc.i4.0 ] | |
weight= 61 : state 19 [ ldloca.s ] | |
weight= 55 : state 180 [ initobj ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 69 : state 226 [ ldarg.0 -> ldarg.1 -> stfld ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in instance constructors increased to 1.5. | |
Inline candidate is mostly loads and stores. Multiplier increased to 4.5. | |
Inline candidate callsite is boring. Multiplier increased to 5.8. | |
calleeNativeSizeEstimate=335 | |
callsiteNativeSizeEstimate=115 | |
benefit multiplier=5.8 | |
threshold=667 | |
Native estimate for function size is within threshold for inlining 33.5 <= 66.7 (multiplier = 5.8) | |
Jump targets: | |
none | |
New Basic Block BB93 [0085] created. | |
BB93 [000..019) | |
Basic block list for 'Task`1:.ctor(int):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB93 [0085] 1 1 [000..019) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task`1:.ctor(int):this | |
impImportBlockPending for BB93 | |
Importing BB93 (PC=000) of 'Task`1:.ctor(int):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldc.i4.0 0 | |
[ 2] 2 (0x002) ldc.i4.0 0 | |
[ 3] 3 (0x003) ldloca.s 0 | |
lvaGrabTemp returning 37 (V37 tmp30) (a long lifetime temp) called for Inline ldloca(s) first use temp. | |
[ 4] 5 (0x005) initobj 02000338 | |
[000739] ------------ * STMT void | |
[000737] ------------ | /--* CNS_INT int 0 | |
[000738] IA------R--- \--* ASG struct (init) | |
[000735] D------N---- \--* LCL_VAR struct V37 tmp30 | |
[ 3] 11 (0x00b) ldloc.0 | |
[ 4] 12 (0x00c) call 060029B1 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000740] ------------ * LCL_VAR struct V37 tmp30 | |
resulting tree: | |
[000743] x----------- * OBJ(8) struct | |
[000742] L----------- \--* ADDR byref | |
[000740] ------------ \--* LCL_VAR struct V37 tmp30 | |
[000747] ------------ * STMT void | |
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000733] ------------ arg1 +--* CNS_INT int 0 | |
[000734] ------------ arg2 +--* CNS_INT int 0 | |
[000743] x----------- arg3 \--* OBJ(8) struct | |
[000742] L----------- \--* ADDR byref | |
[000740] ------------ \--* LCL_VAR struct V37 tmp30 | |
[ 0] 17 (0x011) ldarg.0 | |
[ 1] 18 (0x012) ldarg.1 | |
[ 2] 19 (0x013) stfld 0A000794 | |
[000751] ------------ * STMT void | |
[000677] ------------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG------- \--* ASG int | |
[000749] ---XG--N---- \--* FIELD int m_result | |
[000748] ------------ \--* LCL_VAR ref V35 tmp28 | |
[ 0] 24 (0x018) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB93 [0085] 1 1 [000..019) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000684] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000739] ------------ * STMT void (IL 0x092... ???) | |
[000737] ------------ | /--* CNS_INT int 0 | |
[000738] IA------R--- \--* ASG struct (init) | |
[000735] D------N---- \--* LCL_VAR struct V37 tmp30 | |
[000747] ------------ * STMT void (IL 0x092... ???) | |
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000733] ------------ arg1 +--* CNS_INT int 0 | |
[000734] ------------ arg2 +--* CNS_INT int 0 | |
[000743] x----------- arg3 \--* OBJ(8) struct | |
[000742] L----------- \--* ADDR byref | |
[000740] ------------ \--* LCL_VAR struct V37 tmp30 | |
[000751] ------------ * STMT void (IL 0x092... ???) | |
[000677] ------------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG------- \--* ASG int | |
[000749] ---XG--N---- \--* FIELD int m_result | |
[000748] ------------ \--* LCL_VAR ref V35 tmp28 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined Task`1:.ctor(int):this (25 IL bytes) (depth 4) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'Task`1:.ctor(int):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement [000747] in BB90: | |
[000747] ------------ * STMT void (IL 0x092... ???) | |
[000741] I-C-G------- \--* CALL void Task..ctor (exactContextHnd=0x00007FFC6B4AFAC1) | |
[000683] ------------ this in rcx +--* LCL_VAR ref V35 tmp28 | |
[000733] ------------ arg1 +--* CNS_INT int 0 | |
[000734] ------------ arg2 +--* CNS_INT int 0 | |
[000743] x----------- arg3 \--* OBJ(8) struct | |
[000742] L----------- \--* ADDR byref | |
[000740] ------------ \--* LCL_VAR struct V37 tmp30 | |
thisArg: is a local var | |
[000683] ------------ * LCL_VAR ref V35 tmp28 | |
Argument #1: is a constant | |
[000733] ------------ * CNS_INT int 0 | |
Argument #2: is a constant | |
[000734] ------------ * CNS_INT int 0 | |
Argument #3: has caller local ref | |
[000743] x----------- * OBJ(8) struct | |
[000742] L----------- \--* ADDR byref | |
[000740] ------------ \--* LCL_VAR struct V37 tmp30 | |
Folding operator with constant nodes into a constant: | |
[000753] ------------ * CAST int <- bool <- int | |
[000733] ------------ \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000753] ------------ * CNS_INT int 0 | |
INLINER: inlineInfo.tokenLookupContextHandle for Task:.ctor(bool,int,struct):this set to 0x00007FFC6B4AFAC1: | |
Invoking compiler for the inlinee method Task:.ctor(bool,int,struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 28 98 01 00 06 call 0x6000198 | |
IL_0006 04 ldarg.2 | |
IL_0007 0a stloc.0 | |
IL_0008 03 ldarg.1 | |
IL_0009 2c 2b brfalse.s 43 (IL_0036) | |
IL_000b 02 ldarg.0 | |
IL_000c 20 00 00 50 00 ldc.i4 0x500000 | |
IL_0011 06 ldloc.0 | |
IL_0012 60 or | |
IL_0013 fe 13 volatile. | |
IL_0015 7d fb 0d 00 04 stfld 0x4000DFB | |
IL_001a 02 ldarg.0 | |
IL_001b 73 7a 2a 00 06 newobj 0x6002A7A | |
IL_0020 25 dup | |
IL_0021 05 ldarg.3 | |
IL_0022 7d 1a 0e 00 04 stfld 0x4000E1A | |
IL_0027 25 dup | |
IL_0028 17 ldc.i4.1 | |
IL_0029 fe 13 volatile. | |
IL_002b 7d 1c 0e 00 04 stfld 0x4000E1C | |
IL_0030 7d 10 0e 00 04 stfld 0x4000E10 | |
IL_0035 2a ret | |
IL_0036 02 ldarg.0 | |
IL_0037 20 00 00 00 01 ldc.i4 0x1000000 | |
IL_003c 06 ldloc.0 | |
IL_003d 60 or | |
IL_003e fe 13 volatile. | |
IL_0040 7d fb 0d 00 04 stfld 0x4000DFB | |
IL_0045 2a ret | |
INLINER impTokenLookupContextHandle for Task:.ctor(bool,int,struct):this is 0x00007FFC6B4AFAC1. | |
*************** In fgFindBasicBlocks() for Task:.ctor(bool,int,struct):this | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 79 : state 40 [ call ] | |
weight= 35 : state 5 [ ldarg.2 ] | |
weight= 6 : state 11 [ stloc.0 ] | |
weight= 16 : state 4 [ ldarg.1 ] | |
weight= 27 : state 44 [ brfalse.s ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 38 : state 33 [ ldc.i4 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= -7 : state 84 [ or ] | |
weight=-44 : state 178 [ volatile ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight=227 : state 103 [ newobj ] | |
weight= 11 : state 38 [ dup ] | |
weight= 28 : state 6 [ ldarg.3 ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 11 : state 38 [ dup ] | |
weight= 28 : state 24 [ ldc.i4.1 ] | |
weight=-44 : state 178 [ volatile ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
weight= 10 : state 3 [ ldarg.0 ] | |
weight= 38 : state 33 [ ldc.i4 ] | |
weight= 12 : state 7 [ ldloc.0 ] | |
weight= -7 : state 84 [ or ] | |
weight=-44 : state 178 [ volatile ] | |
weight= 31 : state 111 [ stfld ] | |
weight= 19 : state 42 [ ret ] | |
multiplier in instance constructors increased to 1.5. | |
Inline candidate has an arg that feeds a constant test. Multiplier increased to 2.5. | |
Inline candidate has const arg that feeds a conditional. Multiplier increased to 5.5. | |
Inline candidate callsite is boring. Multiplier increased to 6.8. | |
calleeNativeSizeEstimate=655 | |
callsiteNativeSizeEstimate=175 | |
benefit multiplier=6.8 | |
threshold=1190 | |
Native estimate for function size is within threshold for inlining 65.5 <= 119 (multiplier = 6.8) | |
Jump targets: | |
IL_0036 | |
New Basic Block BB94 [0086] created. | |
BB94 [000..00B) | |
New Basic Block BB95 [0087] created. | |
BB95 [00B..036) | |
New Basic Block BB96 [0088] created. | |
BB96 [036..046) | |
Basic block list for 'Task:.ctor(bool,int,struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB94 [0086] 1 1 [000..00B)-> BB96 ( cond ) | |
BB95 [0087] 1 1 [00B..036) (return) | |
BB96 [0088] 1 1 [036..046) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Task:.ctor(bool,int,struct):this | |
impImportBlockPending for BB94 | |
Importing BB94 (PC=000) of 'Task:.ctor(bool,int,struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) call 06000198 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000756] ------------ * STMT void | |
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9) | |
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28 | |
[ 0] 6 (0x006) ldarg.2 | |
[ 1] 7 (0x007) stloc.0 | |
lvaGrabTemp returning 38 (V38 tmp31) (a long lifetime temp) called for Inline stloc first use temp. | |
[000760] ------------ * STMT void | |
[000757] ------------ | /--* CNS_INT int 0 | |
[000759] -A---------- \--* ASG int | |
[000758] D------N---- \--* LCL_VAR int V38 tmp31 | |
[ 0] 8 (0x008) ldarg.1 | |
[ 1] 9 (0x009) brfalse.s | |
Folding operator with constant nodes into a constant: | |
[000762] ------------ /--* CNS_INT int 0 | |
[000763] ------------ * EQ int | |
[000761] ------------ \--* CNS_INT int 0 | |
Bashed to int constant: | |
[000763] ------------ * CNS_INT int 1 | |
The conditional jump becomes an unconditional jump to BB96 | |
impImportBlockPending for BB96 | |
Importing BB96 (PC=054) of 'Task:.ctor(bool,int,struct):this' | |
[ 0] 54 (0x036) ldarg.0 | |
[ 1] 55 (0x037) ldc.i4 16777216 | |
[ 2] 60 (0x03c) ldloc.0 | |
[ 3] 61 (0x03d) or | |
[ 2] 62 (0x03e) volatile.stfld 04000DFB | |
[000771] ------------ * STMT void | |
[000767] ------------ | /--* LCL_VAR int V38 tmp31 | |
[000768] ------------ | /--* OR int | |
[000766] ------------ | | \--* CNS_INT int 0x1000000 | |
[000770] -A-XGO------ \--* ASG int | |
[000769] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000765] ------------ \--* LCL_VAR ref V35 tmp28 | |
[ 0] 69 (0x045) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB94 [0086] 1 1 [000..00B)-> BB96 (always) i | |
BB95 [0087] 1 1 [00B..036) (return) | |
BB96 [0088] 1 1 [036..046) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB95 was not imported, marked as removed (1) | |
Renumbering the basic blocks for fgRemoveEmptyBlocks | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB94 [0086] 1 1 [000..00B)-> BB96 (always) i | |
BB96 [0088] 1 1 [036..046) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
Renumber BB94 to BB97 | |
Renumber BB96 to BB98 | |
*************** After renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB97 [0086] 1 1 [000..00B)-> BB98 (always) i | |
BB98 [0088] 1 1 [036..046) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
New BlockSet epoch 1, # of blocks (including unused BB00): 1, bitset array size: 1 (short) | |
----------- Statements (and blocks) added due to the inlining of call [000741] ----------- | |
Arguments setup: | |
Inlinee method body:New Basic Block BB99 [0089] created. | |
Convert bbJumpKind of BB98 to BBJ_NONE | |
fgInlineAppendStatements: no gc ref inline locals. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB97 [092..093) -> BB98 (always), preds={} succs={BB98} | |
***** BB97, stmt 1 | |
[000756] ------------ * STMT void (IL 0x092... ???) | |
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9) | |
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28 | |
***** BB97, stmt 2 | |
[000760] ------------ * STMT void (IL 0x092... ???) | |
[000757] ------------ | /--* CNS_INT int 0 | |
[000759] -A---------- \--* ASG int | |
[000758] D------N---- \--* LCL_VAR int V38 tmp31 | |
------------ BB98 [092..093), preds={} succs={BB99} | |
***** BB98, stmt 3 | |
[000771] ------------ * STMT void (IL 0x092... ???) | |
[000767] ------------ | /--* LCL_VAR int V38 tmp31 | |
[000768] ------------ | /--* OR int | |
[000766] ------------ | | \--* CNS_INT int 0x1000000 | |
[000770] -A-XGO------ \--* ASG int | |
[000769] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000765] ------------ \--* LCL_VAR ref V35 tmp28 | |
------------------------------------------------------------------------------------------------------------------- | |
Successfully inlined Task:.ctor(bool,int,struct):this (70 IL bytes) (depth 5) [profitable inline] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for '<ValueTask1>d__1:MoveNext():this' calling 'Task:.ctor(bool,int,struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'profitable inline' | |
Expanding INLINE_CANDIDATE in statement [000756] in BB97: | |
[000756] ------------ * STMT void (IL 0x092... ???) | |
[000755] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC6B4A7DB9) | |
[000683] ------------ this in rcx \--* LCL_VAR ref V35 tmp28 | |
thisArg: is a local var | |
[000683] ------------ * LCL_VAR ref V35 tmp28 | |
INLINER: inlineInfo.tokenLookupContextHandle for Object:.ctor():this set to 0x00007FFC6B4A7DB9: | |
Invoking compiler for the inlinee method Object:.ctor():this : | |
IL to import: | |
IL_0000 2a ret | |
INLINER impTokenLookupContextHandle for Object:.ctor():this is 0x00007FFC6B4A7DB9. | |
*************** In fgFindBasicBlocks() for Object:.ctor():this | |
Jump targets: | |
none | |
New Basic Block BB100 [0090] created. | |
BB100 [000..001) | |
Basic block list for 'Object:.ctor():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB100 [0090] 1 1 [000..001) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Object:.ctor():this | |
impImportBlockPending for BB100 | |
Importing BB100 (PC=000) of 'Object:.ctor():this' | |
[ 0] 0 (0x000) ret | |
After impImport() added block for try,catch,finally | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB100 [0090] 1 1 [000..001) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
----------- Statements (and blocks) added due to the inlining of call [000755] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 6) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for '<ValueTask1>d__1:MoveNext():this' calling 'Object:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Replacing the return expression placeholder [000613] with [000724] | |
[000613] --C--------- * RET_EXPR ref (inl return from call [000724]) | |
Inserting the inline return expression | |
[000724] ------------ * LCL_VAR ref V31 tmp24 | |
*************** After fgInline() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
[000005] ------------ * STMT void (IL 0x000...0x006) | |
[000002] ---XG------- | /--* FIELD int <>1__state | |
[000001] ------------ | | \--* LCL_VAR byref V00 this | |
[000004] -A-XG------- \--* ASG int | |
[000003] D------N---- \--* LCL_VAR int V01 loc0 | |
------------ BB02 [007..00A) -> BB05 (cond), preds={} succs={BB03,BB05} | |
***** BB02, stmt 2 | |
[000013] ------------ * STMT void (IL 0x007...0x008) | |
[000012] ------------ \--* JTRUE void | |
[000010] ------------ | /--* CNS_INT int 0 | |
[000011] ------------ \--* EQ int | |
[000009] ------------ \--* LCL_VAR int V01 loc0 | |
------------ BB03 [00A..02B), preds={} succs={BB18} | |
***** BB03, stmt 3 | |
[000155] ------------ * STMT void (IL 0x00A... ???) | |
[000153] ------------ | /--* CNS_INT int 0 | |
[000154] IA------R--- \--* ASG struct (init) | |
[000152] D------N---- \--* LCL_VAR struct V10 tmp3 | |
***** BB03, stmt 4 | |
[000172] ------------ * STMT void (IL 0x00A... ???) | |
[000169] ------------ | /--* CNS_INT int 1 | |
[000171] -A---------- \--* ASG int | |
[000170] -------N---- \--* FIELD int _result | |
[000167] L----------- \--* ADDR byref | |
[000168] ------------ \--* LCL_VAR struct V10 tmp3 | |
***** BB03, stmt 5 | |
[000178] ------------ * STMT void (IL 0x00A... ???) | |
[000175] ------------ | /--* CNS_INT ref null | |
[000177] -A---------- \--* ASG ref | |
[000176] -------N---- \--* FIELD ref _obj | |
[000173] L----------- \--* ADDR byref | |
[000174] ------------ \--* LCL_VAR struct V10 tmp3 | |
***** BB03, stmt 6 | |
[000184] ------------ * STMT void (IL 0x00A... ???) | |
[000181] ------------ | /--* CNS_INT int 1 | |
[000183] -A---------- \--* ASG bool | |
[000182] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000179] L----------- \--* ADDR byref | |
[000180] ------------ \--* LCL_VAR struct V10 tmp3 | |
***** BB03, stmt 7 | |
[000190] ------------ * STMT void (IL 0x00A... ???) | |
[000187] ------------ | /--* CNS_INT int 0 | |
[000189] -A---------- \--* ASG short | |
[000188] -------N---- \--* FIELD short _token | |
[000185] L----------- \--* ADDR byref | |
[000186] ------------ \--* LCL_VAR struct V10 tmp3 | |
***** BB03, stmt 8 | |
[000073] ------------ * STMT void (IL ???... ???) | |
[000161] ------------ | /--* LCL_VAR struct V10 tmp3 | |
[000164] -A------R--- \--* ASG struct (copy) | |
[000163] D----------- \--* LCL_VAR struct V04 loc3 | |
***** BB03, stmt 9 | |
[000207] ------------ * STMT void (IL 0x010... ???) | |
[000205] ------------ | /--* CNS_INT int 0 | |
[000206] IA------R--- \--* ASG struct (init) | |
[000204] D------N---- \--* LCL_VAR struct V11 tmp4 | |
***** BB03, stmt 10 | |
[000261] ------------ * STMT void (IL 0x010... ???) | |
[000196] ------------ | /--* FIELD ref _obj | |
[000194] L----------- | | \--* ADDR byref | |
[000195] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000260] -A---------- \--* ASG ref | |
[000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
***** BB03, stmt 11 | |
[000264] ------------ * STMT void (IL 0x010... ???) | |
[000199] ------------ | /--* FIELD int _result | |
[000197] L----------- | | \--* ADDR byref | |
[000198] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000263] -A---------- \--* ASG int | |
[000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
***** BB03, stmt 12 | |
[000267] ------------ * STMT void (IL 0x010... ???) | |
[000202] ------------ | /--* FIELD short _token | |
[000200] L----------- | | \--* ADDR byref | |
[000201] ------------ | | \--* LCL_VAR struct V04 loc3 | |
[000266] -A---------- \--* ASG short | |
[000265] D------N---- \--* LCL_VAR short V15 tmp8 | |
***** BB03, stmt 13 | |
[000240] ------------ * STMT void (IL 0x010... ???) | |
[000237] ------------ | /--* LCL_VAR ref V13 tmp6 | |
[000239] -A---------- \--* ASG ref | |
[000238] -------N---- \--* FIELD ref _obj | |
[000235] L----------- \--* ADDR byref | |
[000236] ------------ \--* LCL_VAR struct V11 tmp4 | |
***** BB03, stmt 14 | |
[000246] ------------ * STMT void (IL 0x010... ???) | |
[000243] ------------ | /--* LCL_VAR int V14 tmp7 | |
[000245] -A---------- \--* ASG int | |
[000244] -------N---- \--* FIELD int _result | |
[000241] L----------- \--* ADDR byref | |
[000242] ------------ \--* LCL_VAR struct V11 tmp4 | |
***** BB03, stmt 15 | |
[000252] ------------ * STMT void (IL 0x010... ???) | |
[000249] ------------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---------- \--* ASG short | |
[000250] -------N---- \--* FIELD short _token | |
[000247] L----------- \--* ADDR byref | |
[000248] ------------ \--* LCL_VAR struct V11 tmp4 | |
***** BB03, stmt 16 | |
[000258] ------------ * STMT void (IL 0x010... ???) | |
[000255] ------------ | /--* CNS_INT int 0 | |
[000257] -A---------- \--* ASG bool | |
[000256] -------N---- \--* FIELD bool _continueOnCapturedContext | |
[000253] L----------- \--* ADDR byref | |
[000254] ------------ \--* LCL_VAR struct V11 tmp4 | |
***** BB03, stmt 17 | |
[000220] ------------ * STMT void (IL 0x010... ???) | |
[000218] ------------ | /--* CNS_INT int 0 | |
[000219] IA------R--- \--* ASG struct (init) | |
[000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
***** BB03, stmt 18 | |
[000281] ------------ * STMT void (IL 0x010... ???) | |
[000225] x----------- | /--* OBJ(16) struct | |
[000224] L----------- | | \--* ADDR byref | |
[000216] ------------ | | \--* LCL_VAR struct V11 tmp4 | |
[000280] -A------R--- \--* ASG struct (copy) | |
[000278] D----------- \--* LCL_VAR struct V16 tmp9 | |
***** BB03, stmt 19 | |
[000277] ------------ * STMT void (IL 0x010... ???) | |
[000272] ------------ | /--* LCL_VAR struct V16 tmp9 | |
[000276] -A------R--- \--* ASG struct (copy) | |
[000275] ------------ \--* OBJ(16) struct | |
[000274] ------------ \--* ADDR byref | |
[000273] ------------ \--* FIELD struct _value | |
[000270] L----------- \--* ADDR byref | |
[000271] ------------ \--* LCL_VAR struct V12 tmp5 | |
***** BB03, stmt 20 | |
[000084] ------------ * STMT void (IL ???... ???) | |
[000228] ------------ | /--* LCL_VAR struct V12 tmp5 | |
[000231] -A------R--- \--* ASG struct (copy) | |
[000230] D----------- \--* LCL_VAR struct V05 loc4 | |
***** BB03, stmt 21 | |
[000290] ------------ * STMT void (IL 0x01A... ???) | |
[000288] ------------ | /--* CNS_INT int 0 | |
[000289] IA------R--- \--* ASG struct (init) | |
[000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
***** BB03, stmt 22 | |
[000315] ------------ * STMT void (IL 0x01A... ???) | |
[000295] ---XG------- | /--* OBJ(16) struct | |
[000294] ------------ | | \--* ADDR byref | |
[000286] ------------ | | \--* FIELD struct _value | |
[000284] L----------- | | \--* ADDR byref | |
[000285] ------------ | | \--* LCL_VAR struct V05 loc4 | |
[000314] -A-XG---R--- \--* ASG struct (copy) | |
[000312] D----------- \--* LCL_VAR struct V18 tmp11 | |
***** BB03, stmt 23 | |
[000311] ------------ * STMT void (IL 0x01A... ???) | |
[000306] ------------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A------R--- \--* ASG struct (copy) | |
[000309] ------------ \--* OBJ(16) struct | |
[000308] ------------ \--* ADDR byref | |
[000307] ------------ \--* FIELD struct _value | |
[000304] L----------- \--* ADDR byref | |
[000305] ------------ \--* LCL_VAR struct V17 tmp10 | |
***** BB03, stmt 24 | |
[000093] ------------ * STMT void (IL ???... ???) | |
[000298] ------------ | /--* LCL_VAR struct V17 tmp10 | |
[000301] -A------R--- \--* ASG struct (copy) | |
[000300] D----------- \--* LCL_VAR struct V03 loc2 | |
------------ BB18 [022..023) -> BB20 (cond), preds={} succs={BB19,BB20} | |
***** BB18, stmt 25 | |
[000335] ------------ * STMT void (IL 0x022... ???) | |
[000332] ----G------- | /--* FIELD ref _obj | |
[000328] ----G------- | | \--* ADDR byref | |
[000329] ----G------- | | \--* FIELD struct _value | |
[000330] L----------- | | \--* ADDR byref | |
[000331] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000334] -A--G------- \--* ASG ref | |
[000333] D------N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB18, stmt 26 | |
[000340] ------------ * STMT void (IL 0x022... ???) | |
[000339] ------------ \--* JTRUE void | |
[000337] ------------ | /--* CNS_INT ref null | |
[000338] ------------ \--* NE int | |
[000336] ------------ \--* LCL_VAR ref V20 tmp13 | |
------------ BB19 [022..023) -> BB23 (always), preds={} succs={BB23} | |
***** BB19, stmt 27 | |
[000395] ------------ * STMT void (IL 0x022... ???) | |
[000392] ------------ | /--* CAST int <- bool <- int | |
[000391] ------------ | | \--* CNS_INT int 1 | |
[000394] -A---------- \--* ASG bool | |
[000393] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------ BB20 [022..023) -> BB22 (cond), preds={} succs={BB21,BB22} | |
***** BB20, stmt 28 | |
[000349] ------------ * STMT void (IL 0x022... ???) | |
[000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000343] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000342] ------------ arg1 | | \--* LCL_VAR ref V20 tmp13 | |
[000348] -AC-G------- \--* ASG ref | |
[000347] D------N---- \--* LCL_VAR ref V21 tmp14 | |
***** BB20, stmt 29 | |
[000354] ------------ * STMT void (IL 0x022... ???) | |
[000351] ------------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---------- \--* ASG ref | |
[000352] D------N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB20, stmt 30 | |
[000358] ------------ * STMT void (IL 0x022... ???) | |
[000357] ------------ \--* JTRUE void | |
[000355] ------------ | /--* CNS_INT ref null | |
[000356] ------------ \--* EQ int | |
[000350] ------------ \--* LCL_VAR ref V21 tmp14 | |
------------ BB21 [022..023) -> BB23 (always), preds={} succs={BB23} | |
***** BB21, stmt 31 | |
[000410] ------------ * STMT void (IL 0x022... ???) | |
[000407] V--XGO-N---- | /--* FIELD int m_stateFlags | |
[000381] ------------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XGO------ \--* ASG int | |
[000408] D------N---- \--* LCL_VAR int V23 tmp16 | |
***** BB21, stmt 32 | |
[000388] ------------ * STMT void (IL 0x022... ???) | |
[000385] --C--------- | /--* CAST int <- bool <- int | |
[000416] --C--------- | | \--* CAST int <- bool <- int | |
[000421] ------------ | | | /--* CNS_INT int 0 | |
[000422] N--------U-- | | \--* GT int | |
[000419] ------------ | | | /--* CNS_INT int 0x1600000 | |
[000420] ------------ | | \--* AND int | |
[000411] ------------ | | \--* LCL_VAR int V23 tmp16 | |
[000387] -AC--------- \--* ASG bool | |
[000386] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------ BB22 [022..023), preds={} succs={BB23} | |
***** BB22, stmt 33 | |
[000378] ------------ * STMT void (IL 0x022... ???) | |
[000374] ------------ | /--* CNS_INT int 0 | |
[000375] N-C-G----U-- | /--* GT int | |
[000372] --C-G------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 | |
[000371] ----G------- arg1 | | \--* FIELD short _token | |
[000367] ----G------- | | \--* ADDR byref | |
[000368] ----G------- | | \--* FIELD struct _value | |
[000369] L----------- | | \--* ADDR byref | |
[000370] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000377] -AC-G------- \--* ASG bool | |
[000376] D------N---- \--* LCL_VAR bool V19 tmp12 | |
------------ BB23 [???..???) -> BB06 (cond), preds={} succs={BB04,BB06} | |
***** BB23, stmt 34 | |
[000400] ------------ * STMT void (IL 0x022... ???) | |
[000397] ------------ | /--* CNS_INT ref null | |
[000399] -A---------- \--* ASG ref | |
[000398] D------N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB23, stmt 35 | |
[000404] ------------ * STMT void (IL 0x022... ???) | |
[000401] ------------ | /--* CNS_INT ref null | |
[000403] -A---------- \--* ASG ref | |
[000402] D------N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB23, stmt 36 | |
[000102] ------------ * STMT void (IL ???... ???) | |
[000101] --C--------- \--* JTRUE void | |
[000099] ------------ | /--* CNS_INT int 0 | |
[000100] --C--------- \--* NE int | |
[000325] --C--------- \--* CAST int <- bool <- int | |
[000396] ------------ \--* LCL_VAR int V19 tmp12 | |
------------ BB04 [02B..04B) -> BB09 (always), preds={} succs={BB09} | |
***** BB04, stmt 37 | |
[000109] ------------ * STMT void (IL 0x02B...0x02E) | |
[000106] ------------ | /--* CNS_INT int 0 | |
[000108] -A---------- \--* ASG int | |
[000107] D------N---- \--* LCL_VAR int V01 loc0 | |
***** BB04, stmt 38 | |
[000112] ------------ * STMT void (IL ???...0x02F) | |
[000105] ------------ | /--* CNS_INT int 0 | |
[000111] -A-XG------- \--* ASG int | |
[000110] ---XG--N---- \--* FIELD int <>1__state | |
[000104] ------------ \--* LCL_VAR byref V00 this | |
***** BB04, stmt 39 | |
[000119] ------------ * STMT void (IL 0x034...0x036) | |
[000114] ------------ | /--* LCL_VAR struct V03 loc2 | |
[000118] -A-XG---R--- \--* ASG struct (copy) | |
[000117] ---XG------- \--* OBJ(16) struct | |
[000116] ---XG------- \--* ADDR byref | |
[000115] ---XG------- \--* FIELD struct <>u__1 | |
[000113] ------------ \--* LCL_VAR byref V00 this | |
***** BB04, stmt 40 | |
[000443] ------------ * STMT void (IL 0x03B... ???) | |
[000122] ---XG------- | /--* ADDR byref | |
[000121] ---XG------- | | \--* FIELD struct <>t__builder | |
[000120] ------------ | | \--* LCL_VAR byref V00 this | |
[000442] -A-XG------- \--* ASG byref | |
[000441] D------N---- \--* LCL_VAR byref V24 tmp17 | |
***** BB04, stmt 41 | |
[000431] ------------ * STMT void (IL 0x03B... ???) | |
[000428] ------------ | /--* CNS_INT int 1 | |
[000430] -A-XG------- \--* ASG bool | |
[000429] ---XG--N---- \--* FIELD bool _useBuilder | |
[000427] ------------ \--* LCL_VAR byref V24 tmp17 | |
***** BB04, stmt 42 | |
[000440] ------------ * STMT void (IL 0x03B... ???) | |
[000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
[000434] ---XG------- this in rcx +--* ADDR byref | |
[000433] ---XG------- | \--* FIELD struct _methodBuilder | |
[000432] ------------ | \--* LCL_VAR byref V24 tmp17 | |
[000435] L----------- arg1 +--* ADDR byref | |
[000436] ------------ | \--* LCL_VAR struct V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
------------ BB05 [04B..067), preds={} succs={BB06} | |
***** BB05, stmt 43 | |
[000020] ------------ * STMT void (IL 0x04B...0x051) | |
[000016] ---XG------- | /--* FIELD struct <>u__1 | |
[000015] ------------ | | \--* LCL_VAR byref V00 this | |
[000019] -A-XG---R--- \--* ASG struct (copy) | |
[000017] D----------- \--* LCL_VAR struct V03 loc2 | |
***** BB05, stmt 44 | |
[000027] ------------ * STMT void (IL 0x052...0x059) | |
[000024] ------------ | /--* CNS_INT int 0 | |
[000026] IA-XG---R--- \--* ASG struct (init) | |
[000025] ---XG--N---- \--* BLK(16) struct | |
[000023] ---XG------- \--* ADDR byref | |
[000022] ---XG------- \--* FIELD struct <>u__1 | |
[000021] ------------ \--* LCL_VAR byref V00 this | |
***** BB05, stmt 45 | |
[000032] ------------ * STMT void (IL 0x05E...0x061) | |
[000029] ------------ | /--* CNS_INT int -1 | |
[000031] -A---------- \--* ASG int | |
[000030] D------N---- \--* LCL_VAR int V08 tmp1 | |
***** BB05, stmt 46 | |
[000037] ------------ * STMT void (IL ???... ???) | |
[000034] ------------ | /--* LCL_VAR int V08 tmp1 | |
[000036] -A---------- \--* ASG int | |
[000035] D------N---- \--* LCL_VAR int V01 loc0 | |
***** BB05, stmt 47 | |
[000040] ------------ * STMT void (IL ???...0x062) | |
[000033] ------------ | /--* LCL_VAR int V08 tmp1 | |
[000039] -A-XG------- \--* ASG int | |
[000038] ---XG--N---- \--* FIELD int <>1__state | |
[000028] ------------ \--* LCL_VAR byref V00 this | |
------------ BB06 [067..071), preds={} succs={BB29} | |
------------ BB29 [067..068) -> BB31 (cond), preds={} succs={BB30,BB31} | |
***** BB29, stmt 48 | |
[000462] ------------ * STMT void (IL 0x067... ???) | |
[000459] ----G------- | /--* FIELD ref _obj | |
[000455] ----G------- | | \--* ADDR byref | |
[000456] ----G------- | | \--* FIELD struct _value | |
[000457] L----------- | | \--* ADDR byref | |
[000458] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000461] -A--G------- \--* ASG ref | |
[000460] D------N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB29, stmt 49 | |
[000467] ------------ * STMT void (IL 0x067... ???) | |
[000466] ------------ \--* JTRUE void | |
[000464] ------------ | /--* CNS_INT ref null | |
[000465] ------------ \--* NE int | |
[000463] ------------ \--* LCL_VAR ref V26 tmp19 | |
------------ BB30 [067..068) -> BB34 (always), preds={} succs={BB34} | |
***** BB30, stmt 50 | |
[000526] ------------ * STMT void (IL 0x067... ???) | |
[000523] ----G------- | /--* FIELD int _result | |
[000519] ----G------- | | \--* ADDR byref | |
[000520] ----G------- | | \--* FIELD struct _value | |
[000521] L----------- | | \--* ADDR byref | |
[000522] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000525] -A--G------- \--* ASG int | |
[000524] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB31 [067..068) -> BB33 (cond), preds={} succs={BB32,BB33} | |
***** BB31, stmt 51 | |
[000476] ------------ * STMT void (IL 0x067... ???) | |
[000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000470] -------N---- arg0 | | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000469] ------------ arg1 | | \--* LCL_VAR ref V26 tmp19 | |
[000475] -AC-G------- \--* ASG ref | |
[000474] D------N---- \--* LCL_VAR ref V27 tmp20 | |
***** BB31, stmt 52 | |
[000481] ------------ * STMT void (IL 0x067... ???) | |
[000478] ------------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---------- \--* ASG ref | |
[000479] D------N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB31, stmt 53 | |
[000485] ------------ * STMT void (IL 0x067... ???) | |
[000484] ------------ \--* JTRUE void | |
[000482] ------------ | /--* CNS_INT ref null | |
[000483] ------------ \--* EQ int | |
[000477] ------------ \--* LCL_VAR ref V27 tmp20 | |
------------ BB32 [067..068), preds={} succs={BB35} | |
------------ BB35 [067..068) -> BB37 (cond), preds={} succs={BB36,BB37} | |
***** BB35, stmt 54 | |
[000544] ------------ * STMT void (IL 0x067... ???) | |
[000543] --C--------- \--* JTRUE void | |
[000541] ------------ | /--* CNS_INT int 0 | |
[000542] --C--------- \--* EQ int | |
[000558] ------------ | /--* CNS_INT int 0 | |
[000559] ---XGO------ \--* EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
------------ BB36 [067..068), preds={} succs={BB37} | |
***** BB36, stmt 55 | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] --C-G------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
------------ BB37 [067..068), preds={} succs={BB38} | |
------------ BB38 [???..???) -> BB34 (always), preds={} succs={BB34} | |
***** BB38, stmt 56 | |
[000516] ------------ * STMT void (IL 0x067... ???) | |
[000562] ---XG------- | /--* FIELD int m_result | |
[000510] ------------ | | \--* LCL_VAR ref V28 tmp21 | |
[000515] -AC--------- \--* ASG int | |
[000514] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB33 [067..068), preds={} succs={BB34} | |
***** BB33, stmt 57 | |
[000503] ------------ * STMT void (IL 0x067... ???) | |
[000499] --C-G------- | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19 | |
[000498] ----G------- arg1 | | \--* FIELD short _token | |
[000494] ----G------- | | \--* ADDR byref | |
[000495] ----G------- | | \--* FIELD struct _value | |
[000496] L----------- | | \--* ADDR byref | |
[000497] ------------ | | \--* LCL_VAR struct V03 loc2 | |
[000502] -AC-G------- \--* ASG int | |
[000501] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB34 [???..???) -> BB08 (always), preds={} succs={BB08} | |
***** BB34, stmt 58 | |
[000531] ------------ * STMT void (IL 0x067... ???) | |
[000528] ------------ | /--* CNS_INT ref null | |
[000530] -A---------- \--* ASG ref | |
[000529] D------N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB34, stmt 59 | |
[000535] ------------ * STMT void (IL 0x067... ???) | |
[000532] ------------ | /--* CNS_INT ref null | |
[000534] -A---------- \--* ASG ref | |
[000533] D------N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB34, stmt 60 | |
[000049] ------------ * STMT void (IL ???... ???) | |
[000527] ------------ | /--* LCL_VAR int V25 tmp18 | |
[000048] -AC--------- \--* ASG int | |
[000047] D------N---- \--* LCL_VAR int V02 loc1 | |
------------ BB07 [071..08A) -> BB09 (cret), preds={} succs={BB09} | |
***** BB07, stmt 61 | |
[000133] ------------ * STMT void (IL 0x071...0x071) | |
[000007] -----O------ | /--* CATCH_ARG ref | |
[000132] -A---O------ \--* ASG ref | |
[000131] D------N---- \--* LCL_VAR ref V09 tmp2 | |
***** BB07, stmt 62 | |
[000137] ------------ * STMT void (IL ???... ???) | |
[000134] ------------ | /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---------- \--* ASG ref | |
[000135] D------N---- \--* LCL_VAR ref V06 loc5 | |
***** BB07, stmt 63 | |
[000142] ------------ * STMT void (IL 0x073...0x076) | |
[000139] ------------ | /--* CNS_INT int -2 | |
[000141] -A-XG------- \--* ASG int | |
[000140] ---XG--N---- \--* FIELD int <>1__state | |
[000138] ------------ \--* LCL_VAR byref V00 this | |
***** BB07, stmt 64 | |
[000149] ------------ * STMT void (IL 0x07B...0x088) | |
[000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000145] ---XG------- this in rcx +--* ADDR byref | |
[000144] ---XG------- | \--* FIELD struct <>t__builder | |
[000143] ------------ | \--* LCL_VAR byref V00 this | |
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5 | |
------------ BB08 [08A..09E), preds={} succs={BB42} | |
***** BB08, stmt 65 | |
[000055] ------------ * STMT void (IL 0x08A...0x08D) | |
[000052] ------------ | /--* CNS_INT int -2 | |
[000054] -A-XG------- \--* ASG int | |
[000053] ---XG--N---- \--* FIELD int <>1__state | |
[000051] ------------ \--* LCL_VAR byref V00 this | |
***** BB08, stmt 66 | |
[000593] ------------ * STMT void (IL 0x092... ???) | |
[000058] ---XG------- | /--* ADDR byref | |
[000057] ---XG------- | | \--* FIELD struct <>t__builder | |
[000056] ------------ | | \--* LCL_VAR byref V00 this | |
[000592] -A-XG------- \--* ASG byref | |
[000591] D------N---- \--* LCL_VAR byref V29 tmp22 | |
------------ BB42 [092..093) -> BB44 (cond), preds={} succs={BB43,BB44} | |
***** BB42, stmt 67 | |
[000572] ------------ * STMT void (IL 0x092... ???) | |
[000571] ---XG------- \--* JTRUE void | |
[000569] ------------ | /--* CNS_INT int 0 | |
[000570] ---XG------- \--* EQ int | |
[000568] ---XG------- \--* FIELD bool _useBuilder | |
[000567] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB43 [092..093), preds={} succs={BB46} | |
***** BB43, stmt 68 | |
[000619] ------------ * STMT void (IL 0x092... ???) | |
[000586] ---XG------- | /--* ADDR byref | |
[000585] ---XG------- | | \--* FIELD struct _methodBuilder | |
[000584] ------------ | | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG------- \--* ASG byref | |
[000617] D------N---- \--* LCL_VAR byref V30 tmp23 | |
------------ BB46 [092..093) -> BB48 (cond), preds={} succs={BB47,BB48} | |
***** BB46, stmt 69 | |
[000601] ------------ * STMT void (IL 0x092... ???) | |
[000600] ---XG------- \--* JTRUE void | |
[000598] ------------ | /--* CNS_INT ref null | |
[000599] ---XG------- \--* NE int | |
[000597] ---XG------- \--* FIELD ref m_task | |
[000596] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB47 [092..093), preds={} succs={BB84} | |
------------ BB84 [092..093), preds={} succs={BB85} | |
***** BB84, stmt 70 | |
[000627] ------------ * STMT void (IL 0x092... ???) | |
[000624] ------------ | /--* CNS_INT int 0 | |
[000626] IA------R--- \--* ASG struct (init) | |
[000625] -------N---- \--* BLK(4) struct | |
[000623] L----------- \--* ADDR byref | |
[000622] ------------ \--* LCL_VAR int V32 tmp25 | |
***** BB84, stmt 71 | |
[000633] ------------ * STMT void (IL 0x092... ???) | |
[000632] ------------ \--* NOP void | |
***** BB84, stmt 72 | |
[000639] ------------ * STMT void (IL 0x092... ???) | |
[000638] ------------ \--* NOP void | |
------------ BB85 [092..093) -> BB86 (always), preds={} succs={BB86} | |
------------ BB86 [092..093), preds={} succs={BB87} | |
------------ BB87 [092..093) -> BB90 (cond), preds={} succs={BB88,BB90} | |
***** BB87, stmt 73 | |
[000670] ------------ * STMT void (IL 0x092... ???) | |
[000609] ------------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---------- \--* ASG int | |
[000668] D------N---- \--* LCL_VAR int V34 tmp27 | |
***** BB87, stmt 74 | |
[000675] ------------ * STMT void (IL 0x092... ???) | |
[000674] ------------ \--* JTRUE void | |
[000672] ------------ | /--* CNS_INT int 9 | |
[000673] ------------ \--* GE int | |
[000671] ------------ \--* LCL_VAR int V34 tmp27 | |
------------ BB88 [092..093) -> BB90 (cond), preds={} succs={BB89,BB90} | |
***** BB88, stmt 75 | |
[000697] ------------ * STMT void (IL 0x092... ???) | |
[000696] ------------ \--* JTRUE void | |
[000694] ------------ | /--* CNS_INT int -1 | |
[000695] ------------ \--* LT int | |
[000693] ------------ \--* LCL_VAR int V34 tmp27 | |
------------ BB89 [092..093) -> BB91 (always), preds={} succs={BB91} | |
***** BB89, stmt 76 | |
[000713] ------------ * STMT void (IL 0x092... ???) | |
[000708] ------------ | /--* CNS_INT int -1 | |
[000709] ------------ | /--* SUB int | |
[000707] ------------ | | \--* LCL_VAR int V34 tmp27 | |
[000710] R-CXG------- | /--* INDEX ref | |
[000699] ----G------- | | | /--* FIELD ref Int32Tasks | |
[000706] --CXG------- | | \--* COMMA ref | |
[000705] H-CXG------- | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] ------------ arg0 | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] ------------ arg1 | | \--* CNS_INT int 0x70A | |
[000712] -ACXG------- \--* ASG ref | |
[000711] D------N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB89, stmt 77 | |
[000723] ------------ * STMT void (IL 0x092... ???) | |
[000714] ------------ | /--* LCL_VAR ref V36 tmp29 | |
[000722] -AC--------- \--* ASG ref | |
[000721] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB90 [092..093), preds={} succs={BB97} | |
***** BB90, stmt 78 | |
[000682] ------------ * STMT void (IL 0x092... ???) | |
[000679] ------------ | /--* ALLOCOBJ ref | |
[000678] ------------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -A---------- \--* ASG ref | |
[000680] D------N---- \--* LCL_VAR ref V35 tmp28 | |
***** BB90, stmt 79 | |
[000739] ------------ * STMT void (IL 0x092... ???) | |
[000737] ------------ | /--* CNS_INT int 0 | |
[000738] IA------R--- \--* ASG struct (init) | |
[000735] D------N---- \--* LCL_VAR struct V37 tmp30 | |
------------ BB97 [092..093) -> BB98 (always), preds={} succs={BB98} | |
***** BB97, stmt 80 | |
[000760] ------------ * STMT void (IL 0x092... ???) | |
[000757] ------------ | /--* CNS_INT int 0 | |
[000759] -A---------- \--* ASG int | |
[000758] D------N---- \--* LCL_VAR int V38 tmp31 | |
------------ BB98 [092..093), preds={} succs={BB99} | |
***** BB98, stmt 81 | |
[000771] ------------ * STMT void (IL 0x092... ???) | |
[000767] ------------ | /--* LCL_VAR int V38 tmp31 | |
[000768] ------------ | /--* OR int | |
[000766] ------------ | | \--* CNS_INT int 0x1000000 | |
[000770] -A-XGO------ \--* ASG int | |
[000769] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000765] ------------ \--* LCL_VAR ref V35 tmp28 | |
------------ BB99 [???..???), preds={} succs={BB91} | |
***** BB99, stmt 82 | |
[000751] ------------ * STMT void (IL 0x092... ???) | |
[000677] ------------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG------- \--* ASG int | |
[000749] ---XG--N---- \--* FIELD int m_result | |
[000748] ------------ \--* LCL_VAR ref V35 tmp28 | |
***** BB99, stmt 83 | |
[000690] ------------ * STMT void (IL 0x092... ???) | |
[000687] ------------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---------- \--* ASG ref | |
[000688] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB91 [???..???) -> BB49 (always), preds={} succs={BB49} | |
***** BB91, stmt 84 | |
[000728] ------------ * STMT void (IL 0x092... ???) | |
[000725] ------------ | /--* CNS_INT ref null | |
[000727] -A---------- \--* ASG ref | |
[000726] D------N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB91, stmt 85 | |
[000616] ------------ * STMT void (IL 0x092... ???) | |
[000724] ------------ | /--* LCL_VAR ref V31 tmp24 | |
[000615] -ACXG------- \--* ASG ref | |
[000614] ---XG--N---- \--* FIELD ref m_task | |
[000608] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB48 [092..093), preds={} succs={BB49} | |
***** BB48, stmt 86 | |
[000606] ------------ * STMT void (IL 0x092... ???) | |
[000604] --C-G------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
------------ BB49 [???..???) -> BB45 (always), preds={} succs={BB45} | |
------------ BB44 [092..093), preds={} succs={BB45} | |
***** BB44, stmt 87 | |
[000577] ------------ * STMT void (IL 0x092... ???) | |
[000059] ------------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG------- \--* ASG int | |
[000575] ---XG--N---- \--* FIELD int _result | |
[000574] ------------ \--* LCL_VAR byref V29 tmp22 | |
***** BB44, stmt 88 | |
[000582] ------------ * STMT void (IL 0x092... ???) | |
[000579] ------------ | /--* CNS_INT int 1 | |
[000581] -A-XG------- \--* ASG bool | |
[000580] ---XG--N---- \--* FIELD bool _haveResult | |
[000578] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB45 [???..???), preds={} succs={BB09} | |
------------ BB09 [09E..09F) (return), preds={} succs={} | |
***** BB09, stmt 89 | |
[000065] ------------ * STMT void (IL 0x09E...0x09E) | |
[000064] ------------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
**************** Inline Tree | |
Inlines into 0600001F <ValueTask1>d__1:MoveNext():this | |
[1 IL=0010 TR=000067 06000003] [below ALWAYS_INLINE size] Program:ValueTask2():struct | |
[2 IL=0001 TR=000158 06002C45] [aggressive inline attribute] ValueTask`1:.ctor(int):this | |
[3 IL=0019 TR=000077 06002C57] [aggressive inline attribute] ValueTask`1:ConfigureAwait(bool):struct:this | |
[4 IL=0019 TR=000210 06002C48] [aggressive inline attribute] ValueTask`1:.ctor(ref,int,short,bool):this | |
[5 IL=0024 TR=000223 06005070] [aggressive inline attribute] ConfiguredValueTaskAwaitable`1:.ctor(struct):this | |
[6 IL=0028 TR=000087 06005071] [aggressive inline attribute] ConfiguredValueTaskAwaitable`1:GetAwaiter():struct:this | |
[7 IL=0006 TR=000293 06005072] [aggressive inline attribute] ConfiguredValueTaskAwaiter:.ctor(struct):this | |
[8 IL=0036 TR=000096 06005073] [aggressive inline attribute] ConfiguredValueTaskAwaiter:get_IsCompleted():bool:this | |
[9 IL=0006 TR=000322 06002C51] [aggressive inline attribute] ValueTask`1:get_IsCompleted():bool:this | |
[10 IL=0023 TR=000382 060029E5] [below ALWAYS_INLINE size] Task:get_IsCompleted():bool:this | |
[11 IL=0010 TR=000412 060029E6] [below ALWAYS_INLINE size] Task:IsCompletedMethod(int):bool | |
[12 IL=0030 TR=000361 06000125] [aggressive inline attribute] Unsafe:As(ref):ref | |
[0 IL=0041 TR=000372 06002C61] [FAILED: target not direct] IValueTaskSource`1:GetStatus(short):int:this | |
[13 IL=0068 TR=000126 0600505D] [profitable inline] AsyncValueTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this | |
[0 IL=0015 TR=000437 06005017] [FAILED: has exception handling] AsyncTaskMethodBuilder`1:AwaitUnsafeOnCompleted(byref,byref):this | |
[14 IL=0105 TR=000044 06005074] [aggressive inline attribute] ConfiguredValueTaskAwaiter:GetResult():int:this | |
[15 IL=0006 TR=000450 06002C55] [aggressive inline attribute] ValueTask`1:get_Result():int:this | |
[16 IL=0028 TR=000507 060050C2] [below ALWAYS_INLINE size] TaskAwaiter:ValidateEnd(ref) | |
[17 IL=0001 TR=000538 060029C9] [aggressive inline attribute] Task:get_IsWaitNotificationEnabledOrNotRanToCompletion():bool:this | |
[0 IL=0009 TR=000548 060050C3] [FAILED: unprofitable inline] TaskAwaiter:HandleNonSuccessAndDebuggerNotification(ref) | |
[18 IL=0034 TR=000511 06002929] [below ALWAYS_INLINE size] Task`1:get_ResultOnSuccess():int:this | |
[19 IL=0041 TR=000488 06000125] [aggressive inline attribute] Unsafe:As(ref):ref | |
[0 IL=0052 TR=000499 06002C63] [FAILED: target not direct] IValueTaskSource`1:GetResult(short):int:this | |
[0 IL=0131 TR=000147 0600505A] [FAILED: within catch region] AsyncValueTaskMethodBuilder`1:SetException(ref):this | |
[20 IL=0153 TR=000060 06005059] [profitable inline] AsyncValueTaskMethodBuilder`1:SetResult(int):this | |
[21 IL=0015 TR=000588 0600501C] [profitable inline] AsyncTaskMethodBuilder`1:SetResult(int):this | |
[22 IL=0010 TR=000610 06005023] [aggressive inline attribute] AsyncTaskMethodBuilder`1:GetTaskForResult(int):ref | |
[23 IL=0148 TR=000715 06000125] [aggressive inline attribute] Unsafe:As(ref):ref | |
[24 IL=0610 TR=000684 06002916] [profitable inline] Task`1:.ctor(int):this | |
[25 IL=0012 TR=000741 060029B1] [profitable inline] Task:.ctor(bool,int,struct):this | |
[26 IL=0001 TR=000755 06000198] [below ALWAYS_INLINE size] Object:.ctor():this | |
[0 IL=0023 TR=000604 0600501D] [FAILED: noinline per IL/cached result] AsyncTaskMethodBuilder`1:SetExistingTaskResult(int):this | |
Budget: initialTime=537, finalTime=2441, initialBudget=5370, currentBudget=5684 | |
Budget: increased by 314 because of force inlines | |
Budget: discretionary inline caused a force inline | |
Budget: initialSize=3756, finalSize=5017 | |
*************** After fgAddInternal() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
*************** In fgDebugCheckBBlist | |
*************** In fgRemoveEmptyTry() | |
*************** Before fgRemoveEmptyTry() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
EH#0 is not a try-finally; skipping. | |
*************** In fgRemoveEmptyFinally() | |
*************** Before fgRemoveEmptyFinally() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
EH#0 is not a try-finally; skipping. | |
*************** In fgMergeFinallyChains() | |
*************** Before fgMergeFinallyChains() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
Method does not have any try-finallys; no merging. | |
*************** In fgCloneFinally() | |
*************** Before fgCloneFinally() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
EH#0 is not a try-finally; skipping. | |
*************** In fgMarkImplicitByRefs() | |
*************** In fgPromoteStructs() | |
lvaTable before fgPromoteStructs | |
; Initial local variable assignments | |
; | |
; V00 this byref this | |
; V01 loc0 int | |
; V02 loc1 int | |
; V03 loc2 struct (16) ld-addr-op | |
; V04 loc3 struct (16) ld-addr-op | |
; V05 loc4 struct (16) ld-addr-op | |
; V06 loc5 ref class-hnd | |
; V07 OutArgs lclBlk (na) | |
; V08 tmp1 int | |
; V09 tmp2 ref class-hnd | |
; V10 tmp3 struct (16) | |
; V11 tmp4 struct (16) | |
; V12 tmp5 struct (16) | |
; V13 tmp6 ref class-hnd | |
; V14 tmp7 int | |
; V15 tmp8 short | |
; V16 tmp9 struct (16) | |
; V17 tmp10 struct (16) | |
; V18 tmp11 struct (16) | |
; V19 tmp12 bool | |
; V20 tmp13 ref class-hnd | |
; V21 tmp14 ref | |
; V22 tmp15 ref class-hnd | |
; V23 tmp16 int | |
; V24 tmp17 byref | |
; V25 tmp18 int | |
; V26 tmp19 ref class-hnd | |
; V27 tmp20 ref | |
; V28 tmp21 ref class-hnd | |
; V29 tmp22 byref | |
; V30 tmp23 byref | |
; V31 tmp24 ref class-hnd | |
; V32 tmp25 int ld-addr-op | |
; V33 tmp26 ref class-hnd exact | |
; V34 tmp27 int | |
; V35 tmp28 ref class-hnd exact | |
; V36 tmp29 ref class-hnd | |
; V37 tmp30 struct ( 8) ld-addr-op | |
; V38 tmp31 int | |
Promoting struct local V04 (ValueTask`1): | |
lvaGrabTemp returning 39 (V39 tmp32) (a long lifetime temp) called for field V04._obj (fldOffset=0x0). | |
lvaGrabTemp returning 40 (V40 tmp33) (a long lifetime temp) called for field V04._result (fldOffset=0x8). | |
lvaGrabTemp returning 41 (V41 tmp34) (a long lifetime temp) called for field V04._token (fldOffset=0xc). | |
lvaGrabTemp returning 42 (V42 tmp35) (a long lifetime temp) called for field V04._continueOnCapturedContext (fldOffset=0xe). | |
Promoting struct local V10 (ValueTask`1): | |
lvaGrabTemp returning 43 (V43 tmp36) (a long lifetime temp) called for field V10._obj (fldOffset=0x0). | |
lvaGrabTemp returning 44 (V44 tmp37) (a long lifetime temp) called for field V10._result (fldOffset=0x8). | |
lvaGrabTemp returning 45 (V45 tmp38) (a long lifetime temp) called for field V10._token (fldOffset=0xc). | |
lvaGrabTemp returning 46 (V46 tmp39) (a long lifetime temp) called for field V10._continueOnCapturedContext (fldOffset=0xe). | |
Promoting struct local V11 (ValueTask`1): | |
lvaGrabTemp returning 47 (V47 tmp40) (a long lifetime temp) called for field V11._obj (fldOffset=0x0). | |
lvaGrabTemp returning 48 (V48 tmp41) (a long lifetime temp) called for field V11._result (fldOffset=0x8). | |
lvaGrabTemp returning 49 (V49 tmp42) (a long lifetime temp) called for field V11._token (fldOffset=0xc). | |
lvaGrabTemp returning 50 (V50 tmp43) (a long lifetime temp) called for field V11._continueOnCapturedContext (fldOffset=0xe). | |
Not promoting promotable struct local V16: #fields = 4, fieldAccessed = 0. | |
Not promoting promotable struct local V18: #fields = 4, fieldAccessed = 0. | |
Promoting struct local V37 (CancellationToken): | |
lvaGrabTemp returning 51 (V51 tmp44) (a long lifetime temp) called for field V37._source (fldOffset=0x0). | |
lvaTable after fgPromoteStructs | |
; Initial local variable assignments | |
; | |
; V00 this byref this | |
; V01 loc0 int | |
; V02 loc1 int | |
; V03 loc2 struct (16) ld-addr-op | |
; V04 loc3 struct (16) ld-addr-op | |
; V05 loc4 struct (16) ld-addr-op | |
; V06 loc5 ref class-hnd | |
; V07 OutArgs lclBlk (na) | |
; V08 tmp1 int | |
; V09 tmp2 ref class-hnd | |
; V10 tmp3 struct (16) | |
; V11 tmp4 struct (16) | |
; V12 tmp5 struct (16) | |
; V13 tmp6 ref class-hnd | |
; V14 tmp7 int | |
; V15 tmp8 short | |
; V16 tmp9 struct (16) | |
; V17 tmp10 struct (16) | |
; V18 tmp11 struct (16) | |
; V19 tmp12 bool | |
; V20 tmp13 ref class-hnd | |
; V21 tmp14 ref | |
; V22 tmp15 ref class-hnd | |
; V23 tmp16 int | |
; V24 tmp17 byref | |
; V25 tmp18 int | |
; V26 tmp19 ref class-hnd | |
; V27 tmp20 ref | |
; V28 tmp21 ref class-hnd | |
; V29 tmp22 byref | |
; V30 tmp23 byref | |
; V31 tmp24 ref class-hnd | |
; V32 tmp25 int ld-addr-op | |
; V33 tmp26 ref class-hnd exact | |
; V34 tmp27 int | |
; V35 tmp28 ref class-hnd exact | |
; V36 tmp29 ref class-hnd | |
; V37 tmp30 struct ( 8) ld-addr-op | |
; V38 tmp31 int | |
; V39 tmp32 ref V04._obj(offs=0x00) P-INDEP | |
; V40 tmp33 int V04._result(offs=0x08) P-INDEP | |
; V41 tmp34 short V04._token(offs=0x0c) P-INDEP | |
; V42 tmp35 bool V04._continueOnCapturedContext(offs=0x0e) P-INDEP | |
; V43 tmp36 ref V10._obj(offs=0x00) P-INDEP | |
; V44 tmp37 int V10._result(offs=0x08) P-INDEP | |
; V45 tmp38 short V10._token(offs=0x0c) P-INDEP | |
; V46 tmp39 bool V10._continueOnCapturedContext(offs=0x0e) P-INDEP | |
; V47 tmp40 ref V11._obj(offs=0x00) P-INDEP | |
; V48 tmp41 int V11._result(offs=0x08) P-INDEP | |
; V49 tmp42 short V11._token(offs=0x0c) P-INDEP | |
; V50 tmp43 bool V11._continueOnCapturedContext(offs=0x0e) P-INDEP | |
; V51 tmp44 ref V37._source(offs=0x00) P-INDEP | |
*************** In fgMarkAddressExposedLocals() | |
Replacing the field in promoted struct with a local var: | |
[000169] ------------ /--* CNS_INT int 1 | |
[000171] -A---------- * ASG int | |
[000170] D------N---- \--* LCL_VAR int V44 tmp37 | |
Replacing the field in promoted struct with a local var: | |
[000175] ------------ /--* CNS_INT ref null | |
[000177] -A---------- * ASG ref | |
[000176] D------N---- \--* LCL_VAR ref V43 tmp36 | |
Replacing the field in promoted struct with a local var: | |
[000181] ------------ /--* CNS_INT int 1 | |
[000183] -A---------- * ASG bool | |
[000182] D------N---- \--* LCL_VAR bool V46 tmp39 | |
Replacing the field in promoted struct with a local var: | |
[000187] ------------ /--* CNS_INT int 0 | |
[000189] -A---------- * ASG short | |
[000188] D------N---- \--* LCL_VAR short V45 tmp38 | |
Replacing the field in promoted struct with a local var: | |
[000196] ------------ /--* LCL_VAR ref V39 tmp32 | |
[000260] -A---------- * ASG ref | |
[000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
Replacing the field in promoted struct with a local var: | |
[000199] ------------ /--* LCL_VAR int V40 tmp33 | |
[000263] -A---------- * ASG int | |
[000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
Replacing the field in promoted struct with a local var: | |
[000202] ------------ /--* LCL_VAR short V41 tmp34 | |
[000266] -A---------- * ASG short | |
[000265] D------N---- \--* LCL_VAR short V15 tmp8 | |
Replacing the field in promoted struct with a local var: | |
[000237] ------------ /--* LCL_VAR ref V13 tmp6 | |
[000239] -A---------- * ASG ref | |
[000238] D------N---- \--* LCL_VAR ref V47 tmp40 | |
Replacing the field in promoted struct with a local var: | |
[000243] ------------ /--* LCL_VAR int V14 tmp7 | |
[000245] -A---------- * ASG int | |
[000244] D------N---- \--* LCL_VAR int V48 tmp41 | |
Replacing the field in promoted struct with a local var: | |
[000249] ------------ /--* LCL_VAR int V15 tmp8 | |
[000251] -A---------- * ASG short | |
[000250] D------N---- \--* LCL_VAR short V49 tmp42 | |
Replacing the field in promoted struct with a local var: | |
[000255] ------------ /--* CNS_INT int 0 | |
[000257] -A---------- * ASG bool | |
[000256] D------N---- \--* LCL_VAR bool V50 tmp43 | |
Local V03 should not be enregistered because: it is address exposed | |
*************** In fgRetypeImplicitByRefArgs() | |
*************** In fgMorphBlocks() | |
Morphing BB01 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB01, stmt 1 (before) | |
[000002] ---XG------- /--* FIELD int <>1__state | |
[000001] ------------ | \--* LCL_VAR byref V00 this | |
[000004] -A-XG------- * ASG int | |
[000003] D------N---- \--* LCL_VAR int V01 loc0 | |
GenTreeNode creates assertion: | |
[000004] -A-XG------- * ASG int | |
In BB01 New Local Subrange Assertion: V01 in [-2147483648..2147483647] index=#01, mask=0000000000000001 | |
fgMorphTree BB01, stmt 1 (after) | |
[000002] *--XG+------ /--* IND int | |
[000001] -----+------ | \--* LCL_VAR byref V00 this | |
[000004] -A-XG+------ * ASG int | |
[000003] D----+-N---- \--* LCL_VAR int V01 loc0 | |
Morphing BB02 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB02, stmt 2 (before) | |
[000012] ------------ * JTRUE void | |
[000010] ------------ | /--* CNS_INT int 0 | |
[000011] ------------ \--* EQ int | |
[000009] ------------ \--* LCL_VAR int V01 loc0 | |
Morphing BB03 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB03, stmt 3 (before) | |
[000153] ------------ /--* CNS_INT int 0 | |
[000154] IA------R--- * ASG struct (init) | |
[000152] D------N---- \--* LCL_VAR struct(P) V10 tmp3 | |
\--* ref V10._obj (offs=0x00) -> V43 tmp36 | |
\--* int V10._result (offs=0x08) -> V44 tmp37 | |
\--* short V10._token (offs=0x0c) -> V45 tmp38 | |
\--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39 | |
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization. | |
GenTreeNode creates assertion: | |
[000777] -A---------- * ASG ref | |
In BB03 New Local Constant Assertion: V43 == null index=#01, mask=0000000000000001 | |
GenTreeNode creates assertion: | |
[000780] -A---------- * ASG int | |
In BB03 New Local Constant Assertion: V44 == 0 index=#02, mask=0000000000000002 | |
GenTreeNode creates assertion: | |
[000784] -A---------- * ASG short | |
In BB03 New Local Constant Assertion: V45 == 0 index=#03, mask=0000000000000004 | |
GenTreeNode creates assertion: | |
[000788] -A---------- * ASG bool | |
In BB03 New Local Constant Assertion: V46 == 0 index=#04, mask=0000000000000008 | |
fgMorphInitBlock (after): | |
[000787] ------------ /--* CNS_INT bool 0 | |
[000788] -A---------- /--* ASG bool | |
[000786] D------N---- | \--* LCL_VAR bool V46 tmp39 | |
[000789] -A---+------ * COMMA void | |
[000783] ------------ | /--* CNS_INT short 0 | |
[000784] -A---------- | /--* ASG short | |
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
[000785] -A---------- \--* COMMA void | |
[000779] ------------ | /--* CNS_INT int 0 | |
[000780] -A---------- | /--* ASG int | |
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
[000781] -A---------- \--* COMMA void | |
[000776] ------------ | /--* CNS_INT ref null | |
[000777] -A---------- \--* ASG ref | |
[000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
fgMorphTree BB03, stmt 3 (after) | |
[000787] ------------ /--* CNS_INT bool 0 | |
[000788] -A---------- /--* ASG bool | |
[000786] D------N---- | \--* LCL_VAR bool V46 tmp39 | |
[000789] -A---+------ * COMMA void | |
[000783] ------------ | /--* CNS_INT short 0 | |
[000784] -A---------- | /--* ASG short | |
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
[000785] -A---------- \--* COMMA void | |
[000779] ------------ | /--* CNS_INT int 0 | |
[000780] -A---------- | /--* ASG int | |
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
[000781] -A---------- \--* COMMA void | |
[000776] ------------ | /--* CNS_INT ref null | |
[000777] -A---------- \--* ASG ref | |
[000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
fgMorphTree BB03, stmt 4 (before) | |
[000169] ------------ /--* CNS_INT int 1 | |
[000171] -A---------- * ASG int | |
[000170] D------N---- \--* LCL_VAR int V44 tmp37 | |
The assignment [000171] using V44 removes: Constant Assertion: V44 == 0 | |
GenTreeNode creates assertion: | |
[000171] -A---------- * ASG int | |
In BB03 New Local Constant Assertion: V44 == 1 index=#04, mask=0000000000000008 | |
fgMorphTree BB03, stmt 5 (before) | |
[000175] ------------ /--* CNS_INT ref null | |
[000177] -A---------- * ASG ref | |
[000176] D------N---- \--* LCL_VAR ref V43 tmp36 | |
The assignment [000177] using V43 removes: Constant Assertion: V43 == null | |
GenTreeNode creates assertion: | |
[000177] -A---------- * ASG ref | |
In BB03 New Local Constant Assertion: V43 == null index=#04, mask=0000000000000008 | |
fgMorphTree BB03, stmt 6 (before) | |
[000181] ------------ /--* CNS_INT int 1 | |
[000183] -A---------- * ASG bool | |
[000182] D------N---- \--* LCL_VAR bool V46 tmp39 | |
The assignment [000183] using V46 removes: Constant Assertion: V46 == 0 | |
GenTreeNode creates assertion: | |
[000183] -A---------- * ASG bool | |
In BB03 New Local Constant Assertion: V46 == 1 index=#04, mask=0000000000000008 | |
fgMorphTree BB03, stmt 7 (before) | |
[000187] ------------ /--* CNS_INT int 0 | |
[000189] -A---------- * ASG short | |
[000188] D------N---- \--* LCL_VAR short V45 tmp38 | |
The assignment [000189] using V45 removes: Constant Assertion: V45 == 0 | |
GenTreeNode creates assertion: | |
[000189] -A---------- * ASG short | |
In BB03 New Local Constant Assertion: V45 == 0 index=#04, mask=0000000000000008 | |
fgMorphTree BB03, stmt 8 (before) | |
[000161] ------------ /--* LCL_VAR struct(P) V10 tmp3 | |
/--* ref V10._obj (offs=0x00) -> V43 tmp36 | |
/--* int V10._result (offs=0x08) -> V44 tmp37 | |
/--* short V10._token (offs=0x0c) -> V45 tmp38 | |
/--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39 | |
[000164] -A------R--- * ASG struct (copy) | |
[000163] D----------- \--* LCL_VAR struct(P) V04 loc3 | |
\--* ref V04._obj (offs=0x00) -> V39 tmp32 | |
\--* int V04._result (offs=0x08) -> V40 tmp33 | |
\--* short V04._token (offs=0x0c) -> V41 tmp34 | |
\--* bool V04._continueOnCapturedContext (offs=0x0e) -> V42 tmp35 | |
fgMorphCopyBlock:block assignment to morph: | |
[000161] -----+------ /--* LCL_VAR struct(P) V10 tmp3 | |
/--* ref V10._obj (offs=0x00) -> V43 tmp36 | |
/--* int V10._result (offs=0x08) -> V44 tmp37 | |
/--* short V10._token (offs=0x0c) -> V45 tmp38 | |
/--* bool V10._continueOnCapturedContext (offs=0x0e) -> V46 tmp39 | |
[000164] -A------R--- * ASG struct (copy) | |
[000163] D----+-N---- \--* LCL_VAR struct(P) V04 loc3 | |
\--* ref V04._obj (offs=0x00) -> V39 tmp32 | |
\--* int V04._result (offs=0x08) -> V40 tmp33 | |
\--* short V04._token (offs=0x0c) -> V41 tmp34 | |
\--* bool V04._continueOnCapturedContext (offs=0x0e) -> V42 tmp35 | |
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments. | |
GenTreeNode creates assertion: | |
[000792] -A---------- * ASG ref | |
In BB03 New Local Copy Assertion: V39 == V43 index=#05, mask=0000000000000010 | |
GenTreeNode creates assertion: | |
[000795] -A---------- * ASG int | |
In BB03 New Local Copy Assertion: V40 == V44 index=#06, mask=0000000000000020 | |
GenTreeNode creates assertion: | |
[000799] -A---------- * ASG short | |
In BB03 New Local Copy Assertion: V41 == V45 index=#07, mask=0000000000000040 | |
GenTreeNode creates assertion: | |
[000803] -A---------- * ASG bool | |
In BB03 New Local Copy Assertion: V42 == V46 index=#08, mask=0000000000000080 | |
fgMorphCopyBlock (after): | |
[000802] -------N---- /--* LCL_VAR bool V46 tmp39 | |
[000803] -A---------- /--* ASG bool | |
[000801] D------N---- | \--* LCL_VAR bool V42 tmp35 | |
[000804] -A---+------ * COMMA void | |
[000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
[000799] -A---------- | /--* ASG short | |
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
[000800] -A---------- \--* COMMA void | |
[000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
[000795] -A---------- | /--* ASG int | |
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
[000796] -A---------- \--* COMMA void | |
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
[000792] -A---------- \--* ASG ref | |
[000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
fgMorphTree BB03, stmt 8 (after) | |
[000802] -------N---- /--* LCL_VAR bool V46 tmp39 | |
[000803] -A---------- /--* ASG bool | |
[000801] D------N---- | \--* LCL_VAR bool V42 tmp35 | |
[000804] -A---+------ * COMMA void | |
[000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
[000799] -A---------- | /--* ASG short | |
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
[000800] -A---------- \--* COMMA void | |
[000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
[000795] -A---------- | /--* ASG int | |
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
[000796] -A---------- \--* COMMA void | |
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
[000792] -A---------- \--* ASG ref | |
[000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
fgMorphTree BB03, stmt 9 (before) | |
[000205] ------------ /--* CNS_INT int 0 | |
[000206] IA------R--- * ASG struct (init) | |
[000204] D------N---- \--* LCL_VAR struct(P) V11 tmp4 | |
\--* ref V11._obj (offs=0x00) -> V47 tmp40 | |
\--* int V11._result (offs=0x08) -> V48 tmp41 | |
\--* short V11._token (offs=0x0c) -> V49 tmp42 | |
\--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43 | |
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization. | |
GenTreeNode creates assertion: | |
[000807] -A---------- * ASG ref | |
In BB03 New Local Constant Assertion: V47 == null index=#09, mask=0000000000000100 | |
GenTreeNode creates assertion: | |
[000810] -A---------- * ASG int | |
In BB03 New Local Constant Assertion: V48 == 0 index=#10, mask=0000000000000200 | |
GenTreeNode creates assertion: | |
[000814] -A---------- * ASG short | |
In BB03 New Local Constant Assertion: V49 == 0 index=#11, mask=0000000000000400 | |
GenTreeNode creates assertion: | |
[000818] -A---------- * ASG bool | |
In BB03 New Local Constant Assertion: V50 == 0 index=#12, mask=0000000000000800 | |
fgMorphInitBlock (after): | |
[000817] ------------ /--* CNS_INT bool 0 | |
[000818] -A---------- /--* ASG bool | |
[000816] D------N---- | \--* LCL_VAR bool V50 tmp43 | |
[000819] -A---+------ * COMMA void | |
[000813] ------------ | /--* CNS_INT short 0 | |
[000814] -A---------- | /--* ASG short | |
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
[000815] -A---------- \--* COMMA void | |
[000809] ------------ | /--* CNS_INT int 0 | |
[000810] -A---------- | /--* ASG int | |
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
[000811] -A---------- \--* COMMA void | |
[000806] ------------ | /--* CNS_INT ref null | |
[000807] -A---------- \--* ASG ref | |
[000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
fgMorphTree BB03, stmt 9 (after) | |
[000817] ------------ /--* CNS_INT bool 0 | |
[000818] -A---------- /--* ASG bool | |
[000816] D------N---- | \--* LCL_VAR bool V50 tmp43 | |
[000819] -A---+------ * COMMA void | |
[000813] ------------ | /--* CNS_INT short 0 | |
[000814] -A---------- | /--* ASG short | |
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
[000815] -A---------- \--* COMMA void | |
[000809] ------------ | /--* CNS_INT int 0 | |
[000810] -A---------- | /--* ASG int | |
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
[000811] -A---------- \--* COMMA void | |
[000806] ------------ | /--* CNS_INT ref null | |
[000807] -A---------- \--* ASG ref | |
[000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
fgMorphTree BB03, stmt 10 (before) | |
[000196] ------------ /--* LCL_VAR ref V39 tmp32 | |
[000260] -A---------- * ASG ref | |
[000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
Assertion prop in BB03: | |
Copy Assertion: V39 == V43 index=#05, mask=0000000000000010 | |
[000196] ------------ * LCL_VAR ref V43 tmp36 | |
Assertion prop in BB03: | |
Constant Assertion: V43 == null index=#02, mask=0000000000000002 | |
[000196] ------------ * CNS_INT ref null | |
GenTreeNode creates assertion: | |
[000260] -A---------- * ASG ref | |
In BB03 New Local Constant Assertion: V13 == null index=#13, mask=0000000000001000 | |
fgMorphTree BB03, stmt 10 (after) | |
[000196] -----+------ /--* CNS_INT ref null | |
[000260] -A---+------ * ASG ref | |
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6 | |
fgMorphTree BB03, stmt 11 (before) | |
[000199] ------------ /--* LCL_VAR int V40 tmp33 | |
[000263] -A---------- * ASG int | |
[000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
Assertion prop in BB03: | |
Copy Assertion: V40 == V44 index=#06, mask=0000000000000020 | |
[000199] ------------ * LCL_VAR int V44 tmp37 | |
Assertion prop in BB03: | |
Constant Assertion: V44 == 1 index=#01, mask=0000000000000001 | |
[000199] ------------ * CNS_INT int 1 | |
GenTreeNode creates assertion: | |
[000263] -A---------- * ASG int | |
In BB03 New Local Constant Assertion: V14 == 1 index=#14, mask=0000000000002000 | |
fgMorphTree BB03, stmt 11 (after) | |
[000199] -----+------ /--* CNS_INT int 1 | |
[000263] -A---+------ * ASG int | |
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7 | |
fgMorphTree BB03, stmt 12 (before) | |
[000202] ------------ /--* LCL_VAR short V41 tmp34 | |
[000266] -A---------- * ASG short | |
[000265] D------N---- \--* LCL_VAR short V15 tmp8 | |
Assertion prop in BB03: | |
Copy Assertion: V41 == V45 index=#07, mask=0000000000000040 | |
[000202] ------------ * LCL_VAR short V45 tmp38 | |
Assertion prop in BB03: | |
Constant Assertion: V45 == 0 index=#04, mask=0000000000000008 | |
[000202] ------------ * CNS_INT int 0 | |
GenTreeNode creates assertion: | |
[000266] -A---------- * ASG short | |
In BB03 New Local Constant Assertion: V15 == 0 index=#15, mask=0000000000004000 | |
fgMorphTree BB03, stmt 12 (after) | |
[000202] -----+------ /--* CNS_INT int 0 | |
[000266] -A---+------ * ASG short | |
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8 | |
fgMorphTree BB03, stmt 13 (before) | |
[000237] ------------ /--* LCL_VAR ref V13 tmp6 | |
[000239] -A---------- * ASG ref | |
[000238] D------N---- \--* LCL_VAR ref V47 tmp40 | |
Assertion prop in BB03: | |
Constant Assertion: V13 == null index=#13, mask=0000000000001000 | |
[000237] ------------ * CNS_INT ref null | |
The assignment [000239] using V47 removes: Constant Assertion: V47 == null | |
GenTreeNode creates assertion: | |
[000239] -A---------- * ASG ref | |
In BB03 New Local Constant Assertion: V47 == null index=#15, mask=0000000000004000 | |
fgMorphTree BB03, stmt 13 (after) | |
[000237] -----+------ /--* CNS_INT ref null | |
[000239] -A---+------ * ASG ref | |
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40 | |
fgMorphTree BB03, stmt 14 (before) | |
[000243] ------------ /--* LCL_VAR int V14 tmp7 | |
[000245] -A---------- * ASG int | |
[000244] D------N---- \--* LCL_VAR int V48 tmp41 | |
Assertion prop in BB03: | |
Constant Assertion: V14 == 1 index=#14, mask=0000000000002000 | |
[000243] ------------ * CNS_INT int 1 | |
The assignment [000245] using V48 removes: Constant Assertion: V48 == 0 | |
GenTreeNode creates assertion: | |
[000245] -A---------- * ASG int | |
In BB03 New Local Constant Assertion: V48 == 1 index=#15, mask=0000000000004000 | |
fgMorphTree BB03, stmt 14 (after) | |
[000243] -----+------ /--* CNS_INT int 1 | |
[000245] -A---+------ * ASG int | |
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41 | |
fgMorphTree BB03, stmt 15 (before) | |
[000249] ------------ /--* LCL_VAR int V15 tmp8 | |
[000251] -A---------- * ASG short | |
[000250] D------N---- \--* LCL_VAR short V49 tmp42 | |
The assignment [000251] using V49 removes: Constant Assertion: V49 == 0 | |
GenTreeNode creates assertion: | |
[000251] -A---------- * ASG short | |
In BB03 New Local Copy Assertion: V49 == V15 index=#15, mask=0000000000004000 | |
fgMorphTree BB03, stmt 16 (before) | |
[000255] ------------ /--* CNS_INT int 0 | |
[000257] -A---------- * ASG bool | |
[000256] D------N---- \--* LCL_VAR bool V50 tmp43 | |
The assignment [000257] using V50 removes: Constant Assertion: V50 == 0 | |
GenTreeNode creates assertion: | |
[000257] -A---------- * ASG bool | |
In BB03 New Local Constant Assertion: V50 == 0 index=#15, mask=0000000000004000 | |
fgMorphTree BB03, stmt 17 (before) | |
[000218] ------------ /--* CNS_INT int 0 | |
[000219] IA------R--- * ASG struct (init) | |
[000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
fgMorphInitBlock: this requires an InitBlock. | |
Local V12 should not be enregistered because: written in a block op | |
GenTreeNode creates assertion: | |
[000219] IA------R--- * ASG struct (init) | |
In BB03 New Local Constant Assertion: V12 == 0 index=#16, mask=0000000000008000 | |
fgMorphTree BB03, stmt 18 (before) | |
[000225] x----------- /--* OBJ(16) struct | |
[000224] L----------- | \--* ADDR byref | |
[000216] ------------ | \--* LCL_VAR struct(P) V11 tmp4 | |
| \--* ref V11._obj (offs=0x00) -> V47 tmp40 | |
| \--* int V11._result (offs=0x08) -> V48 tmp41 | |
| \--* short V11._token (offs=0x0c) -> V49 tmp42 | |
| \--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43 | |
[000280] -A------R--- * ASG struct (copy) | |
[000278] D----------- \--* LCL_VAR struct V16 tmp9 | |
The assignment [000225] using V47 removes: Constant Assertion: V47 == null | |
The assignment [000225] using V48 removes: Constant Assertion: V48 == 1 | |
The assignment [000225] using V49 removes: Copy Assertion: V49 == V15 | |
The assignment [000225] using V50 removes: Constant Assertion: V50 == 0 | |
fgMorphCopyBlock:block assignment to morph: | |
[000225] x----+------ /--* OBJ(16) struct | |
[000224] L----+------ | \--* ADDR byref | |
[000216] -----+-N---- | \--* LCL_VAR struct(P) V11 tmp4 | |
| \--* ref V11._obj (offs=0x00) -> V47 tmp40 | |
| \--* int V11._result (offs=0x08) -> V48 tmp41 | |
| \--* short V11._token (offs=0x0c) -> V49 tmp42 | |
| \--* bool V11._continueOnCapturedContext (offs=0x0e) -> V50 tmp43 | |
[000280] -A------R--- * ASG struct (copy) | |
[000278] D----+-N---- \--* LCL_VAR struct V16 tmp9 | |
(srcDoFldAsg=true) using field by field assignments. | |
Local V16 should not be enregistered because: written in a block op | |
lvaGrabTemp returning 52 (V52 tmp45) called for BlockOp address local. | |
Local V16 should not be enregistered because: it is address exposed | |
fgMorphCopyBlock (after): | |
[000850] -------N---- /--* LCL_VAR bool V50 tmp43 | |
[000851] -A---------- /--* ASG bool | |
[000849] *------N---- | \--* IND bool | |
[000847] ------------ | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
[000848] ------------ | \--* ADD byref | |
[000846] ------------ | \--* LCL_VAR byref V52 tmp45 | |
[000852] -A---+------ * COMMA void | |
[000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
[000844] -A---------- | /--* ASG short | |
[000842] *------N---- | | \--* IND short | |
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
[000841] ------------ | | \--* ADD byref | |
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000845] -A---------- \--* COMMA void | |
[000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
[000837] -A---------- | /--* ASG int | |
[000835] *------N---- | | \--* IND int | |
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
[000834] ------------ | | \--* ADD byref | |
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000838] -A---------- \--* COMMA void | |
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
[000830] -A---------- | /--* ASG ref | |
[000828] *------N---- | | \--* IND ref | |
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
[000827] ------------ | | \--* ADD byref | |
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000831] -A---------- \--* COMMA void | |
[000821] L----------- | /--* ADDR byref | |
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
[000824] -A---------- \--* ASG byref | |
[000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
fgMorphTree BB03, stmt 18 (after) | |
[000850] -------N---- /--* LCL_VAR bool V50 tmp43 | |
[000851] -A---------- /--* ASG bool | |
[000849] *------N---- | \--* IND bool | |
[000847] ------------ | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
[000848] ------------ | \--* ADD byref | |
[000846] ------------ | \--* LCL_VAR byref V52 tmp45 | |
[000852] -A---+------ * COMMA void | |
[000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
[000844] -A---------- | /--* ASG short | |
[000842] *------N---- | | \--* IND short | |
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
[000841] ------------ | | \--* ADD byref | |
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000845] -A---------- \--* COMMA void | |
[000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
[000837] -A---------- | /--* ASG int | |
[000835] *------N---- | | \--* IND int | |
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
[000834] ------------ | | \--* ADD byref | |
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000838] -A---------- \--* COMMA void | |
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
[000830] -A---------- | /--* ASG ref | |
[000828] *------N---- | | \--* IND ref | |
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
[000827] ------------ | | \--* ADD byref | |
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000831] -A---------- \--* COMMA void | |
[000821] L----------- | /--* ADDR byref | |
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
[000824] -A---------- \--* ASG byref | |
[000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
fgMorphTree BB03, stmt 19 (before) | |
[000272] ------------ /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A------R--- * ASG struct (copy) | |
[000275] ------------ \--* OBJ(16) struct | |
[000274] ------------ \--* ADDR byref | |
[000273] ------------ \--* FIELD struct _value | |
[000270] L----------- \--* ADDR byref | |
[000271] ------------ \--* LCL_VAR struct V12 tmp5 | |
Local V12 should not be enregistered because: was accessed as a local field | |
The assignment [000275] using V12 removes: Constant Assertion: V12 == 0 | |
fgMorphCopyBlock:block assignment to morph: | |
[000272] ----G+------ /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A--G---R--- * ASG struct (copy) | |
[000275] x----+------ \--* OBJ(16) struct | |
[000274] -----+------ \--* ADDR byref | |
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
with no promoted structs this requires a CopyBlock. | |
Local V12 should not be enregistered because: written in a block op | |
Local V16 should not be enregistered because: written in a block op | |
fgMorphTree BB03, stmt 19 (after) | |
[000272] ----G+------ /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A--G+--R--- * ASG struct (copy) | |
[000275] x----+------ \--* BLK(16) struct | |
[000274] -----+------ \--* ADDR byref | |
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
fgMorphTree BB03, stmt 20 (before) | |
[000228] ------------ /--* LCL_VAR struct V12 tmp5 | |
[000231] -A------R--- * ASG struct (copy) | |
[000230] D----------- \--* LCL_VAR struct V05 loc4 | |
fgMorphCopyBlock:block assignment to morph: | |
[000228] -----+------ /--* LCL_VAR struct V12 tmp5 | |
[000231] -A------R--- * ASG struct (copy) | |
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4 | |
with no promoted structs this requires a CopyBlock. | |
Local V05 should not be enregistered because: written in a block op | |
Local V12 should not be enregistered because: written in a block op | |
GenTreeNode creates assertion: | |
[000231] -A------R--- * ASG struct (copy) | |
In BB03 New Local Copy Assertion: V05 == V12 index=#12, mask=0000000000000800 | |
fgMorphTree BB03, stmt 21 (before) | |
[000288] ------------ /--* CNS_INT int 0 | |
[000289] IA------R--- * ASG struct (init) | |
[000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
fgMorphInitBlock: this requires an InitBlock. | |
Local V17 should not be enregistered because: written in a block op | |
GenTreeNode creates assertion: | |
[000289] IA------R--- * ASG struct (init) | |
In BB03 New Local Constant Assertion: V17 == 0 index=#13, mask=0000000000001000 | |
fgMorphTree BB03, stmt 22 (before) | |
[000295] ---XG------- /--* OBJ(16) struct | |
[000294] ------------ | \--* ADDR byref | |
[000286] ------------ | \--* FIELD struct _value | |
[000284] L----------- | \--* ADDR byref | |
[000285] ------------ | \--* LCL_VAR struct V05 loc4 | |
[000314] -A-XG---R--- * ASG struct (copy) | |
[000312] D----------- \--* LCL_VAR struct V18 tmp11 | |
Local V05 should not be enregistered because: was accessed as a local field | |
The assignment [000295] using V05 removes: Copy Assertion: V05 == V12 | |
fgMorphCopyBlock:block assignment to morph: | |
[000295] x---G+------ /--* OBJ(16) struct | |
[000294] -----+------ | \--* ADDR byref | |
[000285] -----+-N---- | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
[000314] -A--G---R--- * ASG struct (copy) | |
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11 | |
with no promoted structs this requires a CopyBlock. | |
Local V18 should not be enregistered because: written in a block op | |
Local V05 should not be enregistered because: written in a block op | |
fgMorphTree BB03, stmt 22 (after) | |
[000295] x---G+------ /--* IND struct | |
[000294] -----+------ | \--* ADDR byref | |
[000285] -----+-N---- | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
[000314] -A--G+--R--- * ASG struct (copy) | |
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11 | |
fgMorphTree BB03, stmt 23 (before) | |
[000306] ------------ /--* LCL_VAR struct V18 tmp11 | |
[000310] -A------R--- * ASG struct (copy) | |
[000309] ------------ \--* OBJ(16) struct | |
[000308] ------------ \--* ADDR byref | |
[000307] ------------ \--* FIELD struct _value | |
[000304] L----------- \--* ADDR byref | |
[000305] ------------ \--* LCL_VAR struct V17 tmp10 | |
Local V17 should not be enregistered because: was accessed as a local field | |
The assignment [000309] using V17 removes: Constant Assertion: V17 == 0 | |
fgMorphCopyBlock:block assignment to morph: | |
[000306] -----+------ /--* LCL_VAR struct V18 tmp11 | |
[000310] -A------R--- * ASG struct (copy) | |
[000309] x----+------ \--* OBJ(16) struct | |
[000308] -----+------ \--* ADDR byref | |
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
with no promoted structs this requires a CopyBlock. | |
Local V17 should not be enregistered because: written in a block op | |
Local V18 should not be enregistered because: written in a block op | |
fgMorphTree BB03, stmt 23 (after) | |
[000306] -----+------ /--* LCL_VAR struct V18 tmp11 | |
[000310] -A---+--R--- * ASG struct (copy) | |
[000309] x----+------ \--* BLK(16) struct | |
[000308] -----+------ \--* ADDR byref | |
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
fgMorphTree BB03, stmt 24 (before) | |
[000298] ------------ /--* LCL_VAR struct V17 tmp10 | |
[000301] -A------R--- * ASG struct (copy) | |
[000300] D----------- \--* LCL_VAR struct(AX) V03 loc2 | |
fgMorphCopyBlock:block assignment to morph: | |
[000298] -----+------ /--* LCL_VAR struct V17 tmp10 | |
[000301] -A--G---R--- * ASG struct (copy) | |
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
with no promoted structs this requires a CopyBlock. | |
Local V03 should not be enregistered because: written in a block op | |
Local V17 should not be enregistered because: written in a block op | |
Morphing BB18 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB18, stmt 25 (before) | |
[000332] ----G------- /--* FIELD ref _obj | |
[000328] ----G------- | \--* ADDR byref | |
[000329] ----G------- | \--* FIELD struct _value | |
[000330] L----------- | \--* ADDR byref | |
[000331] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000334] -A--G------- * ASG ref | |
[000333] D------N---- \--* LCL_VAR ref V20 tmp13 | |
Local V03 should not be enregistered because: was accessed as a local field | |
fgMorphTree BB18, stmt 25 (after) | |
[000331] ----G+------ /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000334] -A--G+------ * ASG ref | |
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
fgMorphTree BB18, stmt 26 (before) | |
[000339] ------------ * JTRUE void | |
[000337] ------------ | /--* CNS_INT ref null | |
[000338] ------------ \--* NE int | |
[000336] ------------ \--* LCL_VAR ref V20 tmp13 | |
Morphing BB19 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB19, stmt 27 (before) | |
[000392] ------------ /--* CAST int <- bool <- int | |
[000391] ------------ | \--* CNS_INT int 1 | |
[000394] -A---------- * ASG bool | |
[000393] D------N---- \--* LCL_VAR bool V19 tmp12 | |
GenTreeNode creates assertion: | |
[000394] -A---------- * ASG bool | |
In BB19 New Local Constant Assertion: V19 == 1 index=#01, mask=0000000000000001 | |
fgMorphTree BB19, stmt 27 (after) | |
[000391] -----+------ /--* CNS_INT int 1 | |
[000394] -A---+------ * ASG bool | |
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
Morphing BB20 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB20, stmt 28 (before) | |
[000346] --C-G------- /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000343] -------N---- arg0 | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000342] ------------ arg1 | \--* LCL_VAR ref V20 tmp13 | |
[000348] -AC-G------- * ASG ref | |
[000347] D------N---- \--* LCL_VAR ref V21 tmp14 | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rdx'): | |
[000342] -----+------ * LCL_VAR ref V20 tmp13 | |
Replaced with placeholder node: | |
[000853] ----------L- * ARGPLACE ref | |
Deferred argument ('rcx'): | |
[000343] -----+-N---- * CNS_INT(h) long 0x7ffc6b4afbd8 class | |
Replaced with placeholder node: | |
[000855] ----------L- * ARGPLACE long | |
Shuffled argument table: rdx rcx | |
fgArgTabEntry[arg 1 342.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 0 343.CNS_INT, 1 reg: rcx, align=1, lateArgInx=1, processed] | |
fgMorphTree BB20, stmt 28 (after) | |
[000346] --C-G+------ /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000342] -----+------ arg1 in rdx | +--* LCL_VAR ref V20 tmp13 | |
[000343] -----+-N---- arg0 in rcx | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000348] -AC-G+------ * ASG ref | |
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14 | |
fgMorphTree BB20, stmt 29 (before) | |
[000351] ------------ /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---------- * ASG ref | |
[000352] D------N---- \--* LCL_VAR ref V22 tmp15 | |
GenTreeNode creates assertion: | |
[000353] -A---------- * ASG ref | |
In BB20 New Local Copy Assertion: V22 == V21 index=#01, mask=0000000000000001 | |
fgMorphTree BB20, stmt 30 (before) | |
[000357] ------------ * JTRUE void | |
[000355] ------------ | /--* CNS_INT ref null | |
[000356] ------------ \--* EQ int | |
[000350] ------------ \--* LCL_VAR ref V21 tmp14 | |
Morphing BB21 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB21, stmt 31 (before) | |
[000407] V--XGO-N---- /--* FIELD int m_stateFlags | |
[000381] ------------ | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XGO------ * ASG int | |
[000408] D------N---- \--* LCL_VAR int V23 tmp16 | |
GenTreeNode creates assertion: | |
[000407] V--XGO-N---- * IND int | |
In BB21 New Local Constant Assertion: V22 != null index=#01, mask=0000000000000001 | |
GenTreeNode creates assertion: | |
[000409] -A-XGO------ * ASG int | |
In BB21 New Local Subrange Assertion: V23 in [-2147483648..2147483647] index=#02, mask=0000000000000002 | |
fgMorphTree BB21, stmt 31 (after) | |
[000407] V--XG+-N---- /--* IND int | |
[000857] -----+------ | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000858] -----+------ | \--* ADD byref | |
[000381] -----+------ | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XG+------ * ASG int | |
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16 | |
fgMorphTree BB21, stmt 32 (before) | |
[000385] --C--------- /--* CAST int <- bool <- int | |
[000416] --C--------- | \--* CAST int <- bool <- int | |
[000421] ------------ | | /--* CNS_INT int 0 | |
[000422] N--------U-- | \--* GT int | |
[000419] ------------ | | /--* CNS_INT int 0x1600000 | |
[000420] ------------ | \--* AND int | |
[000411] ------------ | \--* LCL_VAR int V23 tmp16 | |
[000387] -AC--------- * ASG bool | |
[000386] D------N---- \--* LCL_VAR bool V19 tmp12 | |
GenTreeNode creates assertion: | |
[000387] -A---------- * ASG bool | |
In BB21 New Local Subrange Assertion: V19 in [0..1] index=#03, mask=0000000000000004 | |
fgMorphTree BB21, stmt 32 (after) | |
[000421] -----+------ /--* CNS_INT int 0 | |
[000422] N----+------ /--* NE int | |
[000419] -----+------ | | /--* CNS_INT int 0x1600000 | |
[000420] -----+------ | \--* AND int | |
[000411] -----+------ | \--* LCL_VAR int V23 tmp16 | |
[000387] -A---+------ * ASG bool | |
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
Morphing BB22 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB22, stmt 33 (before) | |
[000374] ------------ /--* CNS_INT int 0 | |
[000375] N-C-G----U-- /--* GT int | |
[000372] --C-G------- | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] ------------ this in rcx | +--* LCL_VAR ref V20 tmp13 | |
[000371] ----G------- arg1 | \--* FIELD short _token | |
[000367] ----G------- | \--* ADDR byref | |
[000368] ----G------- | \--* FIELD struct _value | |
[000369] L----------- | \--* ADDR byref | |
[000370] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000377] -AC-G------- * ASG bool | |
[000376] D------N---- \--* LCL_VAR bool V19 tmp12 | |
Local V03 should not be enregistered because: was accessed as a local field | |
Local V03 should not be enregistered because: was accessed as a local field | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000360] -----+------ * LCL_VAR ref V20 tmp13 | |
Replaced with placeholder node: | |
[000863] ----------L- * ARGPLACE ref | |
Deferred argument ('rdx'): | |
[000370] ----G+------ * LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
Replaced with placeholder node: | |
[000865] ----------L- * ARGPLACE short | |
Deferred argument ('r11'): | |
[000859] -----+------ * CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
Replaced with placeholder node: | |
[000867] ----------L- * ARGPLACE long | |
Shuffled argument table: rcx rdx r11 | |
fgArgTabEntry[arg 0 360.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 2 370.LCL_FLD, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgArgTabEntry[arg 1 859.CNS_INT, 1 reg: r11, align=1, lateArgInx=2, processed, isNonStandard] | |
GenTreeNode creates assertion: | |
[000372] --CXG------- * CALLV stub int IValueTaskSource`1.GetStatus | |
In BB22 New Local Constant Assertion: V20 != null index=#01, mask=0000000000000001 | |
GenTreeNode creates assertion: | |
[000377] -ACXG------- * ASG bool | |
In BB22 New Local Subrange Assertion: V19 in [0..1] index=#02, mask=0000000000000002 | |
fgMorphTree BB22, stmt 33 (after) | |
[000374] -----+------ /--* CNS_INT int 0 | |
[000375] N-CXG+------ /--* NE int | |
[000372] --CXG+------ | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] -----+------ this in rcx | +--* LCL_VAR ref V20 tmp13 | |
[000370] ----G+------ arg2 in rdx | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000859] -----+------ arg1 in r11 | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
[000377] -ACXG+------ * ASG bool | |
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
Morphing BB23 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB23, stmt 34 (before) | |
[000397] ------------ /--* CNS_INT ref null | |
[000399] -A---------- * ASG ref | |
[000398] D------N---- \--* LCL_VAR ref V20 tmp13 | |
GenTreeNode creates assertion: | |
[000399] -A---------- * ASG ref | |
In BB23 New Local Constant Assertion: V20 == null index=#01, mask=0000000000000001 | |
fgMorphTree BB23, stmt 35 (before) | |
[000401] ------------ /--* CNS_INT ref null | |
[000403] -A---------- * ASG ref | |
[000402] D------N---- \--* LCL_VAR ref V22 tmp15 | |
GenTreeNode creates assertion: | |
[000403] -A---------- * ASG ref | |
In BB23 New Local Constant Assertion: V22 == null index=#02, mask=0000000000000002 | |
fgMorphTree BB23, stmt 36 (before) | |
[000101] --C--------- * JTRUE void | |
[000099] ------------ | /--* CNS_INT int 0 | |
[000100] --C--------- \--* NE int | |
[000325] --C--------- \--* CAST int <- bool <- int | |
[000396] ------------ \--* LCL_VAR int V19 tmp12 | |
fgMorphTree BB23, stmt 36 (after) | |
[000101] -----+------ * JTRUE void | |
[000099] -----+------ | /--* CNS_INT int 0 | |
[000100] J----+-N---- \--* NE int | |
[000396] -----+------ \--* LCL_VAR int V19 tmp12 | |
Morphing BB04 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB04, stmt 37 (before) | |
[000106] ------------ /--* CNS_INT int 0 | |
[000108] -A---------- * ASG int | |
[000107] D------N---- \--* LCL_VAR int V01 loc0 | |
GenTreeNode creates assertion: | |
[000108] -A---------- * ASG int | |
In BB04 New Local Constant Assertion: V01 == 0 index=#01, mask=0000000000000001 | |
fgMorphTree BB04, stmt 38 (before) | |
[000105] ------------ /--* CNS_INT int 0 | |
[000111] -A-XG------- * ASG int | |
[000110] ---XG--N---- \--* FIELD int <>1__state | |
[000104] ------------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB04, stmt 38 (after) | |
[000105] -----+------ /--* CNS_INT int 0 | |
[000111] -A-XG+------ * ASG int | |
[000110] *--XG+-N---- \--* IND int | |
[000104] -----+------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB04, stmt 39 (before) | |
[000114] ------------ /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG---R--- * ASG struct (copy) | |
[000117] ---XG------- \--* OBJ(16) struct | |
[000116] ---XG------- \--* ADDR byref | |
[000115] ---XG------- \--* FIELD struct <>u__1 | |
[000113] ------------ \--* LCL_VAR byref V00 this | |
fgMorphCopyBlock:block assignment to morph: | |
[000114] ----G+------ /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG---R--- * ASG struct (copy) | |
[000117] ---XG+------ \--* OBJ(16) struct | |
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000870] -----+------ \--* ADD byref | |
[000113] -----+------ \--* LCL_VAR byref V00 this | |
with no promoted structs this requires a CopyBlock. | |
Local V03 should not be enregistered because: written in a block op | |
fgMorphTree BB04, stmt 39 (after) | |
[000114] ----G+------ /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG+--R--- * ASG struct (copy) | |
[000117] ---XG+------ \--* OBJ(16) struct | |
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000870] -----+------ \--* ADD byref | |
[000113] -----+------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB04, stmt 40 (before) | |
[000122] ---XG------- /--* ADDR byref | |
[000121] ---XG------- | \--* FIELD struct <>t__builder | |
[000120] ------------ | \--* LCL_VAR byref V00 this | |
[000442] -A-XG------- * ASG byref | |
[000441] D------N---- \--* LCL_VAR byref V24 tmp17 | |
Before explicit null check morphing: | |
[000121] ---XG--N---- * FIELD struct <>t__builder | |
[000120] ------------ \--* LCL_VAR byref V00 this | |
After adding explicit null check: | |
[000121] *--XG--N---- * IND struct | |
[000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000875] ------------ | /--* ADD byref | |
[000873] ------------ | | \--* LCL_VAR byref V00 this | |
[000876] ---X-------- \--* COMMA byref | |
[000872] ---X---N---- \--* NULLCHECK byte | |
[000871] ------------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB04, stmt 40 (after) | |
[000874] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000875] -----+------ /--* ADD byref | |
[000873] -----+------ | \--* LCL_VAR byref V00 this | |
[000876] ---XG+-N---- /--* COMMA byref | |
[000872] ---X-+-N---- | \--* NULLCHECK byte | |
[000871] -----+------ | \--* LCL_VAR byref V00 this | |
[000442] -A-XG+------ * ASG byref | |
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17 | |
fgMorphTree BB04, stmt 41 (before) | |
[000428] ------------ /--* CNS_INT int 1 | |
[000430] -A-XG------- * ASG bool | |
[000429] ---XG--N---- \--* FIELD bool _useBuilder | |
[000427] ------------ \--* LCL_VAR byref V24 tmp17 | |
fgMorphTree BB04, stmt 41 (after) | |
[000428] -----+------ /--* CNS_INT int 1 | |
[000430] -A-XG+------ * ASG bool | |
[000429] *--XG+-N---- \--* IND bool | |
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000879] -----+------ \--* ADD byref | |
[000427] -----+------ \--* LCL_VAR byref V24 tmp17 | |
fgMorphTree BB04, stmt 42 (before) | |
[000437] --CXG------- * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
[000434] ---XG------- this in rcx +--* ADDR byref | |
[000433] ---XG------- | \--* FIELD struct _methodBuilder | |
[000432] ------------ | \--* LCL_VAR byref V24 tmp17 | |
[000435] L----------- arg1 +--* ADDR byref | |
[000436] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000125] ------------ arg2 \--* LCL_VAR byref V00 this | |
Before explicit null check morphing: | |
[000433] ---XG--N---- * FIELD struct _methodBuilder | |
[000432] ------------ \--* LCL_VAR byref V24 tmp17 | |
After adding explicit null check: | |
[000433] *--XG--N---- * IND struct | |
[000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000884] ------------ | /--* ADD byref | |
[000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
[000885] ---X-------- \--* COMMA byref | |
[000881] ---X---N---- \--* NULLCHECK byte | |
[000880] ------------ \--* LCL_VAR byref V24 tmp17 | |
argSlots=3, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
( 1, 1) [000883] ------------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
( 5, 4) [000884] ------------ /--* ADD byref | |
( 3, 2) [000882] ------------ | \--* LCL_VAR byref V24 tmp17 | |
( 9, 7) [000885] ---XG--N---- * COMMA byref | |
( 4, 3) [000881] ---X---N---- \--* NULLCHECK byte | |
( 3, 2) [000880] ------------ \--* LCL_VAR byref V24 tmp17 | |
Replaced with placeholder node: | |
[000887] ----------L- * ARGPLACE byref | |
Deferred argument ('rdx'): | |
( 3, 3) [000435] L----------- * ADDR long | |
( 3, 2) [000436] ----G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
Replaced with placeholder node: | |
[000889] ----------L- * ARGPLACE long | |
Deferred argument ('r8'): | |
[000125] -----+------ * LCL_VAR byref V00 this | |
Replaced with placeholder node: | |
[000891] ----------L- * ARGPLACE byref | |
Shuffled argument table: rcx rdx r8 | |
fgArgTabEntry[arg 0 885.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 1 435.ADDR, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgArgTabEntry[arg 2 125.LCL_VAR, 1 reg: r8, align=1, lateArgInx=2, processed] | |
fgMorphTree BB04, stmt 42 (after) | |
[000437] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
( 5, 4) [000884] ------------ | /--* ADD byref | |
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte | |
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 | |
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this | |
Morphing BB05 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB05, stmt 43 (before) | |
[000016] ---XG------- /--* FIELD struct <>u__1 | |
[000015] ------------ | \--* LCL_VAR byref V00 this | |
[000019] -A-XG---R--- * ASG struct (copy) | |
[000017] D----------- \--* LCL_VAR struct(AX) V03 loc2 | |
fgMorphCopyBlock:block assignment to morph: | |
[000016] *--XG+------ /--* IND struct | |
[000893] -----+------ | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000894] -----+------ | \--* ADD byref | |
[000015] -----+------ | \--* LCL_VAR byref V00 this | |
[000019] -A-XG---R--- * ASG struct (copy) | |
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
with no promoted structs this requires a CopyBlock. | |
Local V03 should not be enregistered because: written in a block op | |
fgMorphTree BB05, stmt 43 (after) | |
[000016] *--XG+------ /--* IND struct | |
[000893] -----+------ | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000894] -----+------ | \--* ADD byref | |
[000015] -----+------ | \--* LCL_VAR byref V00 this | |
[000019] -A-XG+--R--- * ASG struct (copy) | |
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
fgMorphTree BB05, stmt 44 (before) | |
[000024] ------------ /--* CNS_INT int 0 | |
[000026] IA-XG---R--- * ASG struct (init) | |
[000025] ---XG--N---- \--* BLK(16) struct | |
[000023] ---XG------- \--* ADDR byref | |
[000022] ---XG------- \--* FIELD struct <>u__1 | |
[000021] ------------ \--* LCL_VAR byref V00 this | |
fgMorphInitBlock: this requires an InitBlock. | |
fgMorphTree BB05, stmt 44 (after) | |
[000024] -----+------ /--* CNS_INT int 0 | |
[000026] IA-XG+--R--- * ASG struct (init) | |
[000025] ---XG+-N---- \--* BLK(16) struct | |
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000896] -----+------ \--* ADD byref | |
[000021] -----+------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB05, stmt 45 (before) | |
[000029] ------------ /--* CNS_INT int -1 | |
[000031] -A---------- * ASG int | |
[000030] D------N---- \--* LCL_VAR int V08 tmp1 | |
GenTreeNode creates assertion: | |
[000031] -A---------- * ASG int | |
In BB05 New Local Constant Assertion: V08 == -1 index=#01, mask=0000000000000001 | |
fgMorphTree BB05, stmt 46 (before) | |
[000034] ------------ /--* LCL_VAR int V08 tmp1 | |
[000036] -A---------- * ASG int | |
[000035] D------N---- \--* LCL_VAR int V01 loc0 | |
Assertion prop in BB05: | |
Constant Assertion: V08 == -1 index=#01, mask=0000000000000001 | |
[000034] ------------ * CNS_INT int -1 | |
GenTreeNode creates assertion: | |
[000036] -A---------- * ASG int | |
In BB05 New Local Constant Assertion: V01 == -1 index=#02, mask=0000000000000002 | |
fgMorphTree BB05, stmt 46 (after) | |
[000034] -----+------ /--* CNS_INT int -1 | |
[000036] -A---+------ * ASG int | |
[000035] D----+-N---- \--* LCL_VAR int V01 loc0 | |
fgMorphTree BB05, stmt 47 (before) | |
[000033] ------------ /--* LCL_VAR int V08 tmp1 | |
[000039] -A-XG------- * ASG int | |
[000038] ---XG--N---- \--* FIELD int <>1__state | |
[000028] ------------ \--* LCL_VAR byref V00 this | |
Assertion prop in BB05: | |
Constant Assertion: V08 == -1 index=#01, mask=0000000000000001 | |
[000033] ------------ * CNS_INT int -1 | |
fgMorphTree BB05, stmt 47 (after) | |
[000033] -----+------ /--* CNS_INT int -1 | |
[000039] -A-XG+------ * ASG int | |
[000038] *--XG+-N---- \--* IND int | |
[000028] -----+------ \--* LCL_VAR byref V00 this | |
Morphing BB06 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB29 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB29, stmt 48 (before) | |
[000459] ----G------- /--* FIELD ref _obj | |
[000455] ----G------- | \--* ADDR byref | |
[000456] ----G------- | \--* FIELD struct _value | |
[000457] L----------- | \--* ADDR byref | |
[000458] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000461] -A--G------- * ASG ref | |
[000460] D------N---- \--* LCL_VAR ref V26 tmp19 | |
Local V03 should not be enregistered because: was accessed as a local field | |
fgMorphTree BB29, stmt 48 (after) | |
[000458] ----G+------ /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000461] -A--G+------ * ASG ref | |
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
fgMorphTree BB29, stmt 49 (before) | |
[000466] ------------ * JTRUE void | |
[000464] ------------ | /--* CNS_INT ref null | |
[000465] ------------ \--* NE int | |
[000463] ------------ \--* LCL_VAR ref V26 tmp19 | |
Morphing BB30 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB30, stmt 50 (before) | |
[000523] ----G------- /--* FIELD int _result | |
[000519] ----G------- | \--* ADDR byref | |
[000520] ----G------- | \--* FIELD struct _value | |
[000521] L----------- | \--* ADDR byref | |
[000522] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000525] -A--G------- * ASG int | |
[000524] D------N---- \--* LCL_VAR int V25 tmp18 | |
Local V03 should not be enregistered because: was accessed as a local field | |
Local V03 should not be enregistered because: was accessed as a local field | |
GenTreeNode creates assertion: | |
[000525] -A--G------- * ASG int | |
In BB30 New Local Subrange Assertion: V25 in [-2147483648..2147483647] index=#01, mask=0000000000000001 | |
fgMorphTree BB30, stmt 50 (after) | |
[000522] ----G+------ /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
[000525] -A--G+------ * ASG int | |
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
Morphing BB31 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB31, stmt 51 (before) | |
[000473] --C-G------- /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000470] -------N---- arg0 | +--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000469] ------------ arg1 | \--* LCL_VAR ref V26 tmp19 | |
[000475] -AC-G------- * ASG ref | |
[000474] D------N---- \--* LCL_VAR ref V27 tmp20 | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rdx'): | |
[000469] -----+------ * LCL_VAR ref V26 tmp19 | |
Replaced with placeholder node: | |
[000899] ----------L- * ARGPLACE ref | |
Deferred argument ('rcx'): | |
[000470] -----+-N---- * CNS_INT(h) long 0x7ffc6b4afbd8 class | |
Replaced with placeholder node: | |
[000901] ----------L- * ARGPLACE long | |
Shuffled argument table: rdx rcx | |
fgArgTabEntry[arg 1 469.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 0 470.CNS_INT, 1 reg: rcx, align=1, lateArgInx=1, processed] | |
fgMorphTree BB31, stmt 51 (after) | |
[000473] --C-G+------ /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000469] -----+------ arg1 in rdx | +--* LCL_VAR ref V26 tmp19 | |
[000470] -----+-N---- arg0 in rcx | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000475] -AC-G+------ * ASG ref | |
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20 | |
fgMorphTree BB31, stmt 52 (before) | |
[000478] ------------ /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---------- * ASG ref | |
[000479] D------N---- \--* LCL_VAR ref V28 tmp21 | |
GenTreeNode creates assertion: | |
[000480] -A---------- * ASG ref | |
In BB31 New Local Copy Assertion: V28 == V27 index=#01, mask=0000000000000001 | |
fgMorphTree BB31, stmt 53 (before) | |
[000484] ------------ * JTRUE void | |
[000482] ------------ | /--* CNS_INT ref null | |
[000483] ------------ \--* EQ int | |
[000477] ------------ \--* LCL_VAR ref V27 tmp20 | |
Morphing BB32 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB35 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB35, stmt 54 (before) | |
[000543] --C--------- * JTRUE void | |
[000541] ------------ | /--* CNS_INT int 0 | |
[000542] --C--------- \--* EQ int | |
[000558] ------------ | /--* CNS_INT int 0 | |
[000559] ---XGO------ \--* EQ int | |
[000556] ------------ | /--* CNS_INT int 0x1000000 | |
[000557] ---XGO------ \--* EQ int | |
[000554] ------------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XGO------ \--* AND int | |
[000553] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
GenTreeNode creates assertion: | |
[000553] V--XGO-N---- * IND int | |
In BB35 New Local Constant Assertion: V28 != null index=#01, mask=0000000000000001 | |
fgMorphTree BB35, stmt 54 (after) | |
[000543] ---XG+------ * JTRUE void | |
[000556] -----+------ | /--* CNS_INT int 0x1000000 | |
[000557] J--XG+-N---- \--* EQ int | |
[000554] -----+------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XG+------ \--* AND int | |
[000553] V--XG+-N---- \--* IND int | |
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000904] -----+------ \--* ADD byref | |
[000506] -----+------ \--* LCL_VAR ref V28 tmp21 | |
Morphing BB36 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB36, stmt 55 (before) | |
[000548] --C-G------- * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] ------------ arg0 \--* LCL_VAR ref V28 tmp21 | |
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000547] -----+------ * LCL_VAR ref V28 tmp21 | |
Replaced with placeholder node: | |
[000905] ----------L- * ARGPLACE ref | |
Shuffled argument table: rcx | |
fgArgTabEntry[arg 0 547.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgMorphTree BB36, stmt 55 (after) | |
[000548] --CXG+------ * CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 | |
Morphing BB37 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB38 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB38, stmt 56 (before) | |
[000562] ---XG------- /--* FIELD int m_result | |
[000510] ------------ | \--* LCL_VAR ref V28 tmp21 | |
[000515] -AC--------- * ASG int | |
[000514] D------N---- \--* LCL_VAR int V25 tmp18 | |
GenTreeNode creates assertion: | |
[000562] ---XG------- * IND int | |
In BB38 New Local Constant Assertion: V28 != null index=#01, mask=0000000000000001 | |
GenTreeNode creates assertion: | |
[000515] -A-XG------- * ASG int | |
In BB38 New Local Subrange Assertion: V25 in [-2147483648..2147483647] index=#02, mask=0000000000000002 | |
fgMorphTree BB38, stmt 56 (after) | |
[000562] ---XG+------ /--* IND int | |
[000907] -----+------ | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000908] -----+------ | \--* ADD byref | |
[000510] -----+------ | \--* LCL_VAR ref V28 tmp21 | |
[000515] -A-XG+------ * ASG int | |
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
Morphing BB33 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB33, stmt 57 (before) | |
[000499] --C-G------- /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] ------------ this in rcx | +--* LCL_VAR ref V26 tmp19 | |
[000498] ----G------- arg1 | \--* FIELD short _token | |
[000494] ----G------- | \--* ADDR byref | |
[000495] ----G------- | \--* FIELD struct _value | |
[000496] L----------- | \--* ADDR byref | |
[000497] ------------ | \--* LCL_VAR struct(AX) V03 loc2 | |
[000502] -AC-G------- * ASG int | |
[000501] D------N---- \--* LCL_VAR int V25 tmp18 | |
Local V03 should not be enregistered because: was accessed as a local field | |
Local V03 should not be enregistered because: was accessed as a local field | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000487] -----+------ * LCL_VAR ref V26 tmp19 | |
Replaced with placeholder node: | |
[000913] ----------L- * ARGPLACE ref | |
Deferred argument ('rdx'): | |
[000497] ----G+------ * LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
Replaced with placeholder node: | |
[000915] ----------L- * ARGPLACE short | |
Deferred argument ('r11'): | |
[000909] -----+------ * CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
Replaced with placeholder node: | |
[000917] ----------L- * ARGPLACE long | |
Shuffled argument table: rcx rdx r11 | |
fgArgTabEntry[arg 0 487.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 2 497.LCL_FLD, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgArgTabEntry[arg 1 909.CNS_INT, 1 reg: r11, align=1, lateArgInx=2, processed, isNonStandard] | |
GenTreeNode creates assertion: | |
[000499] --CXG------- * CALLV stub int IValueTaskSource`1.GetResult | |
In BB33 New Local Constant Assertion: V26 != null index=#01, mask=0000000000000001 | |
fgMorphTree BB33, stmt 57 (after) | |
[000499] --CXG+------ /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] -----+------ this in rcx | +--* LCL_VAR ref V26 tmp19 | |
[000497] ----G+------ arg2 in rdx | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000909] -----+------ arg1 in r11 | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
[000502] -ACXG+------ * ASG int | |
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
Morphing BB34 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB34, stmt 58 (before) | |
[000528] ------------ /--* CNS_INT ref null | |
[000530] -A---------- * ASG ref | |
[000529] D------N---- \--* LCL_VAR ref V26 tmp19 | |
GenTreeNode creates assertion: | |
[000530] -A---------- * ASG ref | |
In BB34 New Local Constant Assertion: V26 == null index=#01, mask=0000000000000001 | |
fgMorphTree BB34, stmt 59 (before) | |
[000532] ------------ /--* CNS_INT ref null | |
[000534] -A---------- * ASG ref | |
[000533] D------N---- \--* LCL_VAR ref V28 tmp21 | |
GenTreeNode creates assertion: | |
[000534] -A---------- * ASG ref | |
In BB34 New Local Constant Assertion: V28 == null index=#02, mask=0000000000000002 | |
fgMorphTree BB34, stmt 60 (before) | |
[000527] ------------ /--* LCL_VAR int V25 tmp18 | |
[000048] -AC--------- * ASG int | |
[000047] D------N---- \--* LCL_VAR int V02 loc1 | |
GenTreeNode creates assertion: | |
[000048] -A---------- * ASG int | |
In BB34 New Local Copy Assertion: V02 == V25 index=#03, mask=0000000000000004 | |
Morphing BB07 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB07, stmt 61 (before) | |
[000007] -----O------ /--* CATCH_ARG ref | |
[000132] -A---O------ * ASG ref | |
[000131] D------N---- \--* LCL_VAR ref V09 tmp2 | |
fgMorphTree BB07, stmt 62 (before) | |
[000134] ------------ /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---------- * ASG ref | |
[000135] D------N---- \--* LCL_VAR ref V06 loc5 | |
GenTreeNode creates assertion: | |
[000136] -A---------- * ASG ref | |
In BB07 New Local Copy Assertion: V06 == V09 index=#01, mask=0000000000000001 | |
fgMorphTree BB07, stmt 63 (before) | |
[000139] ------------ /--* CNS_INT int -2 | |
[000141] -A-XG------- * ASG int | |
[000140] ---XG--N---- \--* FIELD int <>1__state | |
[000138] ------------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB07, stmt 63 (after) | |
[000139] -----+------ /--* CNS_INT int -2 | |
[000141] -A-XG+------ * ASG int | |
[000140] *--XG+-N---- \--* IND int | |
[000138] -----+------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB07, stmt 64 (before) | |
[000147] --CXG------- * CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000145] ---XG------- this in rcx +--* ADDR byref | |
[000144] ---XG------- | \--* FIELD struct <>t__builder | |
[000143] ------------ | \--* LCL_VAR byref V00 this | |
[000146] ------------ arg1 \--* LCL_VAR ref V06 loc5 | |
Before explicit null check morphing: | |
[000144] ---XG--N---- * FIELD struct <>t__builder | |
[000143] ------------ \--* LCL_VAR byref V00 this | |
After adding explicit null check: | |
[000144] *--XG--N---- * IND struct | |
[000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] ------------ | /--* ADD byref | |
[000921] ------------ | | \--* LCL_VAR byref V00 this | |
[000924] ---X-------- \--* COMMA byref | |
[000920] ---X---N---- \--* NULLCHECK byte | |
[000919] ------------ \--* LCL_VAR byref V00 this | |
Assertion prop in BB07: | |
Copy Assertion: V06 == V09 index=#01, mask=0000000000000001 | |
[000146] ------------ * LCL_VAR ref V09 tmp2 | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000922] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] -----+------ /--* ADD byref | |
[000921] -----+------ | \--* LCL_VAR byref V00 this | |
[000924] ---XG+-N---- * COMMA byref | |
[000920] ---X-+-N---- \--* NULLCHECK byte | |
[000919] -----+------ \--* LCL_VAR byref V00 this | |
Replaced with placeholder node: | |
[000926] ----------L- * ARGPLACE byref | |
Deferred argument ('rdx'): | |
[000146] -----+------ * LCL_VAR ref V09 tmp2 | |
Replaced with placeholder node: | |
[000928] ----------L- * ARGPLACE ref | |
Shuffled argument table: rcx rdx | |
fgArgTabEntry[arg 0 924.COMMA, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 1 146.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgMorphTree BB07, stmt 64 (after) | |
[000147] --CXG+------ * CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] -----+------ | /--* ADD byref | |
[000921] -----+------ | | \--* LCL_VAR byref V00 this | |
[000924] ---XG+-N---- this in rcx +--* COMMA byref | |
[000920] ---X-+-N---- | \--* NULLCHECK byte | |
[000919] -----+------ | \--* LCL_VAR byref V00 this | |
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 | |
Morphing BB08 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB08, stmt 65 (before) | |
[000052] ------------ /--* CNS_INT int -2 | |
[000054] -A-XG------- * ASG int | |
[000053] ---XG--N---- \--* FIELD int <>1__state | |
[000051] ------------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB08, stmt 65 (after) | |
[000052] -----+------ /--* CNS_INT int -2 | |
[000054] -A-XG+------ * ASG int | |
[000053] *--XG+-N---- \--* IND int | |
[000051] -----+------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB08, stmt 66 (before) | |
[000058] ---XG------- /--* ADDR byref | |
[000057] ---XG------- | \--* FIELD struct <>t__builder | |
[000056] ------------ | \--* LCL_VAR byref V00 this | |
[000592] -A-XG------- * ASG byref | |
[000591] D------N---- \--* LCL_VAR byref V29 tmp22 | |
Before explicit null check morphing: | |
[000057] ---XG--N---- * FIELD struct <>t__builder | |
[000056] ------------ \--* LCL_VAR byref V00 this | |
After adding explicit null check: | |
[000057] *--XG--N---- * IND struct | |
[000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000934] ------------ | /--* ADD byref | |
[000932] ------------ | | \--* LCL_VAR byref V00 this | |
[000935] ---X-------- \--* COMMA byref | |
[000931] ---X---N---- \--* NULLCHECK byte | |
[000930] ------------ \--* LCL_VAR byref V00 this | |
fgMorphTree BB08, stmt 66 (after) | |
[000933] -----+------ /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000934] -----+------ /--* ADD byref | |
[000932] -----+------ | \--* LCL_VAR byref V00 this | |
[000935] ---XG+-N---- /--* COMMA byref | |
[000931] ---X-+-N---- | \--* NULLCHECK byte | |
[000930] -----+------ | \--* LCL_VAR byref V00 this | |
[000592] -A-XG+------ * ASG byref | |
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22 | |
Morphing BB42 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB42, stmt 67 (before) | |
[000571] ---XG------- * JTRUE void | |
[000569] ------------ | /--* CNS_INT int 0 | |
[000570] ---XG------- \--* EQ int | |
[000568] ---XG------- \--* FIELD bool _useBuilder | |
[000567] ------------ \--* LCL_VAR byref V29 tmp22 | |
fgMorphTree BB42, stmt 67 (after) | |
[000571] ---XG+------ * JTRUE void | |
[000569] -----+------ | /--* CNS_INT int 0 | |
[000570] J--XG+-N---- \--* EQ int | |
[000568] *--XG+------ \--* IND bool | |
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000938] -----+------ \--* ADD byref | |
[000567] -----+------ \--* LCL_VAR byref V29 tmp22 | |
Morphing BB43 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB43, stmt 68 (before) | |
[000586] ---XG------- /--* ADDR byref | |
[000585] ---XG------- | \--* FIELD struct _methodBuilder | |
[000584] ------------ | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG------- * ASG byref | |
[000617] D------N---- \--* LCL_VAR byref V30 tmp23 | |
Before explicit null check morphing: | |
[000585] ---XG--N---- * FIELD struct _methodBuilder | |
[000584] ------------ \--* LCL_VAR byref V29 tmp22 | |
After adding explicit null check: | |
[000585] *--XG--N---- * IND struct | |
[000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000943] ------------ | /--* ADD byref | |
[000941] ------------ | | \--* LCL_VAR byref V29 tmp22 | |
[000944] ---X-------- \--* COMMA byref | |
[000940] ---X---N---- \--* NULLCHECK byte | |
[000939] ------------ \--* LCL_VAR byref V29 tmp22 | |
fgMorphTree BB43, stmt 68 (after) | |
[000942] -----+------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000943] -----+------ /--* ADD byref | |
[000941] -----+------ | \--* LCL_VAR byref V29 tmp22 | |
[000944] ---XG+-N---- /--* COMMA byref | |
[000940] ---X-+-N---- | \--* NULLCHECK byte | |
[000939] -----+------ | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG+------ * ASG byref | |
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23 | |
Morphing BB46 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB46, stmt 69 (before) | |
[000600] ---XG------- * JTRUE void | |
[000598] ------------ | /--* CNS_INT ref null | |
[000599] ---XG------- \--* NE int | |
[000597] ---XG------- \--* FIELD ref m_task | |
[000596] ------------ \--* LCL_VAR byref V30 tmp23 | |
fgMorphTree BB46, stmt 69 (after) | |
[000600] ---XG+------ * JTRUE void | |
[000598] -----+------ | /--* CNS_INT ref null | |
[000599] J--XG+-N---- \--* NE int | |
[000597] *--XG+------ \--* IND ref | |
[000596] -----+------ \--* LCL_VAR byref V30 tmp23 | |
Morphing BB47 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB84 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB84, stmt 70 (before) | |
[000624] ------------ /--* CNS_INT int 0 | |
[000626] IA------R--- * ASG struct (init) | |
[000625] -------N---- \--* BLK(4) struct | |
[000623] L----------- \--* ADDR byref | |
[000622] ------------ \--* LCL_VAR int V32 tmp25 | |
fgMorphInitBlock:fgMorphOneAsgBlock (after): | |
[000624] -----+------ /--* CNS_INT int 0 | |
[000626] -A---------- * ASG int | |
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25 | |
using oneAsgTree. | |
GenTreeNode creates assertion: | |
[000626] -A---------- * ASG int | |
In BB84 New Local Constant Assertion: V32 == 0 index=#01, mask=0000000000000001 | |
fgMorphTree BB84, stmt 70 (after) | |
[000624] -----+------ /--* CNS_INT int 0 | |
[000626] -A---+------ * ASG int | |
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25 | |
fgMorphTree BB84, stmt 71 (before) | |
[000632] ------------ * NOP void | |
fgMorphTree BB84, stmt 72 (before) | |
[000638] ------------ * NOP void | |
Morphing BB85 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB86 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB87 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB87, stmt 73 (before) | |
[000609] ------------ /--* LCL_VAR int V02 loc1 | |
[000669] -A---------- * ASG int | |
[000668] D------N---- \--* LCL_VAR int V34 tmp27 | |
GenTreeNode creates assertion: | |
[000669] -A---------- * ASG int | |
In BB87 New Local Copy Assertion: V34 == V02 index=#01, mask=0000000000000001 | |
fgMorphTree BB87, stmt 74 (before) | |
[000674] ------------ * JTRUE void | |
[000672] ------------ | /--* CNS_INT int 9 | |
[000673] ------------ \--* GE int | |
[000671] ------------ \--* LCL_VAR int V34 tmp27 | |
Assertion prop in BB87: | |
Copy Assertion: V34 == V02 index=#01, mask=0000000000000001 | |
[000671] ------------ * LCL_VAR int V02 loc1 | |
fgMorphTree BB87, stmt 74 (after) | |
[000674] -----+------ * JTRUE void | |
[000672] -----+------ | /--* CNS_INT int 9 | |
[000673] J----+-N---- \--* GE int | |
[000671] -----+------ \--* LCL_VAR int V02 loc1 | |
Morphing BB88 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB88, stmt 75 (before) | |
[000696] ------------ * JTRUE void | |
[000694] ------------ | /--* CNS_INT int -1 | |
[000695] ------------ \--* LT int | |
[000693] ------------ \--* LCL_VAR int V34 tmp27 | |
Morphing BB89 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB89, stmt 76 (before) | |
[000708] ------------ /--* CNS_INT int -1 | |
[000709] ------------ /--* SUB int | |
[000707] ------------ | \--* LCL_VAR int V34 tmp27 | |
[000710] R-CXG------- /--* INDEX ref | |
[000699] ----G------- | | /--* FIELD ref Int32Tasks | |
[000706] --CXG------- | \--* COMMA ref | |
[000705] H-CXG------- | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] ------------ arg0 | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] ------------ arg1 | \--* CNS_INT int 0x70A | |
[000712] -ACXG------- * ASG ref | |
[000711] D------N---- \--* LCL_VAR ref V36 tmp29 | |
lvaGrabTemp returning 53 (V53 tmp46) called for arr expr. | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000701] -----+------ * CNS_INT long 0x7ffc0d5c3020 | |
Replaced with placeholder node: | |
[000963] ----------L- * ARGPLACE long | |
Deferred argument ('rdx'): | |
[000702] -----+------ * CNS_INT int 0x70A | |
Replaced with placeholder node: | |
[000965] ----------L- * ARGPLACE int | |
Shuffled argument table: rcx rdx | |
fgArgTabEntry[arg 0 701.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 1 702.CNS_INT, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
GenTreeNode creates assertion: | |
[000953] ---X-------- * ARR_LENGTH int | |
In BB89 New Local Constant Assertion: V53 != null index=#01, mask=0000000000000001 | |
fgMorphTree BB89, stmt 76 (after) | |
[000710] a---G+------ /--* IND ref | |
[000959] -----+------ | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
[000960] -----+------ | \--* ADD byref | |
[000956] -----+-N---- | | /--* CNS_INT long 3 | |
[000957] -----+------ | | /--* LSH long | |
[000955] -----+------ | | | \--* CAST long <- int | |
[000952] -----+------ | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
[000950] -----+------ | | | \--* ADD int | |
[000951] i----+------ | | | \--* LCL_VAR int V34 tmp27 | |
[000958] -----+------ | \--* ADD byref | |
[000949] -----+------ | \--* LCL_VAR ref V53 tmp46 | |
[000961] ---XG+------ /--* COMMA ref | |
[000954] ---X-+------ | \--* ARR_BOUNDS_CHECK_Rng void | |
[000708] -----+------ | | /--* CNS_INT int 1 | |
[000709] -----+------ | +--* ADD int | |
[000707] -----+------ | | \--* LCL_VAR int V34 tmp27 | |
[000953] ---X-+------ | \--* ARR_LENGTH int | |
[000948] -----+------ | \--* LCL_VAR ref V53 tmp46 | |
[000962] -ACXG+------ /--* COMMA ref | |
[000699] x---G+------ | | /--* IND ref | |
[000967] -----+------ | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
[000706] --CXG+------ | | /--* COMMA ref | |
[000705] H-CXG+------ | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] -----+------ arg0 in rcx | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] -----+------ arg1 in rdx | | | \--* CNS_INT int 0x70A | |
[000947] -ACXG+------ | \--* ASG ref | |
[000946] D----+-N---- | \--* LCL_VAR ref V53 tmp46 | |
[000712] -ACXG+------ * ASG ref | |
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
fgMorphTree BB89, stmt 77 (before) | |
[000714] ------------ /--* LCL_VAR ref V36 tmp29 | |
[000722] -AC--------- * ASG ref | |
[000721] D------N---- \--* LCL_VAR ref V31 tmp24 | |
GenTreeNode creates assertion: | |
[000722] -A---------- * ASG ref | |
In BB89 New Local Copy Assertion: V31 == V36 index=#02, mask=0000000000000002 | |
Morphing BB90 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB90, stmt 78 (before) | |
[000679] ------------ /--* ALLOCOBJ ref | |
[000678] ------------ | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -A---------- * ASG ref | |
[000680] D------N---- \--* LCL_VAR ref V35 tmp28 | |
fgMorphTree BB90, stmt 79 (before) | |
[000737] ------------ /--* CNS_INT int 0 | |
[000738] IA------R--- * ASG struct (init) | |
[000735] D------N---- \--* LCL_VAR struct(P) V37 tmp30 | |
\--* ref V37._source (offs=0x00) -> V51 tmp44 | |
fgMorphInitBlock: (destDoFldAsg=true) using field by field initialization. | |
GenTreeNode creates assertion: | |
[000970] -A---------- * ASG ref | |
In BB90 New Local Constant Assertion: V51 == null index=#01, mask=0000000000000001 | |
fgMorphInitBlock (after): | |
[000969] ------------ /--* CNS_INT ref null | |
[000970] -A---+------ * ASG ref | |
[000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
The assignment [000970] using V51 removes: Constant Assertion: V51 == null | |
GenTreeNode creates assertion: | |
[000970] -A---+------ * ASG ref | |
In BB90 New Local Constant Assertion: V51 == null index=#01, mask=0000000000000001 | |
fgMorphTree BB90, stmt 79 (after) | |
[000969] ------------ /--* CNS_INT ref null | |
[000970] -A---+------ * ASG ref | |
[000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
Morphing BB97 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB97, stmt 80 (before) | |
[000757] ------------ /--* CNS_INT int 0 | |
[000759] -A---------- * ASG int | |
[000758] D------N---- \--* LCL_VAR int V38 tmp31 | |
GenTreeNode creates assertion: | |
[000759] -A---------- * ASG int | |
In BB97 New Local Constant Assertion: V38 == 0 index=#01, mask=0000000000000001 | |
Morphing BB98 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB98, stmt 81 (before) | |
[000767] ------------ /--* LCL_VAR int V38 tmp31 | |
[000768] ------------ /--* OR int | |
[000766] ------------ | \--* CNS_INT int 0x1000000 | |
[000770] -A-XGO------ * ASG int | |
[000769] V--XGO-N---- \--* FIELD int m_stateFlags | |
[000765] ------------ \--* LCL_VAR ref V35 tmp28 | |
GenTreeNode creates assertion: | |
[000769] V--XGO-N---- * IND int | |
In BB98 New Local Constant Assertion: V35 != null index=#01, mask=0000000000000001 | |
fgMorphTree BB98, stmt 81 (after) | |
[000766] -----+------ /--* CNS_INT int 0x1000000 | |
[000768] -----+------ /--* OR int | |
[000767] -----+------ | \--* LCL_VAR int V38 tmp31 | |
[000770] -A-XG+------ * ASG int | |
[000769] V--XG+-N---- \--* IND int | |
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000972] -----+------ \--* ADD byref | |
[000765] -----+------ \--* LCL_VAR ref V35 tmp28 | |
Morphing BB99 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB99, stmt 82 (before) | |
[000677] ------------ /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG------- * ASG int | |
[000749] ---XG--N---- \--* FIELD int m_result | |
[000748] ------------ \--* LCL_VAR ref V35 tmp28 | |
GenTreeNode creates assertion: | |
[000749] ---XG--N---- * IND int | |
In BB99 New Local Constant Assertion: V35 != null index=#01, mask=0000000000000001 | |
fgMorphTree BB99, stmt 82 (after) | |
[000677] -----+------ /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG+------ * ASG int | |
[000749] ---XG+-N---- \--* IND int | |
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000974] -----+------ \--* ADD byref | |
[000748] -----+------ \--* LCL_VAR ref V35 tmp28 | |
fgMorphTree BB99, stmt 83 (before) | |
[000687] ------------ /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---------- * ASG ref | |
[000688] D------N---- \--* LCL_VAR ref V31 tmp24 | |
GenTreeNode creates assertion: | |
[000689] -A---------- * ASG ref | |
In BB99 New Local Copy Assertion: V31 == V35 index=#02, mask=0000000000000002 | |
Morphing BB91 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB91, stmt 84 (before) | |
[000725] ------------ /--* CNS_INT ref null | |
[000727] -A---------- * ASG ref | |
[000726] D------N---- \--* LCL_VAR ref V36 tmp29 | |
GenTreeNode creates assertion: | |
[000727] -A---------- * ASG ref | |
In BB91 New Local Constant Assertion: V36 == null index=#01, mask=0000000000000001 | |
fgMorphTree BB91, stmt 85 (before) | |
[000724] ------------ /--* LCL_VAR ref V31 tmp24 | |
[000615] -ACXG------- * ASG ref | |
[000614] ---XG--N---- \--* FIELD ref m_task | |
[000608] ------------ \--* LCL_VAR byref V30 tmp23 | |
fgMorphTree BB91, stmt 85 (after) | |
[000724] -----+------ /--* LCL_VAR ref V31 tmp24 | |
[000615] -A-XG+------ * ASG ref | |
[000614] *--XG+-N---- \--* IND ref | |
[000608] -----+------ \--* LCL_VAR byref V30 tmp23 | |
Morphing BB48 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB48, stmt 86 (before) | |
[000604] --C-G------- * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] ------------ arg1 \--* LCL_VAR int V02 loc1 | |
Rejecting tail call late for call [000604]: Local address taken | |
argSlots=2, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000603] -----+------ * LCL_VAR byref V30 tmp23 | |
Replaced with placeholder node: | |
[000975] ----------L- * ARGPLACE byref | |
Deferred argument ('rdx'): | |
[000587] -----+------ * LCL_VAR int V02 loc1 | |
Replaced with placeholder node: | |
[000977] ----------L- * ARGPLACE int | |
Shuffled argument table: rcx rdx | |
fgArgTabEntry[arg 0 603.LCL_VAR, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgArgTabEntry[arg 1 587.LCL_VAR, 1 reg: rdx, align=1, lateArgInx=1, processed] | |
fgMorphTree BB48, stmt 86 (after) | |
[000604] --CXG+------ * CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1 | |
Morphing BB49 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB44 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB44, stmt 87 (before) | |
[000059] ------------ /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG------- * ASG int | |
[000575] ---XG--N---- \--* FIELD int _result | |
[000574] ------------ \--* LCL_VAR byref V29 tmp22 | |
fgMorphTree BB44, stmt 87 (after) | |
[000059] -----+------ /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG+------ * ASG int | |
[000575] *--XG+-N---- \--* IND int | |
[000574] -----+------ \--* LCL_VAR byref V29 tmp22 | |
fgMorphTree BB44, stmt 88 (before) | |
[000579] ------------ /--* CNS_INT int 1 | |
[000581] -A-XG------- * ASG bool | |
[000580] ---XG--N---- \--* FIELD bool _haveResult | |
[000578] ------------ \--* LCL_VAR byref V29 tmp22 | |
fgMorphTree BB44, stmt 88 (after) | |
[000579] -----+------ /--* CNS_INT int 1 | |
[000581] -A-XG+------ * ASG bool | |
[000580] *--XG+-N---- \--* IND bool | |
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
[000980] -----+------ \--* ADD byref | |
[000578] -----+------ \--* LCL_VAR byref V29 tmp22 | |
Morphing BB45 of '<ValueTask1>d__1:MoveNext():this' | |
Morphing BB09 of '<ValueTask1>d__1:MoveNext():this' | |
fgMorphTree BB09, stmt 89 (before) | |
[000064] ------------ * RETURN void | |
Method has EH, marking method as fully interruptible | |
Renumbering the basic blocks for fgComputePred | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB05 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB18 [0017] 1 0 1 [022..023)-> BB20 ( cond ) T0 i | |
BB19 [0018] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB20 [0019] 1 0 0.50 [022..023)-> BB22 ( cond ) T0 i | |
BB21 [0020] 1 0 1 [022..023)-> BB23 (always) T0 i | |
BB22 [0021] 1 0 1 [022..023) T0 i gcsafe | |
BB23 [0022] 1 0 1 [???..???)-> BB06 ( cond ) T0 internal | |
BB04 [0003] 1 0 1 [02B..04B)-> BB09 (always) T0 i gcsafe | |
BB05 [0004] 1 0 1 [04B..067) T0 i | |
BB06 [0005] 2 0 1 [067..071) T0 i | |
BB29 [0028] 1 0 1 [067..068)-> BB31 ( cond ) T0 i | |
BB30 [0029] 1 0 1 [067..068)-> BB34 (always) T0 i | |
BB31 [0030] 1 0 0.50 [067..068)-> BB33 ( cond ) T0 i | |
BB32 [0031] 1 0 1 [067..068) T0 i | |
BB35 [0034] 1 0 1 [067..068)-> BB37 ( cond ) T0 i | |
BB36 [0035] 1 0 0.50 [067..068) T0 i gcsafe | |
BB37 [0036] 2 0 1 [067..068) T0 i | |
BB38 [0037] 1 0 1 [???..???)-> BB34 (always) T0 internal | |
BB33 [0032] 1 0 1 [067..068) T0 i gcsafe | |
BB34 [0033] 1 0 1 [???..???)-> BB08 (always) T0 } internal | |
BB07 [0006] 1 0 1 [071..08A)-> BB09 ( cret ) H0 catch { } keep i label target gcsafe | |
BB08 [0007] 1 1 [08A..09E) i | |
BB42 [0041] 1 1 [092..093)-> BB44 ( cond ) i | |
BB43 [0042] 1 1 [092..093) i | |
BB46 [0045] 1 1 [092..093)-> BB48 ( cond ) i | |
BB47 [0046] 1 1 [092..093) i | |
BB84 [0049] 1 1 [092..093) i newobj | |
BB85 [0050] 1 0.50 [092..093)-> BB86 (always) i | |
BB86 [0055] 1 0.50 [092..093) i | |
BB87 [0056] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB88 [0057] 1 0.50 [092..093)-> BB90 ( cond ) i | |
BB89 [0058] 1 1 [092..093)-> BB91 (always) i | |
BB90 [0082] 5 1 [092..093) i newobj | |
BB97 [0086] 1 1 [092..093)-> BB98 (always) i | |
BB98 [0088] 1 1 [092..093) i | |
BB99 [0089] 1 1 [???..???) internal newobj | |
BB91 [0083] 1 1 [???..???)-> BB49 (always) internal | |
BB48 [0047] 1 1 [092..093) i gcsafe | |
BB49 [0048] 1 1 [???..???)-> BB45 (always) internal | |
BB44 [0043] 1 1 [092..093) i | |
BB45 [0044] 1 1 [???..???) internal | |
BB09 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB34 [007..071), Handler at BB07..BB07 [071..08A) | |
Renumber BB18 to BB04 | |
Renumber BB19 to BB05 | |
Renumber BB20 to BB06 | |
Renumber BB21 to BB07 | |
Renumber BB22 to BB08 | |
Renumber BB23 to BB09 | |
Renumber BB04 to BB10 | |
Renumber BB05 to BB11 | |
Renumber BB06 to BB12 | |
Renumber BB29 to BB13 | |
Renumber BB30 to BB14 | |
Renumber BB31 to BB15 | |
Renumber BB32 to BB16 | |
Renumber BB35 to BB17 | |
Renumber BB36 to BB18 | |
Renumber BB37 to BB19 | |
Renumber BB38 to BB20 | |
Renumber BB33 to BB21 | |
Renumber BB34 to BB22 | |
Renumber BB07 to BB23 | |
Renumber BB08 to BB24 | |
Renumber BB42 to BB25 | |
Renumber BB43 to BB26 | |
Renumber BB46 to BB27 | |
Renumber BB47 to BB28 | |
Renumber BB84 to BB29 | |
Renumber BB85 to BB30 | |
Renumber BB86 to BB31 | |
Renumber BB87 to BB32 | |
Renumber BB88 to BB33 | |
Renumber BB89 to BB34 | |
Renumber BB90 to BB35 | |
Renumber BB97 to BB36 | |
Renumber BB98 to BB37 | |
Renumber BB99 to BB38 | |
Renumber BB91 to BB39 | |
Renumber BB48 to BB40 | |
Renumber BB49 to BB41 | |
Renumber BB44 to BB42 | |
Renumber BB45 to BB43 | |
Renumber BB09 to BB44 | |
*************** After renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 0.50 [022..023)-> BB08 ( cond ) T0 i | |
BB07 [0020] 1 0 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 1 [022..023) T0 i gcsafe | |
BB09 [0022] 1 0 1 [???..???)-> BB12 ( cond ) T0 internal | |
BB10 [0003] 1 0 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 1 [04B..067) T0 i | |
BB12 [0005] 2 0 1 [067..071) T0 i | |
BB13 [0028] 1 0 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 0.50 [067..068)-> BB21 ( cond ) T0 i | |
BB16 [0031] 1 0 1 [067..068) T0 i | |
BB17 [0034] 1 0 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 1 [067..068) T0 i | |
BB20 [0037] 1 0 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 1 [067..068) T0 i gcsafe | |
BB22 [0033] 1 0 1 [???..???)-> BB24 (always) T0 } internal | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 1 [08A..09E) i | |
BB25 [0041] 1 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 1 [092..093) i | |
BB27 [0045] 1 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 1 [092..093) i | |
BB29 [0049] 1 1 [092..093) i newobj | |
BB30 [0050] 1 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 0.50 [092..093) i | |
BB32 [0056] 1 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 5 1 [092..093) i newobj | |
BB36 [0086] 1 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 1 [092..093) i | |
BB38 [0089] 1 1 [???..???) internal newobj | |
BB39 [0083] 1 1 [???..???)-> BB41 (always) internal | |
BB40 [0047] 1 1 [092..093) i gcsafe | |
BB41 [0048] 1 1 [???..???)-> BB43 (always) internal | |
BB42 [0043] 1 1 [092..093) i | |
BB43 [0044] 1 1 [???..???) internal | |
BB44 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
New BlockSet epoch 2, # of blocks (including unused BB00): 45, bitset array size: 1 (short) | |
*************** In fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i | |
BB02 [0001] 1 0 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 0.50 [022..023)-> BB08 ( cond ) T0 i | |
BB07 [0020] 1 0 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 1 [022..023) T0 i gcsafe | |
BB09 [0022] 1 0 1 [???..???)-> BB12 ( cond ) T0 internal | |
BB10 [0003] 1 0 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 1 [04B..067) T0 i | |
BB12 [0005] 2 0 1 [067..071) T0 i | |
BB13 [0028] 1 0 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 0.50 [067..068)-> BB21 ( cond ) T0 i | |
BB16 [0031] 1 0 1 [067..068) T0 i | |
BB17 [0034] 1 0 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 1 [067..068) T0 i | |
BB20 [0037] 1 0 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 1 [067..068) T0 i gcsafe | |
BB22 [0033] 1 0 1 [???..???)-> BB24 (always) T0 } internal | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 1 [08A..09E) i | |
BB25 [0041] 1 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 1 [092..093) i | |
BB27 [0045] 1 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 1 [092..093) i | |
BB29 [0049] 1 1 [092..093) i newobj | |
BB30 [0050] 1 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 0.50 [092..093) i | |
BB32 [0056] 1 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 5 1 [092..093) i newobj | |
BB36 [0086] 1 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 1 [092..093) i | |
BB38 [0089] 1 1 [???..???) internal newobj | |
BB39 [0083] 1 1 [???..???)-> BB41 (always) internal | |
BB40 [0047] 1 1 [092..093) i gcsafe | |
BB41 [0048] 1 1 [???..???)-> BB43 (always) internal | |
BB42 [0043] 1 1 [092..093) i | |
BB43 [0044] 1 1 [???..???) internal | |
BB44 [0008] 3 1 [09E..09F) (return) i | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** After fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 1 [092..093) i | |
BB29 [0049] 1 BB28 1 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgComputeEdgeWeights() | |
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 1 [092..093) i | |
BB29 [0049] 1 BB28 1 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
fgComputeEdgeWeights() adjusted the weight of some blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 0.50 [092..093) i | |
BB29 [0049] 1 BB28 0.50 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
fgComputeEdgeWeights() found inconsistent profile data, not using the edge weights | |
*************** In fgCreateFunclets() | |
Relocating handler range BB23..BB23 (EH#0) to end of BBlist | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 catch { } keep i label target gcsafe | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 0.50 [092..093) i | |
BB29 [0049] 1 BB28 0.50 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
Relocated block [BB23..BB23] inserted after BB44 at the end of method | |
Create funclets: moved region | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
After fgCreateFunclets() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 0.50 [092..093) i | |
BB29 [0049] 1 BB28 0.50 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLayout() | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
*************** In fgDebugCheckBBlist | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B) T0 i | |
BB04 [0017] 1 0 BB03 1 [022..023)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB04 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB04 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB44 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071) T0 i label target | |
BB13 [0028] 1 0 BB12 1 [067..068)-> BB15 ( cond ) T0 i | |
BB14 [0029] 1 0 BB13 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB13 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068) T0 i | |
BB17 [0034] 1 0 BB16 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB17 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB17,BB18 1 [067..068) T0 i label target | |
BB20 [0037] 1 0 BB19 1 [???..???)-> BB22 (always) T0 internal | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB20,BB21 1 [???..???)-> BB24 (always) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E) i label target | |
BB25 [0041] 1 BB24 1 [092..093)-> BB42 ( cond ) i | |
BB26 [0042] 1 BB25 1 [092..093) i | |
BB27 [0045] 1 BB26 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB27 0.50 [092..093) i | |
BB29 [0049] 1 BB28 0.50 [092..093) i newobj | |
BB30 [0050] 1 BB29 0.50 [092..093)-> BB31 (always) i | |
BB31 [0055] 1 BB30 0.50 [092..093) i label target | |
BB32 [0056] 1 BB31 0.50 [092..093)-> BB35 ( cond ) i | |
BB33 [0057] 1 BB32 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB32,BB33 1 [092..093) i label target newobj | |
BB36 [0086] 1 BB35 1 [092..093)-> BB37 (always) i | |
BB37 [0088] 1 BB36 1 [092..093) i label target | |
BB38 [0089] 1 BB37 1 [???..???) internal newobj | |
BB39 [0083] 2 BB34,BB38 1 [???..???)-> BB41 (always) internal label target | |
BB40 [0047] 1 BB27 1 [092..093) i label target gcsafe | |
BB41 [0048] 2 BB39,BB40 1 [???..???)-> BB43 (always) internal label target | |
BB42 [0043] 1 BB25 1 [092..093) i label target | |
BB43 [0044] 2 BB41,BB42 1 [???..???) internal label target | |
BB44 [0008] 3 BB10,BB23,BB43 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB44 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
Compacting blocks BB03 and BB04: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB12 and BB13: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB16 and BB17: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB19 and BB20: | |
*************** In fgDebugCheckBBlist | |
Removing unconditional jump to next block (BB22 -> BB24) (converted BB22 to fall-through) | |
Compacting blocks BB24 and BB25: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB26 and BB27: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB28 and BB29: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB28 and BB30: | |
*************** In fgDebugCheckBBlist | |
Removing unconditional jump to next block (BB28 -> BB31) (converted BB28 to fall-through) | |
Compacting blocks BB28 and BB31: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB28 and BB32: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB35 and BB36: | |
*************** In fgDebugCheckBBlist | |
Removing unconditional jump to next block (BB35 -> BB37) (converted BB35 to fall-through) | |
Compacting blocks BB35 and BB37: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB35 and BB38: | |
*************** In fgDebugCheckBBlist | |
Optimizing a jump to an unconditional jump (BB39 -> BB41 -> BB43) | |
Compacting blocks BB40 and BB41: | |
*************** In fgDebugCheckBBlist | |
Compacting blocks BB43 and BB44: | |
Second block has multiple incoming edges | |
*************** In fgDebugCheckBBlist | |
After updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target | |
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target | |
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj | |
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj | |
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target | |
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe | |
BB42 [0043] 1 BB24 1 [092..093) i label target | |
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
*************** In fgDebugCheckBBlist | |
*************** In fgExpandRarelyRunBlocks() | |
*************** In fgReorderBlocks() | |
Initial BasicBlocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target | |
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target | |
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj | |
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj | |
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target | |
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe | |
BB42 [0043] 1 BB24 1 [092..093) i label target | |
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target | |
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target | |
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj | |
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj | |
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target | |
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe | |
BB42 [0043] 1 BB24 1 [092..093) i label target | |
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgComputeReachability | |
*************** In fgDebugCheckBBlist | |
Renumbering the basic blocks for fgComputeReachability pass #1 | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB11 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB06 ( cond ) T0 i | |
BB05 [0018] 1 0 BB03 1 [022..023)-> BB09 (always) T0 i | |
BB06 [0019] 1 0 BB03 0.50 [022..023)-> BB08 ( cond ) T0 i label target | |
BB07 [0020] 1 0 BB06 1 [022..023)-> BB09 (always) T0 i | |
BB08 [0021] 1 0 BB06 1 [022..023) T0 i label target gcsafe | |
BB09 [0022] 3 0 BB05,BB07,BB08 1 [???..???)-> BB12 ( cond ) T0 internal label target | |
BB10 [0003] 1 0 BB09 1 [02B..04B)-> BB43 (always) T0 i gcsafe | |
BB11 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB12 [0005] 2 0 BB09,BB11 1 [067..071)-> BB15 ( cond ) T0 i label target | |
BB14 [0029] 1 0 BB12 1 [067..068)-> BB22 (always) T0 i | |
BB15 [0030] 1 0 BB12 0.50 [067..068)-> BB21 ( cond ) T0 i label target | |
BB16 [0031] 1 0 BB15 1 [067..068)-> BB19 ( cond ) T0 i | |
BB18 [0035] 1 0 BB16 0.50 [067..068) T0 i gcsafe | |
BB19 [0036] 2 0 BB16,BB18 1 [067..068)-> BB22 (always) T0 i label target | |
BB21 [0032] 1 0 BB15 1 [067..068) T0 i label target gcsafe | |
BB22 [0033] 3 0 BB14,BB19,BB21 1 [???..???) T0 } internal label target | |
BB24 [0007] 1 BB22 1 [08A..09E)-> BB42 ( cond ) i label target | |
BB26 [0042] 1 BB24 1 [092..093)-> BB40 ( cond ) i | |
BB28 [0046] 1 BB26 0.50 [092..093)-> BB35 ( cond ) i newobj | |
BB33 [0057] 1 BB28 0.50 [092..093)-> BB35 ( cond ) i | |
BB34 [0058] 1 BB33 1 [092..093)-> BB39 (always) i | |
BB35 [0082] 2 BB28,BB33 1 [092..093) i label target newobj | |
BB39 [0083] 2 BB34,BB35 1 [???..???)-> BB43 (always) internal label target | |
BB40 [0047] 1 BB26 1 [092..093)-> BB43 (always) i label target gcsafe | |
BB42 [0043] 1 BB24 1 [092..093) i label target | |
BB43 [0044] 5 BB10,BB23,BB39,BB40,BB42 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB23 [0006] 1 0 1 [071..08A)-> BB43 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB22 [007..071), Handler at BB23..BB23 [071..08A) | |
Renumber BB05 to BB04 | |
Renumber BB06 to BB05 | |
Renumber BB07 to BB06 | |
Renumber BB08 to BB07 | |
Renumber BB09 to BB08 | |
Renumber BB10 to BB09 | |
Renumber BB11 to BB10 | |
Renumber BB12 to BB11 | |
Renumber BB14 to BB12 | |
Renumber BB15 to BB13 | |
Renumber BB16 to BB14 | |
Renumber BB18 to BB15 | |
Renumber BB19 to BB16 | |
Renumber BB21 to BB17 | |
Renumber BB22 to BB18 | |
Renumber BB24 to BB19 | |
Renumber BB26 to BB20 | |
Renumber BB28 to BB21 | |
Renumber BB33 to BB22 | |
Renumber BB34 to BB23 | |
Renumber BB35 to BB24 | |
Renumber BB39 to BB25 | |
Renumber BB40 to BB26 | |
Renumber BB42 to BB27 | |
Renumber BB43 to BB28 | |
Renumber BB23 to BB29 | |
*************** After renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB18 [007..071), Handler at BB29..BB29 [071..08A) | |
New BlockSet epoch 3, # of blocks (including unused BB00): 30, bitset array size: 1 (short) | |
Enter blocks: BB01 BB29 | |
After computing reachability sets: | |
------------------------------------------------ | |
BBnum Reachable by | |
------------------------------------------------ | |
BB01 : BB01 | |
BB02 : BB01 BB02 | |
BB03 : BB01 BB02 BB03 | |
BB04 : BB01 BB02 BB03 BB04 | |
BB05 : BB01 BB02 BB03 BB05 | |
BB06 : BB01 BB02 BB03 BB05 BB06 | |
BB07 : BB01 BB02 BB03 BB05 BB07 | |
BB08 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 | |
BB09 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 | |
BB10 : BB01 BB02 BB10 | |
BB11 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 | |
BB12 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 | |
BB13 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 | |
BB14 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14 | |
BB15 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14 BB15 | |
BB16 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB14 BB15 BB16 | |
BB17 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB13 BB17 | |
BB18 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 | |
BB19 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 | |
BB20 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 | |
BB21 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 | |
BB22 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 | |
BB23 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23 | |
BB24 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB24 | |
BB25 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23 BB24 BB25 | |
BB26 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB26 | |
BB27 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB27 | |
BB28 : BB01 BB02 BB03 BB04 BB05 BB06 BB07 BB08 BB09 BB10 BB11 BB12 BB13 BB14 BB15 BB16 BB17 BB18 BB19 BB20 BB21 BB22 BB23 BB24 BB25 BB26 BB27 BB28 BB29 | |
BB29 : BB29 | |
After computing reachability: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgComputeDoms | |
*************** In fgDebugCheckBBlist | |
Dominator computation start blocks (those blocks with no incoming edges): | |
BB01 BB29 | |
------------------------------------------------ | |
BBnum Dominated by | |
------------------------------------------------ | |
BB29: BB29 | |
BB01: BB01 | |
BB02: BB02 BB01 | |
BB03: BB03 BB02 BB01 | |
BB04: BB04 BB03 BB02 BB01 | |
BB05: BB05 BB03 BB02 BB01 | |
BB06: BB06 BB05 BB03 BB02 BB01 | |
BB07: BB07 BB05 BB03 BB02 BB01 | |
BB08: BB08 BB03 BB02 BB01 | |
BB09: BB09 BB08 BB03 BB02 BB01 | |
BB10: BB10 BB02 BB01 | |
BB11: BB11 BB02 BB01 | |
BB12: BB12 BB11 BB02 BB01 | |
BB13: BB13 BB11 BB02 BB01 | |
BB14: BB14 BB13 BB11 BB02 BB01 | |
BB15: BB15 BB14 BB13 BB11 BB02 BB01 | |
BB16: BB16 BB14 BB13 BB11 BB02 BB01 | |
BB17: BB17 BB13 BB11 BB02 BB01 | |
BB18: BB18 BB11 BB02 BB01 | |
BB19: BB19 BB18 BB11 BB02 BB01 | |
BB20: BB20 BB19 BB18 BB11 BB02 BB01 | |
BB21: BB21 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB22: BB22 BB21 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB23: BB23 BB22 BB21 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB24: BB24 BB21 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB25: BB25 BB21 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB26: BB26 BB20 BB19 BB18 BB11 BB02 BB01 | |
BB27: BB27 BB19 BB18 BB11 BB02 BB01 | |
BB28: BB28 | |
Inside fgBuildDomTree | |
After computing the Dominance Tree: | |
BB01 : BB02 | |
BB02 : BB11 BB10 BB03 | |
BB03 : BB08 BB05 BB04 | |
BB05 : BB07 BB06 | |
BB08 : BB09 | |
BB11 : BB18 BB13 BB12 | |
BB13 : BB17 BB14 | |
BB14 : BB16 BB15 | |
BB18 : BB19 | |
BB19 : BB27 BB20 | |
BB20 : BB26 BB21 | |
BB21 : BB25 BB24 BB22 | |
BB22 : BB23 | |
*************** In Allocate Objects | |
Trees before Allocate Objects | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
[000005] ------------ * STMT void (IL 0x000...0x006) | |
[000002] *--XG+------ | /--* IND int | |
[000001] -----+------ | | \--* LCL_VAR byref V00 this | |
[000004] -A-XG+------ \--* ASG int | |
[000003] D----+-N---- \--* LCL_VAR int V01 loc0 | |
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10} | |
***** BB02, stmt 2 | |
[000013] ------------ * STMT void (IL 0x007...0x008) | |
[000012] -----+------ \--* JTRUE void | |
[000010] -----+------ | /--* CNS_INT int 0 | |
[000011] J----+-N---- \--* EQ int | |
[000009] -----+------ \--* LCL_VAR int V01 loc0 | |
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05} | |
***** BB03, stmt 3 | |
[000155] ------------ * STMT void (IL 0x00A... ???) | |
[000787] ------------ | /--* CNS_INT bool 0 | |
[000788] -A---------- | /--* ASG bool | |
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39 | |
[000789] -A---+------ \--* COMMA void | |
[000783] ------------ | /--* CNS_INT short 0 | |
[000784] -A---------- | /--* ASG short | |
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
[000785] -A---------- \--* COMMA void | |
[000779] ------------ | /--* CNS_INT int 0 | |
[000780] -A---------- | /--* ASG int | |
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
[000781] -A---------- \--* COMMA void | |
[000776] ------------ | /--* CNS_INT ref null | |
[000777] -A---------- \--* ASG ref | |
[000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 4 | |
[000172] ------------ * STMT void (IL 0x00A... ???) | |
[000169] -----+------ | /--* CNS_INT int 1 | |
[000171] -A---+------ \--* ASG int | |
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37 | |
***** BB03, stmt 5 | |
[000178] ------------ * STMT void (IL 0x00A... ???) | |
[000175] -----+------ | /--* CNS_INT ref null | |
[000177] -A---+------ \--* ASG ref | |
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 6 | |
[000184] ------------ * STMT void (IL 0x00A... ???) | |
[000181] -----+------ | /--* CNS_INT int 1 | |
[000183] -A---+------ \--* ASG bool | |
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39 | |
***** BB03, stmt 7 | |
[000190] ------------ * STMT void (IL 0x00A... ???) | |
[000187] -----+------ | /--* CNS_INT int 0 | |
[000189] -A---+------ \--* ASG short | |
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38 | |
***** BB03, stmt 8 | |
[000073] ------------ * STMT void (IL ???... ???) | |
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39 | |
[000803] -A---------- | /--* ASG bool | |
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35 | |
[000804] -A---+------ \--* COMMA void | |
[000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
[000799] -A---------- | /--* ASG short | |
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
[000800] -A---------- \--* COMMA void | |
[000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
[000795] -A---------- | /--* ASG int | |
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
[000796] -A---------- \--* COMMA void | |
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
[000792] -A---------- \--* ASG ref | |
[000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
***** BB03, stmt 9 | |
[000207] ------------ * STMT void (IL 0x010... ???) | |
[000817] ------------ | /--* CNS_INT bool 0 | |
[000818] -A---------- | /--* ASG bool | |
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43 | |
[000819] -A---+------ \--* COMMA void | |
[000813] ------------ | /--* CNS_INT short 0 | |
[000814] -A---------- | /--* ASG short | |
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
[000815] -A---------- \--* COMMA void | |
[000809] ------------ | /--* CNS_INT int 0 | |
[000810] -A---------- | /--* ASG int | |
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
[000811] -A---------- \--* COMMA void | |
[000806] ------------ | /--* CNS_INT ref null | |
[000807] -A---------- \--* ASG ref | |
[000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 10 | |
[000261] ------------ * STMT void (IL 0x010... ???) | |
[000196] -----+------ | /--* CNS_INT ref null | |
[000260] -A---+------ \--* ASG ref | |
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6 | |
***** BB03, stmt 11 | |
[000264] ------------ * STMT void (IL 0x010... ???) | |
[000199] -----+------ | /--* CNS_INT int 1 | |
[000263] -A---+------ \--* ASG int | |
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7 | |
***** BB03, stmt 12 | |
[000267] ------------ * STMT void (IL 0x010... ???) | |
[000202] -----+------ | /--* CNS_INT int 0 | |
[000266] -A---+------ \--* ASG short | |
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8 | |
***** BB03, stmt 13 | |
[000240] ------------ * STMT void (IL 0x010... ???) | |
[000237] -----+------ | /--* CNS_INT ref null | |
[000239] -A---+------ \--* ASG ref | |
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 14 | |
[000246] ------------ * STMT void (IL 0x010... ???) | |
[000243] -----+------ | /--* CNS_INT int 1 | |
[000245] -A---+------ \--* ASG int | |
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41 | |
***** BB03, stmt 15 | |
[000252] ------------ * STMT void (IL 0x010... ???) | |
[000249] -----+------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---+------ \--* ASG short | |
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42 | |
***** BB03, stmt 16 | |
[000258] ------------ * STMT void (IL 0x010... ???) | |
[000255] -----+------ | /--* CNS_INT int 0 | |
[000257] -A---+------ \--* ASG bool | |
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43 | |
***** BB03, stmt 17 | |
[000220] ------------ * STMT void (IL 0x010... ???) | |
[000218] -----+------ | /--* CNS_INT int 0 | |
[000219] IA---+--R--- \--* ASG struct (init) | |
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5 | |
***** BB03, stmt 18 | |
[000281] ------------ * STMT void (IL 0x010... ???) | |
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43 | |
[000851] -A---------- | /--* ASG bool | |
[000849] *------N---- | | \--* IND bool | |
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
[000848] ------------ | | \--* ADD byref | |
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000852] -A---+------ \--* COMMA void | |
[000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
[000844] -A---------- | /--* ASG short | |
[000842] *------N---- | | \--* IND short | |
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
[000841] ------------ | | \--* ADD byref | |
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000845] -A---------- \--* COMMA void | |
[000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
[000837] -A---------- | /--* ASG int | |
[000835] *------N---- | | \--* IND int | |
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
[000834] ------------ | | \--* ADD byref | |
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000838] -A---------- \--* COMMA void | |
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
[000830] -A---------- | /--* ASG ref | |
[000828] *------N---- | | \--* IND ref | |
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
[000827] ------------ | | \--* ADD byref | |
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000831] -A---------- \--* COMMA void | |
[000821] L----------- | /--* ADDR byref | |
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
[000824] -A---------- \--* ASG byref | |
[000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
***** BB03, stmt 19 | |
[000277] ------------ * STMT void (IL 0x010... ???) | |
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A--G+--R--- \--* ASG struct (copy) | |
[000275] x----+------ \--* BLK(16) struct | |
[000274] -----+------ \--* ADDR byref | |
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
***** BB03, stmt 20 | |
[000084] ------------ * STMT void (IL ???... ???) | |
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5 | |
[000231] -A---+--R--- \--* ASG struct (copy) | |
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4 | |
***** BB03, stmt 21 | |
[000290] ------------ * STMT void (IL 0x01A... ???) | |
[000288] -----+------ | /--* CNS_INT int 0 | |
[000289] IA---+--R--- \--* ASG struct (init) | |
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10 | |
***** BB03, stmt 22 | |
[000315] ------------ * STMT void (IL 0x01A... ???) | |
[000295] x---G+------ | /--* IND struct | |
[000294] -----+------ | | \--* ADDR byref | |
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
[000314] -A--G+--R--- \--* ASG struct (copy) | |
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11 | |
***** BB03, stmt 23 | |
[000311] ------------ * STMT void (IL 0x01A... ???) | |
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A---+--R--- \--* ASG struct (copy) | |
[000309] x----+------ \--* BLK(16) struct | |
[000308] -----+------ \--* ADDR byref | |
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
***** BB03, stmt 24 | |
[000093] ------------ * STMT void (IL ???... ???) | |
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10 | |
[000301] -A--G+--R--- \--* ASG struct (copy) | |
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB03, stmt 25 | |
[000335] ------------ * STMT void (IL 0x022... ???) | |
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000334] -A--G+------ \--* ASG ref | |
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB03, stmt 26 | |
[000340] ------------ * STMT void (IL 0x022... ???) | |
[000339] -----+------ \--* JTRUE void | |
[000337] -----+------ | /--* CNS_INT ref null | |
[000338] J----+-N---- \--* NE int | |
[000336] -----+------ \--* LCL_VAR ref V20 tmp13 | |
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08} | |
***** BB04, stmt 27 | |
[000395] ------------ * STMT void (IL 0x022... ???) | |
[000391] -----+------ | /--* CNS_INT int 1 | |
[000394] -A---+------ \--* ASG bool | |
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07} | |
***** BB05, stmt 28 | |
[000349] ------------ * STMT void (IL 0x022... ???) | |
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 | |
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000348] -AC-G+------ \--* ASG ref | |
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14 | |
***** BB05, stmt 29 | |
[000354] ------------ * STMT void (IL 0x022... ???) | |
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---+------ \--* ASG ref | |
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB05, stmt 30 | |
[000358] ------------ * STMT void (IL 0x022... ???) | |
[000357] -----+------ \--* JTRUE void | |
[000355] -----+------ | /--* CNS_INT ref null | |
[000356] J----+-N---- \--* EQ int | |
[000350] -----+------ \--* LCL_VAR ref V21 tmp14 | |
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08} | |
***** BB06, stmt 31 | |
[000410] ------------ * STMT void (IL 0x022... ???) | |
[000407] V--XG+-N---- | /--* IND int | |
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000858] -----+------ | | \--* ADD byref | |
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XG+------ \--* ASG int | |
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16 | |
***** BB06, stmt 32 | |
[000388] ------------ * STMT void (IL 0x022... ???) | |
[000421] -----+------ | /--* CNS_INT int 0 | |
[000422] N----+------ | /--* NE int | |
[000419] -----+------ | | | /--* CNS_INT int 0x1600000 | |
[000420] -----+------ | | \--* AND int | |
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16 | |
[000387] -A---+------ \--* ASG bool | |
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB07 [022..023), preds={BB05} succs={BB08} | |
***** BB07, stmt 33 | |
[000378] ------------ * STMT void (IL 0x022... ???) | |
[000374] -----+------ | /--* CNS_INT int 0 | |
[000375] N-CXG+------ | /--* NE int | |
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13 | |
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
[000377] -ACXG+------ \--* ASG bool | |
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11} | |
***** BB08, stmt 34 | |
[000400] ------------ * STMT void (IL 0x022... ???) | |
[000397] -----+------ | /--* CNS_INT ref null | |
[000399] -A---+------ \--* ASG ref | |
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB08, stmt 35 | |
[000404] ------------ * STMT void (IL 0x022... ???) | |
[000401] -----+------ | /--* CNS_INT ref null | |
[000403] -A---+------ \--* ASG ref | |
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB08, stmt 36 | |
[000102] ------------ * STMT void (IL ???... ???) | |
[000101] -----+------ \--* JTRUE void | |
[000099] -----+------ | /--* CNS_INT int 0 | |
[000100] J----+-N---- \--* NE int | |
[000396] -----+------ \--* LCL_VAR int V19 tmp12 | |
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28} | |
***** BB09, stmt 37 | |
[000109] ------------ * STMT void (IL 0x02B...0x02E) | |
[000106] -----+------ | /--* CNS_INT int 0 | |
[000108] -A---+------ \--* ASG int | |
[000107] D----+-N---- \--* LCL_VAR int V01 loc0 | |
***** BB09, stmt 38 | |
[000112] ------------ * STMT void (IL ???...0x02F) | |
[000105] -----+------ | /--* CNS_INT int 0 | |
[000111] -A-XG+------ \--* ASG int | |
[000110] *--XG+-N---- \--* IND int | |
[000104] -----+------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 39 | |
[000119] ------------ * STMT void (IL 0x034...0x036) | |
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG+--R--- \--* ASG struct (copy) | |
[000117] ---XG+------ \--* OBJ(16) struct | |
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000870] -----+------ \--* ADD byref | |
[000113] -----+------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 40 | |
[000443] ------------ * STMT void (IL 0x03B... ???) | |
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000875] -----+------ | /--* ADD byref | |
[000873] -----+------ | | \--* LCL_VAR byref V00 this | |
[000876] ---XG+-N---- | /--* COMMA byref | |
[000872] ---X-+-N---- | | \--* NULLCHECK byte | |
[000871] -----+------ | | \--* LCL_VAR byref V00 this | |
[000442] -A-XG+------ \--* ASG byref | |
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 41 | |
[000431] ------------ * STMT void (IL 0x03B... ???) | |
[000428] -----+------ | /--* CNS_INT int 1 | |
[000430] -A-XG+------ \--* ASG bool | |
[000429] *--XG+-N---- \--* IND bool | |
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000879] -----+------ \--* ADD byref | |
[000427] -----+------ \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 42 | |
[000440] ------------ * STMT void (IL 0x03B... ???) | |
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
( 5, 4) [000884] ------------ | /--* ADD byref | |
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte | |
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 | |
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this | |
------------ BB10 [04B..067), preds={BB02} succs={BB11} | |
***** BB10, stmt 43 | |
[000020] ------------ * STMT void (IL 0x04B...0x051) | |
[000016] *--XG+------ | /--* IND struct | |
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000894] -----+------ | | \--* ADD byref | |
[000015] -----+------ | | \--* LCL_VAR byref V00 this | |
[000019] -A-XG+--R--- \--* ASG struct (copy) | |
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB10, stmt 44 | |
[000027] ------------ * STMT void (IL 0x052...0x059) | |
[000024] -----+------ | /--* CNS_INT int 0 | |
[000026] IA-XG+--R--- \--* ASG struct (init) | |
[000025] ---XG+-N---- \--* BLK(16) struct | |
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000896] -----+------ \--* ADD byref | |
[000021] -----+------ \--* LCL_VAR byref V00 this | |
***** BB10, stmt 45 | |
[000032] ------------ * STMT void (IL 0x05E...0x061) | |
[000029] -----+------ | /--* CNS_INT int -1 | |
[000031] -A---+------ \--* ASG int | |
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1 | |
***** BB10, stmt 46 | |
[000037] ------------ * STMT void (IL ???... ???) | |
[000034] -----+------ | /--* CNS_INT int -1 | |
[000036] -A---+------ \--* ASG int | |
[000035] D----+-N---- \--* LCL_VAR int V01 loc0 | |
***** BB10, stmt 47 | |
[000040] ------------ * STMT void (IL ???...0x062) | |
[000033] -----+------ | /--* CNS_INT int -1 | |
[000039] -A-XG+------ \--* ASG int | |
[000038] *--XG+-N---- \--* IND int | |
[000028] -----+------ \--* LCL_VAR byref V00 this | |
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13} | |
***** BB11, stmt 48 | |
[000462] ------------ * STMT void (IL 0x067... ???) | |
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000461] -A--G+------ \--* ASG ref | |
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB11, stmt 49 | |
[000467] ------------ * STMT void (IL 0x067... ???) | |
[000466] -----+------ \--* JTRUE void | |
[000464] -----+------ | /--* CNS_INT ref null | |
[000465] J----+-N---- \--* NE int | |
[000463] -----+------ \--* LCL_VAR ref V26 tmp19 | |
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18} | |
***** BB12, stmt 50 | |
[000526] ------------ * STMT void (IL 0x067... ???) | |
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
[000525] -A--G+------ \--* ASG int | |
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17} | |
***** BB13, stmt 51 | |
[000476] ------------ * STMT void (IL 0x067... ???) | |
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 | |
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000475] -AC-G+------ \--* ASG ref | |
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20 | |
***** BB13, stmt 52 | |
[000481] ------------ * STMT void (IL 0x067... ???) | |
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---+------ \--* ASG ref | |
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB13, stmt 53 | |
[000485] ------------ * STMT void (IL 0x067... ???) | |
[000484] -----+------ \--* JTRUE void | |
[000482] -----+------ | /--* CNS_INT ref null | |
[000483] J----+-N---- \--* EQ int | |
[000477] -----+------ \--* LCL_VAR ref V27 tmp20 | |
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16} | |
***** BB14, stmt 54 | |
[000544] ------------ * STMT void (IL 0x067... ???) | |
[000543] ---XG+------ \--* JTRUE void | |
[000556] -----+------ | /--* CNS_INT int 0x1000000 | |
[000557] J--XG+-N---- \--* EQ int | |
[000554] -----+------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XG+------ \--* AND int | |
[000553] V--XG+-N---- \--* IND int | |
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000904] -----+------ \--* ADD byref | |
[000506] -----+------ \--* LCL_VAR ref V28 tmp21 | |
------------ BB15 [067..068), preds={BB14} succs={BB16} | |
***** BB15, stmt 55 | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 | |
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18} | |
***** BB16, stmt 56 | |
[000516] ------------ * STMT void (IL 0x067... ???) | |
[000562] ---XG+------ | /--* IND int | |
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000908] -----+------ | | \--* ADD byref | |
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21 | |
[000515] -A-XG+------ \--* ASG int | |
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB17 [067..068), preds={BB13} succs={BB18} | |
***** BB17, stmt 57 | |
[000503] ------------ * STMT void (IL 0x067... ???) | |
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19 | |
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
[000502] -ACXG+------ \--* ASG int | |
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19} | |
***** BB18, stmt 58 | |
[000531] ------------ * STMT void (IL 0x067... ???) | |
[000528] -----+------ | /--* CNS_INT ref null | |
[000530] -A---+------ \--* ASG ref | |
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB18, stmt 59 | |
[000535] ------------ * STMT void (IL 0x067... ???) | |
[000532] -----+------ | /--* CNS_INT ref null | |
[000534] -A---+------ \--* ASG ref | |
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB18, stmt 60 | |
[000049] ------------ * STMT void (IL ???... ???) | |
[000527] -----+------ | /--* LCL_VAR int V25 tmp18 | |
[000048] -A---+------ \--* ASG int | |
[000047] D----+-N---- \--* LCL_VAR int V02 loc1 | |
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27} | |
***** BB19, stmt 61 | |
[000055] ------------ * STMT void (IL 0x08A...0x08D) | |
[000052] -----+------ | /--* CNS_INT int -2 | |
[000054] -A-XG+------ \--* ASG int | |
[000053] *--XG+-N---- \--* IND int | |
[000051] -----+------ \--* LCL_VAR byref V00 this | |
***** BB19, stmt 62 | |
[000593] ------------ * STMT void (IL 0x092... ???) | |
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000934] -----+------ | /--* ADD byref | |
[000932] -----+------ | | \--* LCL_VAR byref V00 this | |
[000935] ---XG+-N---- | /--* COMMA byref | |
[000931] ---X-+-N---- | | \--* NULLCHECK byte | |
[000930] -----+------ | | \--* LCL_VAR byref V00 this | |
[000592] -A-XG+------ \--* ASG byref | |
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22 | |
***** BB19, stmt 63 | |
[000572] ------------ * STMT void (IL 0x092... ???) | |
[000571] ---XG+------ \--* JTRUE void | |
[000569] -----+------ | /--* CNS_INT int 0 | |
[000570] J--XG+-N---- \--* EQ int | |
[000568] *--XG+------ \--* IND bool | |
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000938] -----+------ \--* ADD byref | |
[000567] -----+------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26} | |
***** BB20, stmt 64 | |
[000619] ------------ * STMT void (IL 0x092... ???) | |
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000943] -----+------ | /--* ADD byref | |
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000944] ---XG+-N---- | /--* COMMA byref | |
[000940] ---X-+-N---- | | \--* NULLCHECK byte | |
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG+------ \--* ASG byref | |
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23 | |
***** BB20, stmt 65 | |
[000601] ------------ * STMT void (IL 0x092... ???) | |
[000600] ---XG+------ \--* JTRUE void | |
[000598] -----+------ | /--* CNS_INT ref null | |
[000599] J--XG+-N---- \--* NE int | |
[000597] *--XG+------ \--* IND ref | |
[000596] -----+------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24} | |
***** BB21, stmt 66 | |
[000627] ------------ * STMT void (IL 0x092... ???) | |
[000624] -----+------ | /--* CNS_INT int 0 | |
[000626] -A---+------ \--* ASG int | |
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25 | |
***** BB21, stmt 67 | |
[000670] ------------ * STMT void (IL 0x092... ???) | |
[000609] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---+------ \--* ASG int | |
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27 | |
***** BB21, stmt 68 | |
[000675] ------------ * STMT void (IL 0x092... ???) | |
[000674] -----+------ \--* JTRUE void | |
[000672] -----+------ | /--* CNS_INT int 9 | |
[000673] J----+-N---- \--* GE int | |
[000671] -----+------ \--* LCL_VAR int V02 loc1 | |
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24} | |
***** BB22, stmt 69 | |
[000697] ------------ * STMT void (IL 0x092... ???) | |
[000696] -----+------ \--* JTRUE void | |
[000694] -----+------ | /--* CNS_INT int -1 | |
[000695] J----+-N---- \--* LT int | |
[000693] -----+------ \--* LCL_VAR int V34 tmp27 | |
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25} | |
***** BB23, stmt 70 | |
[000713] ------------ * STMT void (IL 0x092... ???) | |
[000710] a---G+------ | /--* IND ref | |
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
[000960] -----+------ | | \--* ADD byref | |
[000956] -----+-N---- | | | /--* CNS_INT long 3 | |
[000957] -----+------ | | | /--* LSH long | |
[000955] -----+------ | | | | \--* CAST long <- int | |
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
[000950] -----+------ | | | | \--* ADD int | |
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27 | |
[000958] -----+------ | | \--* ADD byref | |
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000961] ---XG+------ | /--* COMMA ref | |
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void | |
[000708] -----+------ | | | /--* CNS_INT int 1 | |
[000709] -----+------ | | +--* ADD int | |
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27 | |
[000953] ---X-+------ | | \--* ARR_LENGTH int | |
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000962] -ACXG+------ | /--* COMMA ref | |
[000699] x---G+------ | | | /--* IND ref | |
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
[000706] --CXG+------ | | | /--* COMMA ref | |
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A | |
[000947] -ACXG+------ | | \--* ASG ref | |
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46 | |
[000712] -ACXG+------ \--* ASG ref | |
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB23, stmt 71 | |
[000723] ------------ * STMT void (IL 0x092... ???) | |
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29 | |
[000722] -A---+------ \--* ASG ref | |
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25} | |
***** BB24, stmt 72 | |
[000682] ------------ * STMT void (IL 0x092... ???) | |
[000679] -----+------ | /--* ALLOCOBJ ref | |
[000678] -----+------ | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -A---+------ \--* ASG ref | |
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 73 | |
[000739] ------------ * STMT void (IL 0x092... ???) | |
[000969] ------------ | /--* CNS_INT ref null | |
[000970] -A---+------ \--* ASG ref | |
[000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
***** BB24, stmt 74 | |
[000760] ------------ * STMT void (IL 0x092... ???) | |
[000757] -----+------ | /--* CNS_INT int 0 | |
[000759] -A---+------ \--* ASG int | |
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31 | |
***** BB24, stmt 75 | |
[000771] ------------ * STMT void (IL 0x092... ???) | |
[000766] -----+------ | /--* CNS_INT int 0x1000000 | |
[000768] -----+------ | /--* OR int | |
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31 | |
[000770] -A-XG+------ \--* ASG int | |
[000769] V--XG+-N---- \--* IND int | |
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000972] -----+------ \--* ADD byref | |
[000765] -----+------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 76 | |
[000751] ------------ * STMT void (IL 0x092... ???) | |
[000677] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG+------ \--* ASG int | |
[000749] ---XG+-N---- \--* IND int | |
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000974] -----+------ \--* ADD byref | |
[000748] -----+------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 77 | |
[000690] ------------ * STMT void (IL 0x092... ???) | |
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---+------ \--* ASG ref | |
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28} | |
***** BB25, stmt 78 | |
[000728] ------------ * STMT void (IL 0x092... ???) | |
[000725] -----+------ | /--* CNS_INT ref null | |
[000727] -A---+------ \--* ASG ref | |
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB25, stmt 79 | |
[000616] ------------ * STMT void (IL 0x092... ???) | |
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24 | |
[000615] -A-XG+------ \--* ASG ref | |
[000614] *--XG+-N---- \--* IND ref | |
[000608] -----+------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28} | |
***** BB26, stmt 80 | |
[000606] ------------ * STMT void (IL 0x092... ???) | |
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1 | |
------------ BB27 [092..093), preds={BB19} succs={BB28} | |
***** BB27, stmt 81 | |
[000577] ------------ * STMT void (IL 0x092... ???) | |
[000059] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG+------ \--* ASG int | |
[000575] *--XG+-N---- \--* IND int | |
[000574] -----+------ \--* LCL_VAR byref V29 tmp22 | |
***** BB27, stmt 82 | |
[000582] ------------ * STMT void (IL 0x092... ???) | |
[000579] -----+------ | /--* CNS_INT int 1 | |
[000581] -A-XG+------ \--* ASG bool | |
[000580] *--XG+-N---- \--* IND bool | |
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
[000980] -----+------ \--* ADD byref | |
[000578] -----+------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={} | |
***** BB28, stmt 83 | |
[000065] ------------ * STMT void (IL 0x09E...0x09E) | |
[000064] -----+------ \--* RETURN void | |
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28} | |
***** BB29, stmt 84 | |
[000133] ------------ * STMT void (IL 0x071...0x071) | |
[000007] -----+------ | /--* CATCH_ARG ref | |
[000132] -A---+------ \--* ASG ref | |
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2 | |
***** BB29, stmt 85 | |
[000137] ------------ * STMT void (IL ???... ???) | |
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---+------ \--* ASG ref | |
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5 | |
***** BB29, stmt 86 | |
[000142] ------------ * STMT void (IL 0x073...0x076) | |
[000139] -----+------ | /--* CNS_INT int -2 | |
[000141] -A-XG+------ \--* ASG int | |
[000140] *--XG+-N---- \--* IND int | |
[000138] -----+------ \--* LCL_VAR byref V00 this | |
***** BB29, stmt 87 | |
[000149] ------------ * STMT void (IL 0x07B...0x088) | |
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] -----+------ | /--* ADD byref | |
[000921] -----+------ | | \--* LCL_VAR byref V00 this | |
[000924] ---XG+-N---- this in rcx +--* COMMA byref | |
[000920] ---X-+-N---- | \--* NULLCHECK byte | |
[000919] -----+------ | \--* LCL_VAR byref V00 this | |
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 | |
------------------------------------------------------------------------------------------------------------------- | |
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000678] -----+------ * CNS_INT(h) long 0x7ffc6b4afbd8 token | |
Replaced with placeholder node: | |
[000982] ----------L- * ARGPLACE long | |
Shuffled argument table: rcx | |
fgArgTabEntry[arg 0 678.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
*************** Exiting Allocate Objects | |
Trees after Allocate Objects | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 1 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
[000005] ------------ * STMT void (IL 0x000...0x006) | |
[000002] *--XG+------ | /--* IND int | |
[000001] -----+------ | | \--* LCL_VAR byref V00 this | |
[000004] -A-XG+------ \--* ASG int | |
[000003] D----+-N---- \--* LCL_VAR int V01 loc0 | |
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10} | |
***** BB02, stmt 2 | |
[000013] ------------ * STMT void (IL 0x007...0x008) | |
[000012] -----+------ \--* JTRUE void | |
[000010] -----+------ | /--* CNS_INT int 0 | |
[000011] J----+-N---- \--* EQ int | |
[000009] -----+------ \--* LCL_VAR int V01 loc0 | |
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05} | |
***** BB03, stmt 3 | |
[000155] ------------ * STMT void (IL 0x00A... ???) | |
[000787] ------------ | /--* CNS_INT bool 0 | |
[000788] -A---------- | /--* ASG bool | |
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39 | |
[000789] -A---+------ \--* COMMA void | |
[000783] ------------ | /--* CNS_INT short 0 | |
[000784] -A---------- | /--* ASG short | |
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
[000785] -A---------- \--* COMMA void | |
[000779] ------------ | /--* CNS_INT int 0 | |
[000780] -A---------- | /--* ASG int | |
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
[000781] -A---------- \--* COMMA void | |
[000776] ------------ | /--* CNS_INT ref null | |
[000777] -A---------- \--* ASG ref | |
[000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 4 | |
[000172] ------------ * STMT void (IL 0x00A... ???) | |
[000169] -----+------ | /--* CNS_INT int 1 | |
[000171] -A---+------ \--* ASG int | |
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37 | |
***** BB03, stmt 5 | |
[000178] ------------ * STMT void (IL 0x00A... ???) | |
[000175] -----+------ | /--* CNS_INT ref null | |
[000177] -A---+------ \--* ASG ref | |
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 6 | |
[000184] ------------ * STMT void (IL 0x00A... ???) | |
[000181] -----+------ | /--* CNS_INT int 1 | |
[000183] -A---+------ \--* ASG bool | |
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39 | |
***** BB03, stmt 7 | |
[000190] ------------ * STMT void (IL 0x00A... ???) | |
[000187] -----+------ | /--* CNS_INT int 0 | |
[000189] -A---+------ \--* ASG short | |
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38 | |
***** BB03, stmt 8 | |
[000073] ------------ * STMT void (IL ???... ???) | |
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39 | |
[000803] -A---------- | /--* ASG bool | |
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35 | |
[000804] -A---+------ \--* COMMA void | |
[000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
[000799] -A---------- | /--* ASG short | |
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
[000800] -A---------- \--* COMMA void | |
[000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
[000795] -A---------- | /--* ASG int | |
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
[000796] -A---------- \--* COMMA void | |
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
[000792] -A---------- \--* ASG ref | |
[000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
***** BB03, stmt 9 | |
[000207] ------------ * STMT void (IL 0x010... ???) | |
[000817] ------------ | /--* CNS_INT bool 0 | |
[000818] -A---------- | /--* ASG bool | |
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43 | |
[000819] -A---+------ \--* COMMA void | |
[000813] ------------ | /--* CNS_INT short 0 | |
[000814] -A---------- | /--* ASG short | |
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
[000815] -A---------- \--* COMMA void | |
[000809] ------------ | /--* CNS_INT int 0 | |
[000810] -A---------- | /--* ASG int | |
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
[000811] -A---------- \--* COMMA void | |
[000806] ------------ | /--* CNS_INT ref null | |
[000807] -A---------- \--* ASG ref | |
[000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 10 | |
[000261] ------------ * STMT void (IL 0x010... ???) | |
[000196] -----+------ | /--* CNS_INT ref null | |
[000260] -A---+------ \--* ASG ref | |
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6 | |
***** BB03, stmt 11 | |
[000264] ------------ * STMT void (IL 0x010... ???) | |
[000199] -----+------ | /--* CNS_INT int 1 | |
[000263] -A---+------ \--* ASG int | |
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7 | |
***** BB03, stmt 12 | |
[000267] ------------ * STMT void (IL 0x010... ???) | |
[000202] -----+------ | /--* CNS_INT int 0 | |
[000266] -A---+------ \--* ASG short | |
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8 | |
***** BB03, stmt 13 | |
[000240] ------------ * STMT void (IL 0x010... ???) | |
[000237] -----+------ | /--* CNS_INT ref null | |
[000239] -A---+------ \--* ASG ref | |
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 14 | |
[000246] ------------ * STMT void (IL 0x010... ???) | |
[000243] -----+------ | /--* CNS_INT int 1 | |
[000245] -A---+------ \--* ASG int | |
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41 | |
***** BB03, stmt 15 | |
[000252] ------------ * STMT void (IL 0x010... ???) | |
[000249] -----+------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---+------ \--* ASG short | |
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42 | |
***** BB03, stmt 16 | |
[000258] ------------ * STMT void (IL 0x010... ???) | |
[000255] -----+------ | /--* CNS_INT int 0 | |
[000257] -A---+------ \--* ASG bool | |
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43 | |
***** BB03, stmt 17 | |
[000220] ------------ * STMT void (IL 0x010... ???) | |
[000218] -----+------ | /--* CNS_INT int 0 | |
[000219] IA---+--R--- \--* ASG struct (init) | |
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5 | |
***** BB03, stmt 18 | |
[000281] ------------ * STMT void (IL 0x010... ???) | |
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43 | |
[000851] -A---------- | /--* ASG bool | |
[000849] *------N---- | | \--* IND bool | |
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
[000848] ------------ | | \--* ADD byref | |
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000852] -A---+------ \--* COMMA void | |
[000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
[000844] -A---------- | /--* ASG short | |
[000842] *------N---- | | \--* IND short | |
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
[000841] ------------ | | \--* ADD byref | |
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000845] -A---------- \--* COMMA void | |
[000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
[000837] -A---------- | /--* ASG int | |
[000835] *------N---- | | \--* IND int | |
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
[000834] ------------ | | \--* ADD byref | |
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000838] -A---------- \--* COMMA void | |
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
[000830] -A---------- | /--* ASG ref | |
[000828] *------N---- | | \--* IND ref | |
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
[000827] ------------ | | \--* ADD byref | |
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000831] -A---------- \--* COMMA void | |
[000821] L----------- | /--* ADDR byref | |
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
[000824] -A---------- \--* ASG byref | |
[000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
***** BB03, stmt 19 | |
[000277] ------------ * STMT void (IL 0x010... ???) | |
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A--G+--R--- \--* ASG struct (copy) | |
[000275] x----+------ \--* BLK(16) struct | |
[000274] -----+------ \--* ADDR byref | |
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
***** BB03, stmt 20 | |
[000084] ------------ * STMT void (IL ???... ???) | |
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5 | |
[000231] -A---+--R--- \--* ASG struct (copy) | |
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4 | |
***** BB03, stmt 21 | |
[000290] ------------ * STMT void (IL 0x01A... ???) | |
[000288] -----+------ | /--* CNS_INT int 0 | |
[000289] IA---+--R--- \--* ASG struct (init) | |
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10 | |
***** BB03, stmt 22 | |
[000315] ------------ * STMT void (IL 0x01A... ???) | |
[000295] x---G+------ | /--* IND struct | |
[000294] -----+------ | | \--* ADDR byref | |
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
[000314] -A--G+--R--- \--* ASG struct (copy) | |
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11 | |
***** BB03, stmt 23 | |
[000311] ------------ * STMT void (IL 0x01A... ???) | |
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A---+--R--- \--* ASG struct (copy) | |
[000309] x----+------ \--* BLK(16) struct | |
[000308] -----+------ \--* ADDR byref | |
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
***** BB03, stmt 24 | |
[000093] ------------ * STMT void (IL ???... ???) | |
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10 | |
[000301] -A--G+--R--- \--* ASG struct (copy) | |
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB03, stmt 25 | |
[000335] ------------ * STMT void (IL 0x022... ???) | |
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000334] -A--G+------ \--* ASG ref | |
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB03, stmt 26 | |
[000340] ------------ * STMT void (IL 0x022... ???) | |
[000339] -----+------ \--* JTRUE void | |
[000337] -----+------ | /--* CNS_INT ref null | |
[000338] J----+-N---- \--* NE int | |
[000336] -----+------ \--* LCL_VAR ref V20 tmp13 | |
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08} | |
***** BB04, stmt 27 | |
[000395] ------------ * STMT void (IL 0x022... ???) | |
[000391] -----+------ | /--* CNS_INT int 1 | |
[000394] -A---+------ \--* ASG bool | |
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07} | |
***** BB05, stmt 28 | |
[000349] ------------ * STMT void (IL 0x022... ???) | |
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 | |
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000348] -AC-G+------ \--* ASG ref | |
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14 | |
***** BB05, stmt 29 | |
[000354] ------------ * STMT void (IL 0x022... ???) | |
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---+------ \--* ASG ref | |
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB05, stmt 30 | |
[000358] ------------ * STMT void (IL 0x022... ???) | |
[000357] -----+------ \--* JTRUE void | |
[000355] -----+------ | /--* CNS_INT ref null | |
[000356] J----+-N---- \--* EQ int | |
[000350] -----+------ \--* LCL_VAR ref V21 tmp14 | |
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08} | |
***** BB06, stmt 31 | |
[000410] ------------ * STMT void (IL 0x022... ???) | |
[000407] V--XG+-N---- | /--* IND int | |
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000858] -----+------ | | \--* ADD byref | |
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XG+------ \--* ASG int | |
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16 | |
***** BB06, stmt 32 | |
[000388] ------------ * STMT void (IL 0x022... ???) | |
[000421] -----+------ | /--* CNS_INT int 0 | |
[000422] N----+------ | /--* NE int | |
[000419] -----+------ | | | /--* CNS_INT int 0x1600000 | |
[000420] -----+------ | | \--* AND int | |
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16 | |
[000387] -A---+------ \--* ASG bool | |
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB07 [022..023), preds={BB05} succs={BB08} | |
***** BB07, stmt 33 | |
[000378] ------------ * STMT void (IL 0x022... ???) | |
[000374] -----+------ | /--* CNS_INT int 0 | |
[000375] N-CXG+------ | /--* NE int | |
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13 | |
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
[000377] -ACXG+------ \--* ASG bool | |
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11} | |
***** BB08, stmt 34 | |
[000400] ------------ * STMT void (IL 0x022... ???) | |
[000397] -----+------ | /--* CNS_INT ref null | |
[000399] -A---+------ \--* ASG ref | |
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB08, stmt 35 | |
[000404] ------------ * STMT void (IL 0x022... ???) | |
[000401] -----+------ | /--* CNS_INT ref null | |
[000403] -A---+------ \--* ASG ref | |
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB08, stmt 36 | |
[000102] ------------ * STMT void (IL ???... ???) | |
[000101] -----+------ \--* JTRUE void | |
[000099] -----+------ | /--* CNS_INT int 0 | |
[000100] J----+-N---- \--* NE int | |
[000396] -----+------ \--* LCL_VAR int V19 tmp12 | |
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28} | |
***** BB09, stmt 37 | |
[000109] ------------ * STMT void (IL 0x02B...0x02E) | |
[000106] -----+------ | /--* CNS_INT int 0 | |
[000108] -A---+------ \--* ASG int | |
[000107] D----+-N---- \--* LCL_VAR int V01 loc0 | |
***** BB09, stmt 38 | |
[000112] ------------ * STMT void (IL ???...0x02F) | |
[000105] -----+------ | /--* CNS_INT int 0 | |
[000111] -A-XG+------ \--* ASG int | |
[000110] *--XG+-N---- \--* IND int | |
[000104] -----+------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 39 | |
[000119] ------------ * STMT void (IL 0x034...0x036) | |
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG+--R--- \--* ASG struct (copy) | |
[000117] ---XG+------ \--* OBJ(16) struct | |
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000870] -----+------ \--* ADD byref | |
[000113] -----+------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 40 | |
[000443] ------------ * STMT void (IL 0x03B... ???) | |
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000875] -----+------ | /--* ADD byref | |
[000873] -----+------ | | \--* LCL_VAR byref V00 this | |
[000876] ---XG+-N---- | /--* COMMA byref | |
[000872] ---X-+-N---- | | \--* NULLCHECK byte | |
[000871] -----+------ | | \--* LCL_VAR byref V00 this | |
[000442] -A-XG+------ \--* ASG byref | |
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 41 | |
[000431] ------------ * STMT void (IL 0x03B... ???) | |
[000428] -----+------ | /--* CNS_INT int 1 | |
[000430] -A-XG+------ \--* ASG bool | |
[000429] *--XG+-N---- \--* IND bool | |
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000879] -----+------ \--* ADD byref | |
[000427] -----+------ \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 42 | |
[000440] ------------ * STMT void (IL 0x03B... ???) | |
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
( 5, 4) [000884] ------------ | /--* ADD byref | |
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte | |
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 | |
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this | |
------------ BB10 [04B..067), preds={BB02} succs={BB11} | |
***** BB10, stmt 43 | |
[000020] ------------ * STMT void (IL 0x04B...0x051) | |
[000016] *--XG+------ | /--* IND struct | |
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000894] -----+------ | | \--* ADD byref | |
[000015] -----+------ | | \--* LCL_VAR byref V00 this | |
[000019] -A-XG+--R--- \--* ASG struct (copy) | |
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB10, stmt 44 | |
[000027] ------------ * STMT void (IL 0x052...0x059) | |
[000024] -----+------ | /--* CNS_INT int 0 | |
[000026] IA-XG+--R--- \--* ASG struct (init) | |
[000025] ---XG+-N---- \--* BLK(16) struct | |
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000896] -----+------ \--* ADD byref | |
[000021] -----+------ \--* LCL_VAR byref V00 this | |
***** BB10, stmt 45 | |
[000032] ------------ * STMT void (IL 0x05E...0x061) | |
[000029] -----+------ | /--* CNS_INT int -1 | |
[000031] -A---+------ \--* ASG int | |
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1 | |
***** BB10, stmt 46 | |
[000037] ------------ * STMT void (IL ???... ???) | |
[000034] -----+------ | /--* CNS_INT int -1 | |
[000036] -A---+------ \--* ASG int | |
[000035] D----+-N---- \--* LCL_VAR int V01 loc0 | |
***** BB10, stmt 47 | |
[000040] ------------ * STMT void (IL ???...0x062) | |
[000033] -----+------ | /--* CNS_INT int -1 | |
[000039] -A-XG+------ \--* ASG int | |
[000038] *--XG+-N---- \--* IND int | |
[000028] -----+------ \--* LCL_VAR byref V00 this | |
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13} | |
***** BB11, stmt 48 | |
[000462] ------------ * STMT void (IL 0x067... ???) | |
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000461] -A--G+------ \--* ASG ref | |
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB11, stmt 49 | |
[000467] ------------ * STMT void (IL 0x067... ???) | |
[000466] -----+------ \--* JTRUE void | |
[000464] -----+------ | /--* CNS_INT ref null | |
[000465] J----+-N---- \--* NE int | |
[000463] -----+------ \--* LCL_VAR ref V26 tmp19 | |
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18} | |
***** BB12, stmt 50 | |
[000526] ------------ * STMT void (IL 0x067... ???) | |
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
[000525] -A--G+------ \--* ASG int | |
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17} | |
***** BB13, stmt 51 | |
[000476] ------------ * STMT void (IL 0x067... ???) | |
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 | |
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000475] -AC-G+------ \--* ASG ref | |
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20 | |
***** BB13, stmt 52 | |
[000481] ------------ * STMT void (IL 0x067... ???) | |
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---+------ \--* ASG ref | |
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB13, stmt 53 | |
[000485] ------------ * STMT void (IL 0x067... ???) | |
[000484] -----+------ \--* JTRUE void | |
[000482] -----+------ | /--* CNS_INT ref null | |
[000483] J----+-N---- \--* EQ int | |
[000477] -----+------ \--* LCL_VAR ref V27 tmp20 | |
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16} | |
***** BB14, stmt 54 | |
[000544] ------------ * STMT void (IL 0x067... ???) | |
[000543] ---XG+------ \--* JTRUE void | |
[000556] -----+------ | /--* CNS_INT int 0x1000000 | |
[000557] J--XG+-N---- \--* EQ int | |
[000554] -----+------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XG+------ \--* AND int | |
[000553] V--XG+-N---- \--* IND int | |
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000904] -----+------ \--* ADD byref | |
[000506] -----+------ \--* LCL_VAR ref V28 tmp21 | |
------------ BB15 [067..068), preds={BB14} succs={BB16} | |
***** BB15, stmt 55 | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 | |
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18} | |
***** BB16, stmt 56 | |
[000516] ------------ * STMT void (IL 0x067... ???) | |
[000562] ---XG+------ | /--* IND int | |
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000908] -----+------ | | \--* ADD byref | |
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21 | |
[000515] -A-XG+------ \--* ASG int | |
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB17 [067..068), preds={BB13} succs={BB18} | |
***** BB17, stmt 57 | |
[000503] ------------ * STMT void (IL 0x067... ???) | |
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19 | |
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
[000502] -ACXG+------ \--* ASG int | |
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19} | |
***** BB18, stmt 58 | |
[000531] ------------ * STMT void (IL 0x067... ???) | |
[000528] -----+------ | /--* CNS_INT ref null | |
[000530] -A---+------ \--* ASG ref | |
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB18, stmt 59 | |
[000535] ------------ * STMT void (IL 0x067... ???) | |
[000532] -----+------ | /--* CNS_INT ref null | |
[000534] -A---+------ \--* ASG ref | |
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB18, stmt 60 | |
[000049] ------------ * STMT void (IL ???... ???) | |
[000527] -----+------ | /--* LCL_VAR int V25 tmp18 | |
[000048] -A---+------ \--* ASG int | |
[000047] D----+-N---- \--* LCL_VAR int V02 loc1 | |
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27} | |
***** BB19, stmt 61 | |
[000055] ------------ * STMT void (IL 0x08A...0x08D) | |
[000052] -----+------ | /--* CNS_INT int -2 | |
[000054] -A-XG+------ \--* ASG int | |
[000053] *--XG+-N---- \--* IND int | |
[000051] -----+------ \--* LCL_VAR byref V00 this | |
***** BB19, stmt 62 | |
[000593] ------------ * STMT void (IL 0x092... ???) | |
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000934] -----+------ | /--* ADD byref | |
[000932] -----+------ | | \--* LCL_VAR byref V00 this | |
[000935] ---XG+-N---- | /--* COMMA byref | |
[000931] ---X-+-N---- | | \--* NULLCHECK byte | |
[000930] -----+------ | | \--* LCL_VAR byref V00 this | |
[000592] -A-XG+------ \--* ASG byref | |
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22 | |
***** BB19, stmt 63 | |
[000572] ------------ * STMT void (IL 0x092... ???) | |
[000571] ---XG+------ \--* JTRUE void | |
[000569] -----+------ | /--* CNS_INT int 0 | |
[000570] J--XG+-N---- \--* EQ int | |
[000568] *--XG+------ \--* IND bool | |
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000938] -----+------ \--* ADD byref | |
[000567] -----+------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26} | |
***** BB20, stmt 64 | |
[000619] ------------ * STMT void (IL 0x092... ???) | |
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000943] -----+------ | /--* ADD byref | |
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000944] ---XG+-N---- | /--* COMMA byref | |
[000940] ---X-+-N---- | | \--* NULLCHECK byte | |
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG+------ \--* ASG byref | |
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23 | |
***** BB20, stmt 65 | |
[000601] ------------ * STMT void (IL 0x092... ???) | |
[000600] ---XG+------ \--* JTRUE void | |
[000598] -----+------ | /--* CNS_INT ref null | |
[000599] J--XG+-N---- \--* NE int | |
[000597] *--XG+------ \--* IND ref | |
[000596] -----+------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24} | |
***** BB21, stmt 66 | |
[000627] ------------ * STMT void (IL 0x092... ???) | |
[000624] -----+------ | /--* CNS_INT int 0 | |
[000626] -A---+------ \--* ASG int | |
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25 | |
***** BB21, stmt 67 | |
[000670] ------------ * STMT void (IL 0x092... ???) | |
[000609] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---+------ \--* ASG int | |
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27 | |
***** BB21, stmt 68 | |
[000675] ------------ * STMT void (IL 0x092... ???) | |
[000674] -----+------ \--* JTRUE void | |
[000672] -----+------ | /--* CNS_INT int 9 | |
[000673] J----+-N---- \--* GE int | |
[000671] -----+------ \--* LCL_VAR int V02 loc1 | |
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24} | |
***** BB22, stmt 69 | |
[000697] ------------ * STMT void (IL 0x092... ???) | |
[000696] -----+------ \--* JTRUE void | |
[000694] -----+------ | /--* CNS_INT int -1 | |
[000695] J----+-N---- \--* LT int | |
[000693] -----+------ \--* LCL_VAR int V34 tmp27 | |
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25} | |
***** BB23, stmt 70 | |
[000713] ------------ * STMT void (IL 0x092... ???) | |
[000710] a---G+------ | /--* IND ref | |
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
[000960] -----+------ | | \--* ADD byref | |
[000956] -----+-N---- | | | /--* CNS_INT long 3 | |
[000957] -----+------ | | | /--* LSH long | |
[000955] -----+------ | | | | \--* CAST long <- int | |
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
[000950] -----+------ | | | | \--* ADD int | |
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27 | |
[000958] -----+------ | | \--* ADD byref | |
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000961] ---XG+------ | /--* COMMA ref | |
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void | |
[000708] -----+------ | | | /--* CNS_INT int 1 | |
[000709] -----+------ | | +--* ADD int | |
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27 | |
[000953] ---X-+------ | | \--* ARR_LENGTH int | |
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000962] -ACXG+------ | /--* COMMA ref | |
[000699] x---G+------ | | | /--* IND ref | |
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
[000706] --CXG+------ | | | /--* COMMA ref | |
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A | |
[000947] -ACXG+------ | | \--* ASG ref | |
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46 | |
[000712] -ACXG+------ \--* ASG ref | |
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB23, stmt 71 | |
[000723] ------------ * STMT void (IL 0x092... ???) | |
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29 | |
[000722] -A---+------ \--* ASG ref | |
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25} | |
***** BB24, stmt 72 | |
[000682] ------------ * STMT void (IL 0x092... ???) | |
[000679] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
[000678] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -AC--+------ \--* ASG ref | |
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 73 | |
[000739] ------------ * STMT void (IL 0x092... ???) | |
[000969] ------------ | /--* CNS_INT ref null | |
[000970] -A---+------ \--* ASG ref | |
[000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
***** BB24, stmt 74 | |
[000760] ------------ * STMT void (IL 0x092... ???) | |
[000757] -----+------ | /--* CNS_INT int 0 | |
[000759] -A---+------ \--* ASG int | |
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31 | |
***** BB24, stmt 75 | |
[000771] ------------ * STMT void (IL 0x092... ???) | |
[000766] -----+------ | /--* CNS_INT int 0x1000000 | |
[000768] -----+------ | /--* OR int | |
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31 | |
[000770] -A-XG+------ \--* ASG int | |
[000769] V--XG+-N---- \--* IND int | |
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000972] -----+------ \--* ADD byref | |
[000765] -----+------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 76 | |
[000751] ------------ * STMT void (IL 0x092... ???) | |
[000677] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG+------ \--* ASG int | |
[000749] ---XG+-N---- \--* IND int | |
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000974] -----+------ \--* ADD byref | |
[000748] -----+------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 77 | |
[000690] ------------ * STMT void (IL 0x092... ???) | |
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---+------ \--* ASG ref | |
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28} | |
***** BB25, stmt 78 | |
[000728] ------------ * STMT void (IL 0x092... ???) | |
[000725] -----+------ | /--* CNS_INT ref null | |
[000727] -A---+------ \--* ASG ref | |
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB25, stmt 79 | |
[000616] ------------ * STMT void (IL 0x092... ???) | |
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24 | |
[000615] -A-XG+------ \--* ASG ref | |
[000614] *--XG+-N---- \--* IND ref | |
[000608] -----+------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28} | |
***** BB26, stmt 80 | |
[000606] ------------ * STMT void (IL 0x092... ???) | |
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1 | |
------------ BB27 [092..093), preds={BB19} succs={BB28} | |
***** BB27, stmt 81 | |
[000577] ------------ * STMT void (IL 0x092... ???) | |
[000059] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG+------ \--* ASG int | |
[000575] *--XG+-N---- \--* IND int | |
[000574] -----+------ \--* LCL_VAR byref V29 tmp22 | |
***** BB27, stmt 82 | |
[000582] ------------ * STMT void (IL 0x092... ???) | |
[000579] -----+------ | /--* CNS_INT int 1 | |
[000581] -A-XG+------ \--* ASG bool | |
[000580] *--XG+-N---- \--* IND bool | |
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
[000980] -----+------ \--* ADD byref | |
[000578] -----+------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={} | |
***** BB28, stmt 83 | |
[000065] ------------ * STMT void (IL 0x09E...0x09E) | |
[000064] -----+------ \--* RETURN void | |
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28} | |
***** BB29, stmt 84 | |
[000133] ------------ * STMT void (IL 0x071...0x071) | |
[000007] -----+------ | /--* CATCH_ARG ref | |
[000132] -A---+------ \--* ASG ref | |
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2 | |
***** BB29, stmt 85 | |
[000137] ------------ * STMT void (IL ???... ???) | |
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---+------ \--* ASG ref | |
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5 | |
***** BB29, stmt 86 | |
[000142] ------------ * STMT void (IL 0x073...0x076) | |
[000139] -----+------ | /--* CNS_INT int -2 | |
[000141] -A-XG+------ \--* ASG int | |
[000140] *--XG+-N---- \--* IND int | |
[000138] -----+------ \--* LCL_VAR byref V00 this | |
***** BB29, stmt 87 | |
[000149] ------------ * STMT void (IL 0x07B...0x088) | |
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] -----+------ | /--* ADD byref | |
[000921] -----+------ | | \--* LCL_VAR byref V00 this | |
[000924] ---XG+-N---- this in rcx +--* COMMA byref | |
[000920] ---X-+-N---- | \--* NULLCHECK byte | |
[000919] -----+------ | \--* LCL_VAR byref V00 this | |
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLoops() | |
*************** In fgDebugCheckBBlist | |
*************** In optCloneLoops() | |
*************** In lvaMarkLocalVars() | |
lvaGrabTemp returning 54 (V54 tmp47) (a long lifetime temp) called for PSPSym. | |
Local V54 should not be enregistered because: it is address exposed | |
*** marking local variables in block BB01 (weight=1 ) | |
[000005] ------------ * STMT void (IL 0x000...0x006) | |
[000002] *--XG+------ | /--* IND int | |
[000001] -----+------ | | \--* LCL_VAR byref V00 this | |
[000004] -A-XG+------ \--* ASG int | |
[000003] D----+-N---- \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 1, refCntWtd = 1 | |
New refCnts for V00: refCnt = 1, refCntWtd = 1 | |
*** marking local variables in block BB02 (weight=1 ) | |
[000013] ------------ * STMT void (IL 0x007...0x008) | |
[000012] -----+------ \--* JTRUE void | |
[000010] -----+------ | /--* CNS_INT int 0 | |
[000011] J----+-N---- \--* EQ int | |
[000009] -----+------ \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 2, refCntWtd = 2 | |
*** marking local variables in block BB03 (weight=1 ) | |
[000155] ------------ * STMT void (IL 0x00A... ???) | |
[000787] ------------ | /--* CNS_INT bool 0 | |
[000788] -A---------- | /--* ASG bool | |
[000786] D------N---- | | \--* LCL_VAR bool V46 tmp39 | |
[000789] -A---+------ \--* COMMA void | |
[000783] ------------ | /--* CNS_INT short 0 | |
[000784] -A---------- | /--* ASG short | |
[000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
[000785] -A---------- \--* COMMA void | |
[000779] ------------ | /--* CNS_INT int 0 | |
[000780] -A---------- | /--* ASG int | |
[000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
[000781] -A---------- \--* COMMA void | |
[000776] ------------ | /--* CNS_INT ref null | |
[000777] -A---------- \--* ASG ref | |
[000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
New refCnts for V43: refCnt = 1, refCntWtd = 1 | |
New refCnts for V44: refCnt = 1, refCntWtd = 1 | |
New refCnts for V45: refCnt = 1, refCntWtd = 1 | |
New refCnts for V46: refCnt = 1, refCntWtd = 1 | |
[000172] ------------ * STMT void (IL 0x00A... ???) | |
[000169] -----+------ | /--* CNS_INT int 1 | |
[000171] -A---+------ \--* ASG int | |
[000170] D----+-N---- \--* LCL_VAR int V44 tmp37 | |
New refCnts for V44: refCnt = 2, refCntWtd = 2 | |
[000178] ------------ * STMT void (IL 0x00A... ???) | |
[000175] -----+------ | /--* CNS_INT ref null | |
[000177] -A---+------ \--* ASG ref | |
[000176] D----+-N---- \--* LCL_VAR ref V43 tmp36 | |
New refCnts for V43: refCnt = 2, refCntWtd = 2 | |
[000184] ------------ * STMT void (IL 0x00A... ???) | |
[000181] -----+------ | /--* CNS_INT int 1 | |
[000183] -A---+------ \--* ASG bool | |
[000182] D----+-N---- \--* LCL_VAR bool V46 tmp39 | |
New refCnts for V46: refCnt = 2, refCntWtd = 2 | |
[000190] ------------ * STMT void (IL 0x00A... ???) | |
[000187] -----+------ | /--* CNS_INT int 0 | |
[000189] -A---+------ \--* ASG short | |
[000188] D----+-N---- \--* LCL_VAR short V45 tmp38 | |
New refCnts for V45: refCnt = 2, refCntWtd = 2 | |
[000073] ------------ * STMT void (IL ???... ???) | |
[000802] -------N---- | /--* LCL_VAR bool V46 tmp39 | |
[000803] -A---------- | /--* ASG bool | |
[000801] D------N---- | | \--* LCL_VAR bool V42 tmp35 | |
[000804] -A---+------ \--* COMMA void | |
[000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
[000799] -A---------- | /--* ASG short | |
[000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
[000800] -A---------- \--* COMMA void | |
[000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
[000795] -A---------- | /--* ASG int | |
[000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
[000796] -A---------- \--* COMMA void | |
[000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
[000792] -A---------- \--* ASG ref | |
[000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
New refCnts for V39: refCnt = 1, refCntWtd = 1 | |
New refCnts for V43: refCnt = 3, refCntWtd = 3 | |
New refCnts for V40: refCnt = 1, refCntWtd = 1 | |
New refCnts for V44: refCnt = 3, refCntWtd = 3 | |
New refCnts for V41: refCnt = 1, refCntWtd = 1 | |
New refCnts for V45: refCnt = 3, refCntWtd = 3 | |
New refCnts for V42: refCnt = 1, refCntWtd = 1 | |
New refCnts for V46: refCnt = 3, refCntWtd = 3 | |
[000207] ------------ * STMT void (IL 0x010... ???) | |
[000817] ------------ | /--* CNS_INT bool 0 | |
[000818] -A---------- | /--* ASG bool | |
[000816] D------N---- | | \--* LCL_VAR bool V50 tmp43 | |
[000819] -A---+------ \--* COMMA void | |
[000813] ------------ | /--* CNS_INT short 0 | |
[000814] -A---------- | /--* ASG short | |
[000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
[000815] -A---------- \--* COMMA void | |
[000809] ------------ | /--* CNS_INT int 0 | |
[000810] -A---------- | /--* ASG int | |
[000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
[000811] -A---------- \--* COMMA void | |
[000806] ------------ | /--* CNS_INT ref null | |
[000807] -A---------- \--* ASG ref | |
[000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
New refCnts for V47: refCnt = 1, refCntWtd = 1 | |
New refCnts for V48: refCnt = 1, refCntWtd = 1 | |
New refCnts for V49: refCnt = 1, refCntWtd = 1 | |
New refCnts for V50: refCnt = 1, refCntWtd = 1 | |
[000261] ------------ * STMT void (IL 0x010... ???) | |
[000196] -----+------ | /--* CNS_INT ref null | |
[000260] -A---+------ \--* ASG ref | |
[000259] D----+-N---- \--* LCL_VAR ref V13 tmp6 | |
New refCnts for V13: refCnt = 1, refCntWtd = 2 | |
[000264] ------------ * STMT void (IL 0x010... ???) | |
[000199] -----+------ | /--* CNS_INT int 1 | |
[000263] -A---+------ \--* ASG int | |
[000262] D----+-N---- \--* LCL_VAR int V14 tmp7 | |
New refCnts for V14: refCnt = 1, refCntWtd = 2 | |
[000267] ------------ * STMT void (IL 0x010... ???) | |
[000202] -----+------ | /--* CNS_INT int 0 | |
[000266] -A---+------ \--* ASG short | |
[000265] D----+-N---- \--* LCL_VAR int V15 tmp8 | |
New refCnts for V15: refCnt = 1, refCntWtd = 2 | |
[000240] ------------ * STMT void (IL 0x010... ???) | |
[000237] -----+------ | /--* CNS_INT ref null | |
[000239] -A---+------ \--* ASG ref | |
[000238] D----+-N---- \--* LCL_VAR ref V47 tmp40 | |
New refCnts for V47: refCnt = 2, refCntWtd = 2 | |
[000246] ------------ * STMT void (IL 0x010... ???) | |
[000243] -----+------ | /--* CNS_INT int 1 | |
[000245] -A---+------ \--* ASG int | |
[000244] D----+-N---- \--* LCL_VAR int V48 tmp41 | |
New refCnts for V48: refCnt = 2, refCntWtd = 2 | |
[000252] ------------ * STMT void (IL 0x010... ???) | |
[000249] -----+------ | /--* LCL_VAR int V15 tmp8 | |
[000251] -A---+------ \--* ASG short | |
[000250] D----+-N---- \--* LCL_VAR short V49 tmp42 | |
New refCnts for V49: refCnt = 2, refCntWtd = 2 | |
New refCnts for V15: refCnt = 2, refCntWtd = 4 | |
[000258] ------------ * STMT void (IL 0x010... ???) | |
[000255] -----+------ | /--* CNS_INT int 0 | |
[000257] -A---+------ \--* ASG bool | |
[000256] D----+-N---- \--* LCL_VAR bool V50 tmp43 | |
New refCnts for V50: refCnt = 2, refCntWtd = 2 | |
[000220] ------------ * STMT void (IL 0x010... ???) | |
[000218] -----+------ | /--* CNS_INT int 0 | |
[000219] IA---+--R--- \--* ASG struct (init) | |
[000217] D----+-N---- \--* LCL_VAR struct V12 tmp5 | |
New refCnts for V12: refCnt = 1, refCntWtd = 2 | |
[000281] ------------ * STMT void (IL 0x010... ???) | |
[000850] -------N---- | /--* LCL_VAR bool V50 tmp43 | |
[000851] -A---------- | /--* ASG bool | |
[000849] *------N---- | | \--* IND bool | |
[000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
[000848] ------------ | | \--* ADD byref | |
[000846] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000852] -A---+------ \--* COMMA void | |
[000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
[000844] -A---------- | /--* ASG short | |
[000842] *------N---- | | \--* IND short | |
[000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
[000841] ------------ | | \--* ADD byref | |
[000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000845] -A---------- \--* COMMA void | |
[000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
[000837] -A---------- | /--* ASG int | |
[000835] *------N---- | | \--* IND int | |
[000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
[000834] ------------ | | \--* ADD byref | |
[000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000838] -A---------- \--* COMMA void | |
[000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
[000830] -A---------- | /--* ASG ref | |
[000828] *------N---- | | \--* IND ref | |
[000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
[000827] ------------ | | \--* ADD byref | |
[000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
[000831] -A---------- \--* COMMA void | |
[000821] L----------- | /--* ADDR byref | |
[000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
[000824] -A---------- \--* ASG byref | |
[000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
New refCnts for V52: refCnt = 1, refCntWtd = 2 | |
New refCnts for V16: refCnt = 1, refCntWtd = 2 | |
New refCnts for V52: refCnt = 2, refCntWtd = 4 | |
New refCnts for V47: refCnt = 3, refCntWtd = 3 | |
New refCnts for V52: refCnt = 3, refCntWtd = 6 | |
New refCnts for V48: refCnt = 3, refCntWtd = 3 | |
New refCnts for V52: refCnt = 4, refCntWtd = 8 | |
New refCnts for V49: refCnt = 3, refCntWtd = 3 | |
New refCnts for V52: refCnt = 5, refCntWtd = 10 | |
New refCnts for V50: refCnt = 3, refCntWtd = 3 | |
[000277] ------------ * STMT void (IL 0x010... ???) | |
[000272] ----G+------ | /--* LCL_VAR struct(AX) V16 tmp9 | |
[000276] -A--G+--R--- \--* ASG struct (copy) | |
[000275] x----+------ \--* BLK(16) struct | |
[000274] -----+------ \--* ADDR byref | |
[000271] D----+-N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
New refCnts for V12: refCnt = 2, refCntWtd = 4 | |
New refCnts for V16: refCnt = 2, refCntWtd = 4 | |
[000084] ------------ * STMT void (IL ???... ???) | |
[000228] -----+------ | /--* LCL_VAR struct V12 tmp5 | |
[000231] -A---+--R--- \--* ASG struct (copy) | |
[000230] D----+-N---- \--* LCL_VAR struct V05 loc4 | |
New refCnts for V05: refCnt = 1, refCntWtd = 1 | |
New refCnts for V12: refCnt = 3, refCntWtd = 6 | |
[000290] ------------ * STMT void (IL 0x01A... ???) | |
[000288] -----+------ | /--* CNS_INT int 0 | |
[000289] IA---+--R--- \--* ASG struct (init) | |
[000287] D----+-N---- \--* LCL_VAR struct V17 tmp10 | |
New refCnts for V17: refCnt = 1, refCntWtd = 2 | |
[000315] ------------ * STMT void (IL 0x01A... ???) | |
[000295] x---G+------ | /--* IND struct | |
[000294] -----+------ | | \--* ADDR byref | |
[000285] -----+-N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
[000314] -A--G+--R--- \--* ASG struct (copy) | |
[000312] D----+-N---- \--* LCL_VAR struct V18 tmp11 | |
New refCnts for V18: refCnt = 1, refCntWtd = 2 | |
New refCnts for V05: refCnt = 2, refCntWtd = 2 | |
[000311] ------------ * STMT void (IL 0x01A... ???) | |
[000306] -----+------ | /--* LCL_VAR struct V18 tmp11 | |
[000310] -A---+--R--- \--* ASG struct (copy) | |
[000309] x----+------ \--* BLK(16) struct | |
[000308] -----+------ \--* ADDR byref | |
[000305] D----+-N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
New refCnts for V17: refCnt = 2, refCntWtd = 4 | |
New refCnts for V18: refCnt = 2, refCntWtd = 4 | |
[000093] ------------ * STMT void (IL ???... ???) | |
[000298] -----+------ | /--* LCL_VAR struct V17 tmp10 | |
[000301] -A--G+--R--- \--* ASG struct (copy) | |
[000300] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
New refCnts for V03: refCnt = 1, refCntWtd = 1 | |
New refCnts for V17: refCnt = 3, refCntWtd = 6 | |
[000335] ------------ * STMT void (IL 0x022... ???) | |
[000331] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000334] -A--G+------ \--* ASG ref | |
[000333] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
New refCnts for V20: refCnt = 1, refCntWtd = 1 | |
New refCnts for V03: refCnt = 2, refCntWtd = 2 | |
[000340] ------------ * STMT void (IL 0x022... ???) | |
[000339] -----+------ \--* JTRUE void | |
[000337] -----+------ | /--* CNS_INT ref null | |
[000338] J----+-N---- \--* NE int | |
[000336] -----+------ \--* LCL_VAR ref V20 tmp13 | |
New refCnts for V20: refCnt = 2, refCntWtd = 2 | |
*** marking local variables in block BB04 (weight=1 ) | |
[000395] ------------ * STMT void (IL 0x022... ???) | |
[000391] -----+------ | /--* CNS_INT int 1 | |
[000394] -A---+------ \--* ASG bool | |
[000393] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
New refCnts for V19: refCnt = 1, refCntWtd = 1 | |
*** marking local variables in block BB05 (weight=0.50) | |
[000349] ------------ * STMT void (IL 0x022... ???) | |
[000346] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000342] -----+------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 | |
[000343] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000348] -AC-G+------ \--* ASG ref | |
[000347] D----+-N---- \--* LCL_VAR ref V21 tmp14 | |
New refCnts for V21: refCnt = 1, refCntWtd = 1 | |
New refCnts for V20: refCnt = 3, refCntWtd = 2.50 | |
[000354] ------------ * STMT void (IL 0x022... ???) | |
[000351] -----+------ | /--* LCL_VAR ref V21 tmp14 | |
[000353] -A---+------ \--* ASG ref | |
[000352] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
New refCnts for V22: refCnt = 1, refCntWtd = 0.50 | |
New refCnts for V21: refCnt = 2, refCntWtd = 2 | |
[000358] ------------ * STMT void (IL 0x022... ???) | |
[000357] -----+------ \--* JTRUE void | |
[000355] -----+------ | /--* CNS_INT ref null | |
[000356] J----+-N---- \--* EQ int | |
[000350] -----+------ \--* LCL_VAR ref V21 tmp14 | |
New refCnts for V21: refCnt = 3, refCntWtd = 3 | |
*** marking local variables in block BB06 (weight=1 ) | |
[000410] ------------ * STMT void (IL 0x022... ???) | |
[000407] V--XG+-N---- | /--* IND int | |
[000857] -----+------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000858] -----+------ | | \--* ADD byref | |
[000381] -----+------ | | \--* LCL_VAR ref V22 tmp15 | |
[000409] -A-XG+------ \--* ASG int | |
[000408] D----+-N---- \--* LCL_VAR int V23 tmp16 | |
New refCnts for V23: refCnt = 1, refCntWtd = 1 | |
New refCnts for V22: refCnt = 2, refCntWtd = 1.50 | |
[000388] ------------ * STMT void (IL 0x022... ???) | |
[000421] -----+------ | /--* CNS_INT int 0 | |
[000422] N----+------ | /--* NE int | |
[000419] -----+------ | | | /--* CNS_INT int 0x1600000 | |
[000420] -----+------ | | \--* AND int | |
[000411] -----+------ | | \--* LCL_VAR int V23 tmp16 | |
[000387] -A---+------ \--* ASG bool | |
[000386] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
New refCnts for V19: refCnt = 2, refCntWtd = 2 | |
New refCnts for V23: refCnt = 2, refCntWtd = 2 | |
*** marking local variables in block BB07 (weight=1 ) | |
[000378] ------------ * STMT void (IL 0x022... ???) | |
[000374] -----+------ | /--* CNS_INT int 0 | |
[000375] N-CXG+------ | /--* NE int | |
[000372] --CXG+------ | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
[000360] -----+------ this in rcx | | +--* LCL_VAR ref V20 tmp13 | |
[000370] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000859] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
[000377] -ACXG+------ \--* ASG bool | |
[000376] D----+-N---- \--* LCL_VAR int V19 tmp12 | |
New refCnts for V19: refCnt = 3, refCntWtd = 3 | |
New refCnts for V20: refCnt = 4, refCntWtd = 3.50 | |
New refCnts for V03: refCnt = 3, refCntWtd = 3 | |
*** marking local variables in block BB08 (weight=1 ) | |
[000400] ------------ * STMT void (IL 0x022... ???) | |
[000397] -----+------ | /--* CNS_INT ref null | |
[000399] -A---+------ \--* ASG ref | |
[000398] D----+-N---- \--* LCL_VAR ref V20 tmp13 | |
New refCnts for V20: refCnt = 5, refCntWtd = 4.50 | |
[000404] ------------ * STMT void (IL 0x022... ???) | |
[000401] -----+------ | /--* CNS_INT ref null | |
[000403] -A---+------ \--* ASG ref | |
[000402] D----+-N---- \--* LCL_VAR ref V22 tmp15 | |
New refCnts for V22: refCnt = 3, refCntWtd = 2.50 | |
[000102] ------------ * STMT void (IL ???... ???) | |
[000101] -----+------ \--* JTRUE void | |
[000099] -----+------ | /--* CNS_INT int 0 | |
[000100] J----+-N---- \--* NE int | |
[000396] -----+------ \--* LCL_VAR int V19 tmp12 | |
New refCnts for V19: refCnt = 4, refCntWtd = 4 | |
*** marking local variables in block BB09 (weight=1 ) | |
[000109] ------------ * STMT void (IL 0x02B...0x02E) | |
[000106] -----+------ | /--* CNS_INT int 0 | |
[000108] -A---+------ \--* ASG int | |
[000107] D----+-N---- \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 3, refCntWtd = 3 | |
[000112] ------------ * STMT void (IL ???...0x02F) | |
[000105] -----+------ | /--* CNS_INT int 0 | |
[000111] -A-XG+------ \--* ASG int | |
[000110] *--XG+-N---- \--* IND int | |
[000104] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 2, refCntWtd = 2 | |
[000119] ------------ * STMT void (IL 0x034...0x036) | |
[000114] ----G+------ | /--* LCL_VAR struct(AX) V03 loc2 | |
[000118] -A-XG+--R--- \--* ASG struct (copy) | |
[000117] ---XG+------ \--* OBJ(16) struct | |
[000869] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000870] -----+------ \--* ADD byref | |
[000113] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 3, refCntWtd = 3 | |
New refCnts for V03: refCnt = 4, refCntWtd = 4 | |
[000443] ------------ * STMT void (IL 0x03B... ???) | |
[000874] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000875] -----+------ | /--* ADD byref | |
[000873] -----+------ | | \--* LCL_VAR byref V00 this | |
[000876] ---XG+-N---- | /--* COMMA byref | |
[000872] ---X-+-N---- | | \--* NULLCHECK byte | |
[000871] -----+------ | | \--* LCL_VAR byref V00 this | |
[000442] -A-XG+------ \--* ASG byref | |
[000441] D----+-N---- \--* LCL_VAR byref V24 tmp17 | |
New refCnts for V24: refCnt = 1, refCntWtd = 2 | |
New refCnts for V00: refCnt = 4, refCntWtd = 4 | |
New refCnts for V00: refCnt = 5, refCntWtd = 5 | |
[000431] ------------ * STMT void (IL 0x03B... ???) | |
[000428] -----+------ | /--* CNS_INT int 1 | |
[000430] -A-XG+------ \--* ASG bool | |
[000429] *--XG+-N---- \--* IND bool | |
[000878] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000879] -----+------ \--* ADD byref | |
[000427] -----+------ \--* LCL_VAR byref V24 tmp17 | |
New refCnts for V24: refCnt = 2, refCntWtd = 4 | |
[000440] ------------ * STMT void (IL 0x03B... ???) | |
[000437] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
( 5, 4) [000884] ------------ | /--* ADD byref | |
( 3, 2) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
( 9, 7) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
( 4, 3) [000881] ---X---N---- | \--* NULLCHECK byte | |
( 3, 2) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 | |
( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
[000125] -----+------ arg2 in r8 \--* LCL_VAR byref V00 this | |
New refCnts for V24: refCnt = 3, refCntWtd = 6 | |
New refCnts for V24: refCnt = 4, refCntWtd = 8 | |
New refCnts for V03: refCnt = 5, refCntWtd = 5 | |
New refCnts for V00: refCnt = 6, refCntWtd = 6 | |
*** marking local variables in block BB10 (weight=1 ) | |
[000020] ------------ * STMT void (IL 0x04B...0x051) | |
[000016] *--XG+------ | /--* IND struct | |
[000893] -----+------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000894] -----+------ | | \--* ADD byref | |
[000015] -----+------ | | \--* LCL_VAR byref V00 this | |
[000019] -A-XG+--R--- \--* ASG struct (copy) | |
[000017] D---G+-N---- \--* LCL_VAR struct(AX) V03 loc2 | |
New refCnts for V03: refCnt = 6, refCntWtd = 6 | |
New refCnts for V00: refCnt = 7, refCntWtd = 7 | |
[000027] ------------ * STMT void (IL 0x052...0x059) | |
[000024] -----+------ | /--* CNS_INT int 0 | |
[000026] IA-XG+--R--- \--* ASG struct (init) | |
[000025] ---XG+-N---- \--* BLK(16) struct | |
[000895] -----+------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
[000896] -----+------ \--* ADD byref | |
[000021] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 8, refCntWtd = 8 | |
[000032] ------------ * STMT void (IL 0x05E...0x061) | |
[000029] -----+------ | /--* CNS_INT int -1 | |
[000031] -A---+------ \--* ASG int | |
[000030] D----+-N---- \--* LCL_VAR int V08 tmp1 | |
New refCnts for V08: refCnt = 1, refCntWtd = 2 | |
[000037] ------------ * STMT void (IL ???... ???) | |
[000034] -----+------ | /--* CNS_INT int -1 | |
[000036] -A---+------ \--* ASG int | |
[000035] D----+-N---- \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 4, refCntWtd = 4 | |
[000040] ------------ * STMT void (IL ???...0x062) | |
[000033] -----+------ | /--* CNS_INT int -1 | |
[000039] -A-XG+------ \--* ASG int | |
[000038] *--XG+-N---- \--* IND int | |
[000028] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 9, refCntWtd = 9 | |
*** marking local variables in block BB11 (weight=1 ) | |
[000462] ------------ * STMT void (IL 0x067... ???) | |
[000458] ----G+------ | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
[000461] -A--G+------ \--* ASG ref | |
[000460] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
New refCnts for V26: refCnt = 1, refCntWtd = 1 | |
New refCnts for V03: refCnt = 7, refCntWtd = 7 | |
[000467] ------------ * STMT void (IL 0x067... ???) | |
[000466] -----+------ \--* JTRUE void | |
[000464] -----+------ | /--* CNS_INT ref null | |
[000465] J----+-N---- \--* NE int | |
[000463] -----+------ \--* LCL_VAR ref V26 tmp19 | |
New refCnts for V26: refCnt = 2, refCntWtd = 2 | |
*** marking local variables in block BB12 (weight=1 ) | |
[000526] ------------ * STMT void (IL 0x067... ???) | |
[000522] ----G+------ | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
[000525] -A--G+------ \--* ASG int | |
[000524] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
New refCnts for V25: refCnt = 1, refCntWtd = 1 | |
New refCnts for V03: refCnt = 8, refCntWtd = 8 | |
*** marking local variables in block BB13 (weight=0.50) | |
[000476] ------------ * STMT void (IL 0x067... ???) | |
[000473] --C-G+------ | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
[000469] -----+------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 | |
[000470] -----+-N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
[000475] -AC-G+------ \--* ASG ref | |
[000474] D----+-N---- \--* LCL_VAR ref V27 tmp20 | |
New refCnts for V27: refCnt = 1, refCntWtd = 1 | |
New refCnts for V26: refCnt = 3, refCntWtd = 2.50 | |
[000481] ------------ * STMT void (IL 0x067... ???) | |
[000478] -----+------ | /--* LCL_VAR ref V27 tmp20 | |
[000480] -A---+------ \--* ASG ref | |
[000479] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
New refCnts for V28: refCnt = 1, refCntWtd = 0.50 | |
New refCnts for V27: refCnt = 2, refCntWtd = 2 | |
[000485] ------------ * STMT void (IL 0x067... ???) | |
[000484] -----+------ \--* JTRUE void | |
[000482] -----+------ | /--* CNS_INT ref null | |
[000483] J----+-N---- \--* EQ int | |
[000477] -----+------ \--* LCL_VAR ref V27 tmp20 | |
New refCnts for V27: refCnt = 3, refCntWtd = 3 | |
*** marking local variables in block BB14 (weight=1 ) | |
[000544] ------------ * STMT void (IL 0x067... ???) | |
[000543] ---XG+------ \--* JTRUE void | |
[000556] -----+------ | /--* CNS_INT int 0x1000000 | |
[000557] J--XG+-N---- \--* EQ int | |
[000554] -----+------ | /--* CNS_INT int 0x11000000 | |
[000555] ---XG+------ \--* AND int | |
[000553] V--XG+-N---- \--* IND int | |
[000903] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000904] -----+------ \--* ADD byref | |
[000506] -----+------ \--* LCL_VAR ref V28 tmp21 | |
New refCnts for V28: refCnt = 2, refCntWtd = 1.50 | |
*** marking local variables in block BB15 (weight=0.50) | |
[000550] ------------ * STMT void (IL 0x067... ???) | |
[000548] --CXG+------ \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
[000547] -----+------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 | |
New refCnts for V28: refCnt = 3, refCntWtd = 2 | |
*** marking local variables in block BB16 (weight=1 ) | |
[000516] ------------ * STMT void (IL 0x067... ???) | |
[000562] ---XG+------ | /--* IND int | |
[000907] -----+------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000908] -----+------ | | \--* ADD byref | |
[000510] -----+------ | | \--* LCL_VAR ref V28 tmp21 | |
[000515] -A-XG+------ \--* ASG int | |
[000514] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
New refCnts for V25: refCnt = 2, refCntWtd = 2 | |
New refCnts for V28: refCnt = 4, refCntWtd = 3 | |
*** marking local variables in block BB17 (weight=1 ) | |
[000503] ------------ * STMT void (IL 0x067... ???) | |
[000499] --CXG+------ | /--* CALLV stub int IValueTaskSource`1.GetResult | |
[000487] -----+------ this in rcx | | +--* LCL_VAR ref V26 tmp19 | |
[000497] ----G+------ arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
[000909] -----+------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
[000502] -ACXG+------ \--* ASG int | |
[000501] D----+-N---- \--* LCL_VAR int V25 tmp18 | |
New refCnts for V25: refCnt = 3, refCntWtd = 3 | |
New refCnts for V26: refCnt = 4, refCntWtd = 3.50 | |
New refCnts for V03: refCnt = 9, refCntWtd = 9 | |
*** marking local variables in block BB18 (weight=1 ) | |
[000531] ------------ * STMT void (IL 0x067... ???) | |
[000528] -----+------ | /--* CNS_INT ref null | |
[000530] -A---+------ \--* ASG ref | |
[000529] D----+-N---- \--* LCL_VAR ref V26 tmp19 | |
New refCnts for V26: refCnt = 5, refCntWtd = 4.50 | |
[000535] ------------ * STMT void (IL 0x067... ???) | |
[000532] -----+------ | /--* CNS_INT ref null | |
[000534] -A---+------ \--* ASG ref | |
[000533] D----+-N---- \--* LCL_VAR ref V28 tmp21 | |
New refCnts for V28: refCnt = 5, refCntWtd = 4 | |
[000049] ------------ * STMT void (IL ???... ???) | |
[000527] -----+------ | /--* LCL_VAR int V25 tmp18 | |
[000048] -A---+------ \--* ASG int | |
[000047] D----+-N---- \--* LCL_VAR int V02 loc1 | |
New refCnts for V02: refCnt = 1, refCntWtd = 1 | |
New refCnts for V25: refCnt = 4, refCntWtd = 4 | |
*** marking local variables in block BB19 (weight=1 ) | |
[000055] ------------ * STMT void (IL 0x08A...0x08D) | |
[000052] -----+------ | /--* CNS_INT int -2 | |
[000054] -A-XG+------ \--* ASG int | |
[000053] *--XG+-N---- \--* IND int | |
[000051] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 10, refCntWtd = 10 | |
[000593] ------------ * STMT void (IL 0x092... ???) | |
[000933] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000934] -----+------ | /--* ADD byref | |
[000932] -----+------ | | \--* LCL_VAR byref V00 this | |
[000935] ---XG+-N---- | /--* COMMA byref | |
[000931] ---X-+-N---- | | \--* NULLCHECK byte | |
[000930] -----+------ | | \--* LCL_VAR byref V00 this | |
[000592] -A-XG+------ \--* ASG byref | |
[000591] D----+-N---- \--* LCL_VAR byref V29 tmp22 | |
New refCnts for V29: refCnt = 1, refCntWtd = 2 | |
New refCnts for V00: refCnt = 11, refCntWtd = 11 | |
New refCnts for V00: refCnt = 12, refCntWtd = 12 | |
[000572] ------------ * STMT void (IL 0x092... ???) | |
[000571] ---XG+------ \--* JTRUE void | |
[000569] -----+------ | /--* CNS_INT int 0 | |
[000570] J--XG+-N---- \--* EQ int | |
[000568] *--XG+------ \--* IND bool | |
[000937] -----+------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
[000938] -----+------ \--* ADD byref | |
[000567] -----+------ \--* LCL_VAR byref V29 tmp22 | |
New refCnts for V29: refCnt = 2, refCntWtd = 4 | |
*** marking local variables in block BB20 (weight=1 ) | |
[000619] ------------ * STMT void (IL 0x092... ???) | |
[000942] -----+------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
[000943] -----+------ | /--* ADD byref | |
[000941] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000944] ---XG+-N---- | /--* COMMA byref | |
[000940] ---X-+-N---- | | \--* NULLCHECK byte | |
[000939] -----+------ | | \--* LCL_VAR byref V29 tmp22 | |
[000618] -A-XG+------ \--* ASG byref | |
[000617] D----+-N---- \--* LCL_VAR byref V30 tmp23 | |
New refCnts for V30: refCnt = 1, refCntWtd = 2 | |
New refCnts for V29: refCnt = 3, refCntWtd = 6 | |
New refCnts for V29: refCnt = 4, refCntWtd = 8 | |
[000601] ------------ * STMT void (IL 0x092... ???) | |
[000600] ---XG+------ \--* JTRUE void | |
[000598] -----+------ | /--* CNS_INT ref null | |
[000599] J--XG+-N---- \--* NE int | |
[000597] *--XG+------ \--* IND ref | |
[000596] -----+------ \--* LCL_VAR byref V30 tmp23 | |
New refCnts for V30: refCnt = 2, refCntWtd = 4 | |
*** marking local variables in block BB21 (weight=0.50) | |
[000627] ------------ * STMT void (IL 0x092... ???) | |
[000624] -----+------ | /--* CNS_INT int 0 | |
[000626] -A---+------ \--* ASG int | |
[000622] D----+-N---- \--* LCL_VAR int V32 tmp25 | |
New refCnts for V32: refCnt = 1, refCntWtd = 0.50 | |
[000670] ------------ * STMT void (IL 0x092... ???) | |
[000609] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000669] -A---+------ \--* ASG int | |
[000668] D----+-N---- \--* LCL_VAR int V34 tmp27 | |
New refCnts for V34: refCnt = 1, refCntWtd = 0.50 | |
New refCnts for V02: refCnt = 2, refCntWtd = 1.50 | |
[000675] ------------ * STMT void (IL 0x092... ???) | |
[000674] -----+------ \--* JTRUE void | |
[000672] -----+------ | /--* CNS_INT int 9 | |
[000673] J----+-N---- \--* GE int | |
[000671] -----+------ \--* LCL_VAR int V02 loc1 | |
New refCnts for V02: refCnt = 3, refCntWtd = 2 | |
*** marking local variables in block BB22 (weight=0.50) | |
[000697] ------------ * STMT void (IL 0x092... ???) | |
[000696] -----+------ \--* JTRUE void | |
[000694] -----+------ | /--* CNS_INT int -1 | |
[000695] J----+-N---- \--* LT int | |
[000693] -----+------ \--* LCL_VAR int V34 tmp27 | |
New refCnts for V34: refCnt = 2, refCntWtd = 1 | |
*** marking local variables in block BB23 (weight=1 ) | |
[000713] ------------ * STMT void (IL 0x092... ???) | |
[000710] a---G+------ | /--* IND ref | |
[000959] -----+------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
[000960] -----+------ | | \--* ADD byref | |
[000956] -----+-N---- | | | /--* CNS_INT long 3 | |
[000957] -----+------ | | | /--* LSH long | |
[000955] -----+------ | | | | \--* CAST long <- int | |
[000952] -----+------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
[000950] -----+------ | | | | \--* ADD int | |
[000951] i----+------ | | | | \--* LCL_VAR int V34 tmp27 | |
[000958] -----+------ | | \--* ADD byref | |
[000949] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000961] ---XG+------ | /--* COMMA ref | |
[000954] ---X-+------ | | \--* ARR_BOUNDS_CHECK_Rng void | |
[000708] -----+------ | | | /--* CNS_INT int 1 | |
[000709] -----+------ | | +--* ADD int | |
[000707] -----+------ | | | \--* LCL_VAR int V34 tmp27 | |
[000953] ---X-+------ | | \--* ARR_LENGTH int | |
[000948] -----+------ | | \--* LCL_VAR ref V53 tmp46 | |
[000962] -ACXG+------ | /--* COMMA ref | |
[000699] x---G+------ | | | /--* IND ref | |
[000967] -----+------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
[000706] --CXG+------ | | | /--* COMMA ref | |
[000705] H-CXG+------ | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
[000701] -----+------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
[000702] -----+------ arg1 in rdx | | | | \--* CNS_INT int 0x70A | |
[000947] -ACXG+------ | | \--* ASG ref | |
[000946] D----+-N---- | | \--* LCL_VAR ref V53 tmp46 | |
[000712] -ACXG+------ \--* ASG ref | |
[000711] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
New refCnts for V36: refCnt = 1, refCntWtd = 1 | |
New refCnts for V53: refCnt = 1, refCntWtd = 2 | |
New refCnts for V34: refCnt = 3, refCntWtd = 2 | |
New refCnts for V53: refCnt = 2, refCntWtd = 4 | |
New refCnts for V53: refCnt = 3, refCntWtd = 6 | |
New refCnts for V34: refCnt = 4, refCntWtd = 3 | |
[000723] ------------ * STMT void (IL 0x092... ???) | |
[000714] -----+------ | /--* LCL_VAR ref V36 tmp29 | |
[000722] -A---+------ \--* ASG ref | |
[000721] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
New refCnts for V31: refCnt = 1, refCntWtd = 1 | |
New refCnts for V36: refCnt = 2, refCntWtd = 2 | |
*** marking local variables in block BB24 (weight=1 ) | |
[000682] ------------ * STMT void (IL 0x092... ???) | |
[000679] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
[000678] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
[000681] -AC--+------ \--* ASG ref | |
[000680] D----+-N---- \--* LCL_VAR ref V35 tmp28 | |
New refCnts for V35: refCnt = 1, refCntWtd = 2 | |
[000739] ------------ * STMT void (IL 0x092... ???) | |
[000969] ------------ | /--* CNS_INT ref null | |
[000970] -A---+------ \--* ASG ref | |
[000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
New refCnts for V51: refCnt = 1, refCntWtd = 1 | |
[000760] ------------ * STMT void (IL 0x092... ???) | |
[000757] -----+------ | /--* CNS_INT int 0 | |
[000759] -A---+------ \--* ASG int | |
[000758] D----+-N---- \--* LCL_VAR int V38 tmp31 | |
New refCnts for V38: refCnt = 1, refCntWtd = 1 | |
[000771] ------------ * STMT void (IL 0x092... ???) | |
[000766] -----+------ | /--* CNS_INT int 0x1000000 | |
[000768] -----+------ | /--* OR int | |
[000767] -----+------ | | \--* LCL_VAR int V38 tmp31 | |
[000770] -A-XG+------ \--* ASG int | |
[000769] V--XG+-N---- \--* IND int | |
[000971] -----+------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
[000972] -----+------ \--* ADD byref | |
[000765] -----+------ \--* LCL_VAR ref V35 tmp28 | |
New refCnts for V35: refCnt = 2, refCntWtd = 4 | |
New refCnts for V38: refCnt = 2, refCntWtd = 2 | |
[000751] ------------ * STMT void (IL 0x092... ???) | |
[000677] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000750] -A-XG+------ \--* ASG int | |
[000749] ---XG+-N---- \--* IND int | |
[000973] -----+------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
[000974] -----+------ \--* ADD byref | |
[000748] -----+------ \--* LCL_VAR ref V35 tmp28 | |
New refCnts for V35: refCnt = 3, refCntWtd = 6 | |
New refCnts for V02: refCnt = 4, refCntWtd = 3 | |
[000690] ------------ * STMT void (IL 0x092... ???) | |
[000687] -----+------ | /--* LCL_VAR ref V35 tmp28 | |
[000689] -A---+------ \--* ASG ref | |
[000688] D----+-N---- \--* LCL_VAR ref V31 tmp24 | |
New refCnts for V31: refCnt = 2, refCntWtd = 2 | |
New refCnts for V35: refCnt = 4, refCntWtd = 8 | |
*** marking local variables in block BB25 (weight=1 ) | |
[000728] ------------ * STMT void (IL 0x092... ???) | |
[000725] -----+------ | /--* CNS_INT ref null | |
[000727] -A---+------ \--* ASG ref | |
[000726] D----+-N---- \--* LCL_VAR ref V36 tmp29 | |
New refCnts for V36: refCnt = 3, refCntWtd = 3 | |
[000616] ------------ * STMT void (IL 0x092... ???) | |
[000724] -----+------ | /--* LCL_VAR ref V31 tmp24 | |
[000615] -A-XG+------ \--* ASG ref | |
[000614] *--XG+-N---- \--* IND ref | |
[000608] -----+------ \--* LCL_VAR byref V30 tmp23 | |
New refCnts for V30: refCnt = 3, refCntWtd = 6 | |
New refCnts for V31: refCnt = 3, refCntWtd = 3 | |
*** marking local variables in block BB26 (weight=1 ) | |
[000606] ------------ * STMT void (IL 0x092... ???) | |
[000604] --CXG+------ \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
[000603] -----+------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
[000587] -----+------ arg1 in rdx \--* LCL_VAR int V02 loc1 | |
New refCnts for V30: refCnt = 4, refCntWtd = 8 | |
New refCnts for V02: refCnt = 5, refCntWtd = 4 | |
*** marking local variables in block BB27 (weight=1 ) | |
[000577] ------------ * STMT void (IL 0x092... ???) | |
[000059] -----+------ | /--* LCL_VAR int V02 loc1 | |
[000576] -A-XG+------ \--* ASG int | |
[000575] *--XG+-N---- \--* IND int | |
[000574] -----+------ \--* LCL_VAR byref V29 tmp22 | |
New refCnts for V29: refCnt = 5, refCntWtd = 10 | |
New refCnts for V02: refCnt = 6, refCntWtd = 5 | |
[000582] ------------ * STMT void (IL 0x092... ???) | |
[000579] -----+------ | /--* CNS_INT int 1 | |
[000581] -A-XG+------ \--* ASG bool | |
[000580] *--XG+-N---- \--* IND bool | |
[000979] -----+------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
[000980] -----+------ \--* ADD byref | |
[000578] -----+------ \--* LCL_VAR byref V29 tmp22 | |
New refCnts for V29: refCnt = 6, refCntWtd = 12 | |
*** marking local variables in block BB28 (weight=1 ) | |
[000065] ------------ * STMT void (IL 0x09E...0x09E) | |
[000064] -----+------ \--* RETURN void | |
*** marking local variables in block BB29 (weight=0 ) | |
[000133] ------------ * STMT void (IL 0x071...0x071) | |
[000007] -----+------ | /--* CATCH_ARG ref | |
[000132] -A---+------ \--* ASG ref | |
[000131] D----+-N---- \--* LCL_VAR ref V09 tmp2 | |
New refCnts for V09: refCnt = 1, refCntWtd = 0 | |
[000137] ------------ * STMT void (IL ???... ???) | |
[000134] -----+------ | /--* LCL_VAR ref V09 tmp2 | |
[000136] -A---+------ \--* ASG ref | |
[000135] D----+-N---- \--* LCL_VAR ref V06 loc5 | |
New refCnts for V06: refCnt = 1, refCntWtd = 0 | |
New refCnts for V09: refCnt = 2, refCntWtd = 0 | |
[000142] ------------ * STMT void (IL 0x073...0x076) | |
[000139] -----+------ | /--* CNS_INT int -2 | |
[000141] -A-XG+------ \--* ASG int | |
[000140] *--XG+-N---- \--* IND int | |
[000138] -----+------ \--* LCL_VAR byref V00 this | |
New refCnts for V00: refCnt = 13, refCntWtd = 12 | |
[000149] ------------ * STMT void (IL 0x07B...0x088) | |
[000147] --CXG+------ \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
[000922] -----+------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
[000923] -----+------ | /--* ADD byref | |
[000921] -----+------ | | \--* LCL_VAR byref V00 this | |
[000924] ---XG+-N---- this in rcx +--* COMMA byref | |
[000920] ---X-+-N---- | \--* NULLCHECK byte | |
[000919] -----+------ | \--* LCL_VAR byref V00 this | |
[000146] -----+------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 | |
New refCnts for V00: refCnt = 14, refCntWtd = 12 | |
New refCnts for V00: refCnt = 15, refCntWtd = 12 | |
New refCnts for V09: refCnt = 3, refCntWtd = 0 | |
New refCnts for V00: refCnt = 16, refCntWtd = 13 | |
New refCnts for V00: refCnt = 17, refCntWtd = 14 | |
*************** In optAddCopies() | |
Trying to add a copy for V00 an arg, avg_wtd = 0.41 | |
Referenced in BB01, bbWeight is 1 , which is dominated by BB01, ImportantUse | |
Referenced in BB09, bbWeight is 1 , which is dominated by BB01, ImportantUse | |
Referenced in BB10, bbWeight is 1 , which is dominated by BB01, ImportantUse | |
Referenced in BB19, bbWeight is 1 , which is dominated by BB01, ImportantUse | |
Referenced in BB29, bbWeight is 0 , which is dominated by BB01 | |
lvaGrabTemp returning 55 (V55 tmp48) (a long lifetime temp) called for optAddCopies. | |
Finding the best place to insert the assignment V55=V00 | |
Starting at BB01, bbWeight is 1 , bestWeight is 1 | |
Considering BB01, bbWeight is 1 , bestWeight is 1 | |
new bestBlock | |
Insert copy at the start of BB01 | |
New refCnts for V00: refCnt = 18, refCntWtd = 15 | |
New refCnts for V55: refCnt = 1, refCntWtd = 1 | |
Introducing a new copy for V00 | |
[000984] ------------ /--* LCL_VAR byref V00 this | |
[000986] -A---------- * ASG byref | |
[000985] D------N---- \--* LCL_VAR byref V55 tmp48 | |
Local V05 should not be enregistered because: it is a struct | |
Local V12 should not be enregistered because: it is a struct | |
Local V17 should not be enregistered because: it is a struct | |
Local V18 should not be enregistered because: it is a struct | |
refCnt table for 'MoveNext': | |
V00 this [ byref]: refCnt = 18, refCntWtd = 15 pref [rcx] | |
V29 tmp22 [ byref]: refCnt = 6, refCntWtd = 12 | |
V52 tmp45 [ byref]: refCnt = 5, refCntWtd = 10 | |
V24 tmp17 [ byref]: refCnt = 4, refCntWtd = 8 | |
V30 tmp23 [ byref]: refCnt = 4, refCntWtd = 8 | |
V35 tmp28 [ ref]: refCnt = 4, refCntWtd = 8 | |
V53 tmp46 [ ref]: refCnt = 3, refCntWtd = 6 | |
V12 tmp5 [struct]: refCnt = 3, refCntWtd = 6 | |
V17 tmp10 [struct]: refCnt = 3, refCntWtd = 6 | |
V02 loc1 [ int]: refCnt = 6, refCntWtd = 5 | |
V20 tmp13 [ ref]: refCnt = 5, refCntWtd = 4.50 | |
V26 tmp19 [ ref]: refCnt = 5, refCntWtd = 4.50 | |
V28 tmp21 [ ref]: refCnt = 5, refCntWtd = 4 | |
V01 loc0 [ int]: refCnt = 4, refCntWtd = 4 | |
V19 tmp12 [ bool]: refCnt = 4, refCntWtd = 4 | |
V25 tmp18 [ int]: refCnt = 4, refCntWtd = 4 | |
V15 tmp8 [ short]: refCnt = 2, refCntWtd = 4 | |
V18 tmp11 [struct]: refCnt = 2, refCntWtd = 4 | |
V34 tmp27 [ int]: refCnt = 4, refCntWtd = 3 | |
V21 tmp14 [ ref]: refCnt = 3, refCntWtd = 3 | |
V27 tmp20 [ ref]: refCnt = 3, refCntWtd = 3 | |
V31 tmp24 [ ref]: refCnt = 3, refCntWtd = 3 | |
V36 tmp29 [ ref]: refCnt = 3, refCntWtd = 3 | |
V43 tmp36 [ ref]: refCnt = 3, refCntWtd = 3 | |
V47 tmp40 [ ref]: refCnt = 3, refCntWtd = 3 | |
V44 tmp37 [ int]: refCnt = 3, refCntWtd = 3 | |
V45 tmp38 [ short]: refCnt = 3, refCntWtd = 3 | |
V46 tmp39 [ bool]: refCnt = 3, refCntWtd = 3 | |
V48 tmp41 [ int]: refCnt = 3, refCntWtd = 3 | |
V49 tmp42 [ short]: refCnt = 3, refCntWtd = 3 | |
V50 tmp43 [ bool]: refCnt = 3, refCntWtd = 3 | |
V22 tmp15 [ ref]: refCnt = 3, refCntWtd = 2.50 | |
V05 loc4 [struct]: refCnt = 2, refCntWtd = 2 | |
V23 tmp16 [ int]: refCnt = 2, refCntWtd = 2 | |
V38 tmp31 [ int]: refCnt = 2, refCntWtd = 2 | |
V13 tmp6 [ ref]: refCnt = 1, refCntWtd = 2 | |
V08 tmp1 [ int]: refCnt = 1, refCntWtd = 2 | |
V14 tmp7 [ int]: refCnt = 1, refCntWtd = 2 | |
V39 tmp32 [ ref]: refCnt = 1, refCntWtd = 1 | |
V51 tmp44 [ ref]: refCnt = 1, refCntWtd = 1 | |
V55 tmp48 [ byref]: refCnt = 1, refCntWtd = 1 | |
V40 tmp33 [ int]: refCnt = 1, refCntWtd = 1 | |
V41 tmp34 [ short]: refCnt = 1, refCntWtd = 1 | |
V42 tmp35 [ bool]: refCnt = 1, refCntWtd = 1 | |
V32 tmp25 [ int]: refCnt = 1, refCntWtd = 0.50 | |
V09 tmp2 [ ref]: refCnt = 3, refCntWtd = 0 | |
V06 loc5 [ ref]: refCnt = 1, refCntWtd = 0 | |
V03 loc2 [struct]: refCnt = 9, refCntWtd = 9 | |
V16 tmp9 [struct]: refCnt = 2, refCntWtd = 4 | |
V07 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1 | |
V54 PSPSym [ long]: refCnt = 1, refCntWtd = 1 | |
*************** In optOptimizeBools() | |
*************** In fgDebugCheckBBlist | |
*************** In fgFindOperOrder() | |
*************** In fgSetBlockOrder() | |
The biggest BB has 35 tree nodes | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
( 5, 4) [000987] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000984] ------------ | /--* LCL_VAR byref V00 this | |
N003 ( 5, 4) [000986] -A------R--- \--* ASG byref | |
N002 ( 3, 2) [000985] D------N---- \--* LCL_VAR byref V55 tmp48 | |
***** BB01, stmt 2 | |
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006) | |
N002 ( 3, 2) [000002] *--XG------- | /--* IND int | |
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this | |
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int | |
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 | |
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10} | |
***** BB02, stmt 3 | |
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008) | |
N004 ( 5, 5) [000012] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000011] J------N---- \--* EQ int | |
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 | |
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05} | |
***** BB03, stmt 4 | |
( 4, 12) [000155] ------------ * STMT void (IL 0x00A... ???) | |
N012 ( 1, 1) [000787] ------------ | /--* CNS_INT bool 0 | |
N014 ( 1, 3) [000788] -A------R--- | /--* ASG bool | |
N013 ( 2, 2) [000786] D------N---- | | \--* LCL_VAR bool V46 tmp39 | |
N015 ( 4, 12) [000789] -A---------- \--* COMMA void | |
N008 ( 1, 1) [000783] ------------ | /--* CNS_INT short 0 | |
N010 ( 1, 3) [000784] -A------R--- | /--* ASG short | |
N009 ( 2, 2) [000782] D------N---- | | \--* LCL_VAR short V45 tmp38 | |
N011 ( 3, 9) [000785] -A---------- \--* COMMA void | |
N004 ( 1, 1) [000779] ------------ | /--* CNS_INT int 0 | |
N006 ( 1, 3) [000780] -A------R--- | /--* ASG int | |
N005 ( 1, 1) [000778] D------N---- | | \--* LCL_VAR int V44 tmp37 | |
N007 ( 2, 6) [000781] -A---------- \--* COMMA void | |
N001 ( 1, 1) [000776] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000777] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 5 | |
( 1, 3) [000172] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000169] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000171] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000170] D------N---- \--* LCL_VAR int V44 tmp37 | |
***** BB03, stmt 6 | |
( 1, 3) [000178] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000175] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000177] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000176] D------N---- \--* LCL_VAR ref V43 tmp36 | |
***** BB03, stmt 7 | |
( 1, 3) [000184] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000181] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000183] -A------R--- \--* ASG bool | |
N002 ( 2, 2) [000182] D------N---- \--* LCL_VAR bool V46 tmp39 | |
***** BB03, stmt 8 | |
( 1, 3) [000190] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000187] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000189] -A------R--- \--* ASG short | |
N002 ( 2, 2) [000188] D------N---- \--* LCL_VAR short V45 tmp38 | |
***** BB03, stmt 9 | |
( 24, 20) [000073] ------------ * STMT void (IL ???... ???) | |
N012 ( 2, 2) [000802] -------N---- | /--* LCL_VAR bool V46 tmp39 | |
N014 ( 7, 6) [000803] -A------R--- | /--* ASG bool | |
N013 ( 4, 3) [000801] D------N---- | | \--* LCL_VAR bool V42 tmp35 | |
N015 ( 24, 20) [000804] -A---------- \--* COMMA void | |
N008 ( 2, 2) [000798] -------N---- | /--* LCL_VAR short V45 tmp38 | |
N010 ( 7, 6) [000799] -A------R--- | /--* ASG short | |
N009 ( 4, 3) [000797] D------N---- | | \--* LCL_VAR short V41 tmp34 | |
N011 ( 17, 14) [000800] -A---------- \--* COMMA void | |
N004 ( 1, 1) [000794] -------N---- | /--* LCL_VAR int V44 tmp37 | |
N006 ( 5, 4) [000795] -A------R--- | /--* ASG int | |
N005 ( 3, 2) [000793] D------N---- | | \--* LCL_VAR int V40 tmp33 | |
N007 ( 10, 8) [000796] -A---------- \--* COMMA void | |
N001 ( 1, 1) [000791] -------N---- | /--* LCL_VAR ref V43 tmp36 | |
N003 ( 5, 4) [000792] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
***** BB03, stmt 10 | |
( 4, 12) [000207] ------------ * STMT void (IL 0x010... ???) | |
N012 ( 1, 1) [000817] ------------ | /--* CNS_INT bool 0 | |
N014 ( 1, 3) [000818] -A------R--- | /--* ASG bool | |
N013 ( 2, 2) [000816] D------N---- | | \--* LCL_VAR bool V50 tmp43 | |
N015 ( 4, 12) [000819] -A---------- \--* COMMA void | |
N008 ( 1, 1) [000813] ------------ | /--* CNS_INT short 0 | |
N010 ( 1, 3) [000814] -A------R--- | /--* ASG short | |
N009 ( 2, 2) [000812] D------N---- | | \--* LCL_VAR short V49 tmp42 | |
N011 ( 3, 9) [000815] -A---------- \--* COMMA void | |
N004 ( 1, 1) [000809] ------------ | /--* CNS_INT int 0 | |
N006 ( 1, 3) [000810] -A------R--- | /--* ASG int | |
N005 ( 1, 1) [000808] D------N---- | | \--* LCL_VAR int V48 tmp41 | |
N007 ( 2, 6) [000811] -A---------- \--* COMMA void | |
N001 ( 1, 1) [000806] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000807] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 11 | |
( 5, 4) [000261] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000196] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000260] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
***** BB03, stmt 12 | |
( 5, 4) [000264] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000199] ------------ | /--* CNS_INT int 1 | |
N003 ( 5, 4) [000263] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
***** BB03, stmt 13 | |
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000266] -A------R--- \--* ASG short | |
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8 | |
***** BB03, stmt 14 | |
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40 | |
***** BB03, stmt 15 | |
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000245] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41 | |
***** BB03, stmt 16 | |
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8 | |
N003 ( 1, 3) [000251] -A------R--- \--* ASG short | |
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42 | |
***** BB03, stmt 17 | |
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool | |
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43 | |
***** BB03, stmt 18 | |
( 5, 4) [000220] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000218] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000219] IA------R--- \--* ASG struct (init) | |
N002 ( 3, 2) [000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
***** BB03, stmt 19 | |
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???) | |
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43 | |
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool | |
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool | |
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref | |
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
N032 ( 31, 30) [000852] -A---------- \--* COMMA void | |
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42 | |
N024 ( 8, 8) [000844] -A---------- | /--* ASG short | |
N022 ( 5, 5) [000842] *------N---- | | \--* IND short | |
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref | |
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
N025 ( 23, 22) [000845] -A---------- \--* COMMA void | |
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41 | |
N017 ( 6, 6) [000837] -A---------- | /--* ASG int | |
N015 ( 4, 4) [000835] *------N---- | | \--* IND int | |
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref | |
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
N018 ( 15, 14) [000838] -A---------- \--* COMMA void | |
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40 | |
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref | |
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref | |
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref | |
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45 | |
N011 ( 9, 8) [000831] -A---------- \--* COMMA void | |
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref | |
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref | |
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45 | |
***** BB03, stmt 20 | |
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9 | |
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000274] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 [+0] Fseq[_value] | |
***** BB03, stmt 21 | |
( 7, 5) [000084] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5 | |
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4 | |
***** BB03, stmt 22 | |
( 5, 4) [000290] ------------ * STMT void (IL 0x01A... ???) | |
N001 ( 1, 1) [000288] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000289] IA------R--- \--* ASG struct (init) | |
N002 ( 3, 2) [000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
***** BB03, stmt 23 | |
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???) | |
N003 ( 6, 7) [000295] x---G------- | /--* IND struct | |
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref | |
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 [+0] Fseq[_value] | |
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11 | |
***** BB03, stmt 24 | |
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???) | |
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11 | |
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000308] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 [+0] Fseq[_value] | |
***** BB03, stmt 25 | |
( 7, 5) [000093] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10 | |
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB03, stmt 26 | |
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref | |
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB03, stmt 27 | |
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000339] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000338] J------N---- \--* NE int | |
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13 | |
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08} | |
***** BB04, stmt 28 | |
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool | |
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07} | |
***** BB05, stmt 29 | |
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???) | |
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 | |
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref | |
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14 | |
***** BB05, stmt 30 | |
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14 | |
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB05, stmt 31 | |
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000357] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000356] J------N---- \--* EQ int | |
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14 | |
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08} | |
***** BB06, stmt 32 | |
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int | |
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref | |
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15 | |
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int | |
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16 | |
***** BB06, stmt 33 | |
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0 | |
N005 ( 10, 9) [000422] N----------- | /--* NE int | |
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000 | |
N003 ( 5, 7) [000420] ------------ | | \--* AND int | |
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16 | |
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool | |
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB07 [022..023), preds={BB05} succs={BB08} | |
***** BB07, stmt 34 | |
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???) | |
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0 | |
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int | |
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 | |
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool | |
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12 | |
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11} | |
***** BB08, stmt 35 | |
( 1, 3) [000400] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000397] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000399] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000398] D------N---- \--* LCL_VAR ref V20 tmp13 | |
***** BB08, stmt 36 | |
( 5, 4) [000404] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000401] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000403] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000402] D------N---- \--* LCL_VAR ref V22 tmp15 | |
***** BB08, stmt 37 | |
( 5, 5) [000102] ------------ * STMT void (IL ???... ???) | |
N004 ( 5, 5) [000101] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000100] J------N---- \--* NE int | |
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12 | |
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28} | |
***** BB09, stmt 38 | |
( 1, 3) [000109] ------------ * STMT void (IL 0x02B...0x02E) | |
N001 ( 1, 1) [000106] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000108] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000107] D------N---- \--* LCL_VAR int V01 loc0 | |
***** BB09, stmt 39 | |
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F) | |
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0 | |
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 40 | |
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036) | |
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2 | |
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy) | |
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct | |
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N004 ( 3, 3) [000870] ------------ \--* ADD byref | |
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this | |
***** BB09, stmt 41 | |
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???) | |
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N005 ( 3, 3) [000875] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this | |
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this | |
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 42 | |
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???) | |
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1 | |
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool | |
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool | |
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
N003 ( 2, 2) [000879] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17 | |
***** BB09, stmt 43 | |
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???) | |
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N010 ( 3, 3) [000884] ------------ | /--* ADD byref | |
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 | |
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte | |
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 | |
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this | |
------------ BB10 [04B..067), preds={BB02} succs={BB11} | |
***** BB10, stmt 44 | |
( 10, 8) [000020] ------------ * STMT void (IL 0x04B...0x051) | |
N004 ( 6, 5) [000016] *--XG------- | /--* IND struct | |
N002 ( 1, 1) [000893] ------------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N003 ( 3, 3) [000894] ------------ | | \--* ADD byref | |
N001 ( 1, 1) [000015] ------------ | | \--* LCL_VAR byref V00 this | |
N006 ( 10, 8) [000019] -A-XG---R--- \--* ASG struct (copy) | |
N005 ( 3, 2) [000017] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB10, stmt 45 | |
( 8, 7) [000027] ------------ * STMT void (IL 0x052...0x059) | |
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 | |
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) | |
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct | |
N003 ( 1, 1) [000895] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N004 ( 3, 3) [000896] ------------ \--* ADD byref | |
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this | |
***** BB10, stmt 46 | |
( 5, 4) [000032] ------------ * STMT void (IL 0x05E...0x061) | |
N001 ( 1, 1) [000029] ------------ | /--* CNS_INT int -1 | |
N003 ( 5, 4) [000031] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000030] D------N---- \--* LCL_VAR int V08 tmp1 | |
***** BB10, stmt 47 | |
( 1, 3) [000037] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000034] ------------ | /--* CNS_INT int -1 | |
N003 ( 1, 3) [000036] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000035] D------N---- \--* LCL_VAR int V01 loc0 | |
***** BB10, stmt 48 | |
( 5, 4) [000040] ------------ * STMT void (IL ???...0x062) | |
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 | |
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this | |
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13} | |
***** BB11, stmt 49 | |
( 3, 4) [000462] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 3, 4) [000458] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
N003 ( 3, 4) [000461] -A--G---R--- \--* ASG ref | |
N002 ( 1, 1) [000460] D------N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB11, stmt 50 | |
( 5, 5) [000467] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 5, 5) [000466] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000464] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000465] J------N---- \--* NE int | |
N001 ( 1, 1) [000463] ------------ \--* LCL_VAR ref V26 tmp19 | |
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18} | |
***** BB12, stmt 51 | |
( 3, 4) [000526] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 3, 4) [000522] ----G------- | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
N003 ( 3, 4) [000525] -A--G---R--- \--* ASG int | |
N002 ( 1, 1) [000524] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17} | |
***** BB13, stmt 52 | |
( 18, 18) [000476] ------------ * STMT void (IL 0x067... ???) | |
N009 ( 18, 18) [000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
N005 ( 1, 1) [000469] ------------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 | |
N006 ( 3, 10) [000470] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
N011 ( 18, 18) [000475] -AC-G---R--- \--* ASG ref | |
N010 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp20 | |
***** BB13, stmt 53 | |
( 1, 3) [000481] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000478] ------------ | /--* LCL_VAR ref V27 tmp20 | |
N003 ( 1, 3) [000480] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000479] D------N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB13, stmt 54 | |
( 5, 5) [000485] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 5, 5) [000484] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000482] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000483] J------N---- \--* EQ int | |
N001 ( 1, 1) [000477] ------------ \--* LCL_VAR ref V27 tmp20 | |
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16} | |
***** BB14, stmt 55 | |
( 10, 16) [000544] ------------ * STMT void (IL 0x067... ???) | |
N009 ( 10, 16) [000543] ---XGO------ \--* JTRUE void | |
N007 ( 1, 4) [000556] ------------ | /--* CNS_INT int 0x1000000 | |
N008 ( 8, 14) [000557] J--XGO-N---- \--* EQ int | |
N005 ( 1, 4) [000554] ------------ | /--* CNS_INT int 0x11000000 | |
N006 ( 6, 9) [000555] ---XGO------ \--* AND int | |
N004 ( 4, 4) [000553] V--XGO-N---- \--* IND int | |
N002 ( 1, 1) [000903] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N003 ( 2, 2) [000904] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000506] ------------ \--* LCL_VAR ref V28 tmp21 | |
------------ BB15 [067..068), preds={BB14} succs={BB16} | |
***** BB15, stmt 56 | |
( 15, 7) [000550] ------------ * STMT void (IL 0x067... ???) | |
N005 ( 15, 7) [000548] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
N003 ( 1, 1) [000547] ------------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 | |
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18} | |
***** BB16, stmt 57 | |
( 4, 4) [000516] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 4, 4) [000562] ---XG------- | /--* IND int | |
N002 ( 1, 1) [000907] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
N003 ( 2, 2) [000908] -------N---- | | \--* ADD byref | |
N001 ( 1, 1) [000510] ------------ | | \--* LCL_VAR ref V28 tmp21 | |
N006 ( 4, 4) [000515] -A-XG---R--- \--* ASG int | |
N005 ( 1, 1) [000514] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB17 [067..068), preds={BB13} succs={BB18} | |
***** BB17, stmt 58 | |
( 28, 27) [000503] ------------ * STMT void (IL 0x067... ???) | |
N012 ( 28, 27) [000499] --CXG------- | /--* CALLV stub int IValueTaskSource`1.GetResult | |
N006 ( 1, 1) [000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19 | |
N007 ( 4, 5) [000497] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
N008 ( 3, 10) [000909] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
N014 ( 28, 27) [000502] -ACXG---R--- \--* ASG int | |
N013 ( 1, 1) [000501] D------N---- \--* LCL_VAR int V25 tmp18 | |
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19} | |
***** BB18, stmt 59 | |
( 1, 3) [000531] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000528] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000530] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000529] D------N---- \--* LCL_VAR ref V26 tmp19 | |
***** BB18, stmt 60 | |
( 1, 3) [000535] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000532] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000534] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000533] D------N---- \--* LCL_VAR ref V28 tmp21 | |
***** BB18, stmt 61 | |
( 1, 3) [000049] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000527] ------------ | /--* LCL_VAR int V25 tmp18 | |
N003 ( 1, 3) [000048] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 | |
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27} | |
***** BB19, stmt 62 | |
( 5, 4) [000055] ------------ * STMT void (IL 0x08A...0x08D) | |
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 | |
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this | |
***** BB19, stmt 63 | |
( 5, 5) [000593] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 1, 1) [000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N005 ( 3, 3) [000934] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000932] ------------ | | \--* LCL_VAR byref V00 this | |
N006 ( 5, 5) [000935] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000931] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000930] ------------ | | \--* LCL_VAR byref V00 this | |
N008 ( 5, 5) [000592] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000591] D------N---- \--* LCL_VAR byref V29 tmp22 | |
***** BB19, stmt 64 | |
( 9, 9) [000572] ------------ * STMT void (IL 0x092... ???) | |
N007 ( 9, 9) [000571] ---XG------- \--* JTRUE void | |
N005 ( 1, 1) [000569] ------------ | /--* CNS_INT int 0 | |
N006 ( 7, 7) [000570] J--XG--N---- \--* EQ int | |
N004 ( 5, 5) [000568] *--XG------- \--* IND bool | |
N002 ( 1, 1) [000937] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
N003 ( 2, 2) [000938] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000567] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26} | |
***** BB20, stmt 65 | |
( 5, 5) [000619] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 1, 1) [000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N005 ( 3, 3) [000943] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000941] ------------ | | \--* LCL_VAR byref V29 tmp22 | |
N006 ( 5, 5) [000944] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000940] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000939] ------------ | | \--* LCL_VAR byref V29 tmp22 | |
N008 ( 5, 5) [000618] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23 | |
***** BB20, stmt 66 | |
( 7, 6) [000601] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 7, 6) [000600] ---XG------- \--* JTRUE void | |
N003 ( 1, 1) [000598] ------------ | /--* CNS_INT ref null | |
N004 ( 5, 4) [000599] J--XG--N---- \--* NE int | |
N002 ( 3, 2) [000597] *--XG------- \--* IND ref | |
N001 ( 1, 1) [000596] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24} | |
***** BB21, stmt 67 | |
( 5, 4) [000627] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000624] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000626] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000622] D------N---- \--* LCL_VAR int V32 tmp25 | |
***** BB21, stmt 68 | |
( 1, 3) [000670] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000609] ------------ | /--* LCL_VAR int V02 loc1 | |
N003 ( 1, 3) [000669] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000668] D------N---- \--* LCL_VAR int V34 tmp27 | |
***** BB21, stmt 69 | |
( 5, 5) [000675] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 5, 5) [000674] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000672] ------------ | /--* CNS_INT int 9 | |
N003 ( 3, 3) [000673] J------N---- \--* GE int | |
N001 ( 1, 1) [000671] ------------ \--* LCL_VAR int V02 loc1 | |
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24} | |
***** BB22, stmt 70 | |
( 5, 5) [000697] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 5, 5) [000696] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000694] ------------ | /--* CNS_INT int -1 | |
N003 ( 3, 3) [000695] J------N---- \--* LT int | |
N001 ( 1, 1) [000693] ------------ \--* LCL_VAR int V34 tmp27 | |
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25} | |
***** BB23, stmt 71 | |
( 41, 55) [000713] ------------ * STMT void (IL 0x092... ???) | |
N031 ( 8, 9) [000710] a---G------- | /--* IND ref | |
N029 ( 1, 1) [000959] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
N030 ( 7, 8) [000960] -------N---- | | \--* ADD byref | |
N026 ( 1, 1) [000956] -------N---- | | | /--* CNS_INT long 3 | |
N027 ( 5, 6) [000957] -------N---- | | | /--* LSH long | |
N025 ( 4, 5) [000955] ------------ | | | | \--* CAST long <- int | |
N023 ( 1, 1) [000952] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
N024 ( 3, 3) [000950] ------------ | | | | \--* ADD int | |
N022 ( 1, 1) [000951] i----------- | | | | \--* LCL_VAR int V34 tmp27 | |
N028 ( 6, 7) [000958] -------N---- | | \--* ADD byref | |
N021 ( 1, 1) [000949] ------------ | | \--* LCL_VAR ref V53 tmp46 | |
N032 ( 18, 22) [000961] ---XG------- | /--* COMMA ref | |
N020 ( 10, 13) [000954] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void | |
N016 ( 1, 1) [000708] ------------ | | | /--* CNS_INT int 1 | |
N017 ( 3, 3) [000709] ------------ | | +--* ADD int | |
N015 ( 1, 1) [000707] ------------ | | | \--* LCL_VAR int V34 tmp27 | |
N019 ( 3, 3) [000953] ---X-------- | | \--* ARR_LENGTH int | |
N018 ( 1, 1) [000948] ------------ | | \--* LCL_VAR ref V53 tmp46 | |
N033 ( 41, 55) [000962] -ACXG------- | /--* COMMA ref | |
N011 ( 5, 12) [000699] x---G------- | | | /--* IND ref | |
N010 ( 3, 10) [000967] ------------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
N012 ( 23, 33) [000706] --CXG------- | | | /--* COMMA ref | |
N009 ( 18, 21) [000705] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
N005 ( 3, 10) [000701] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
N006 ( 1, 4) [000702] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A | |
N014 ( 23, 33) [000947] -ACXG---R--- | | \--* ASG ref | |
N013 ( 1, 1) [000946] D------N---- | | \--* LCL_VAR ref V53 tmp46 | |
N035 ( 41, 55) [000712] -ACXG---R--- \--* ASG ref | |
N034 ( 1, 1) [000711] D------N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB23, stmt 72 | |
( 1, 3) [000723] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000714] ------------ | /--* LCL_VAR ref V36 tmp29 | |
N003 ( 1, 3) [000722] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000721] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25} | |
***** BB24, stmt 73 | |
( 17, 16) [000682] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 17, 16) [000679] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
N003 ( 3, 10) [000678] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
N007 ( 17, 16) [000681] -AC-----R--- \--* ASG ref | |
N006 ( 1, 1) [000680] D------N---- \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 74 | |
( 5, 4) [000739] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000969] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000970] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
***** BB24, stmt 75 | |
( 5, 4) [000760] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000757] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000759] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000758] D------N---- \--* LCL_VAR int V38 tmp31 | |
***** BB24, stmt 76 | |
( 10, 12) [000771] ------------ * STMT void (IL 0x092... ???) | |
N002 ( 1, 4) [000766] ------------ | /--* CNS_INT int 0x1000000 | |
N003 ( 5, 7) [000768] ------------ | /--* OR int | |
N001 ( 3, 2) [000767] ------------ | | \--* LCL_VAR int V38 tmp31 | |
N008 ( 10, 12) [000770] -A-XGO--R--- \--* ASG int | |
N007 ( 4, 4) [000769] V--XGO-N---- \--* IND int | |
N005 ( 1, 1) [000971] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N006 ( 2, 2) [000972] -------N---- \--* ADD byref | |
N004 ( 1, 1) [000765] ------------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 77 | |
( 6, 6) [000751] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 1, 1) [000677] ------------ | /--* LCL_VAR int V02 loc1 | |
N006 ( 6, 6) [000750] -A-XG------- \--* ASG int | |
N004 ( 4, 4) [000749] ---XG--N---- \--* IND int | |
N002 ( 1, 1) [000973] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
N003 ( 2, 2) [000974] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000748] ------------ \--* LCL_VAR ref V35 tmp28 | |
***** BB24, stmt 78 | |
( 1, 3) [000690] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000687] ------------ | /--* LCL_VAR ref V35 tmp28 | |
N003 ( 1, 3) [000689] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000688] D------N---- \--* LCL_VAR ref V31 tmp24 | |
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28} | |
***** BB25, stmt 79 | |
( 1, 3) [000728] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000725] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000727] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000726] D------N---- \--* LCL_VAR ref V36 tmp29 | |
***** BB25, stmt 80 | |
( 5, 4) [000616] ------------ * STMT void (IL 0x092... ???) | |
N003 ( 1, 1) [000724] ------------ | /--* LCL_VAR ref V31 tmp24 | |
N004 ( 5, 4) [000615] -A-XG------- \--* ASG ref | |
N002 ( 3, 2) [000614] *--XG--N---- \--* IND ref | |
N001 ( 1, 1) [000608] ------------ \--* LCL_VAR byref V30 tmp23 | |
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28} | |
***** BB26, stmt 81 | |
( 16, 10) [000606] ------------ * STMT void (IL 0x092... ???) | |
N008 ( 16, 10) [000604] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
N004 ( 1, 1) [000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 | |
N005 ( 1, 1) [000587] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 | |
------------ BB27 [092..093), preds={BB19} succs={BB28} | |
***** BB27, stmt 82 | |
( 5, 4) [000577] ------------ * STMT void (IL 0x092... ???) | |
N003 ( 1, 1) [000059] ------------ | /--* LCL_VAR int V02 loc1 | |
N004 ( 5, 4) [000576] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000575] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000574] ------------ \--* LCL_VAR byref V29 tmp22 | |
***** BB27, stmt 83 | |
( 7, 7) [000582] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 1, 1) [000579] ------------ | /--* CNS_INT int 1 | |
N006 ( 7, 7) [000581] -A-XG------- \--* ASG bool | |
N004 ( 5, 5) [000580] *--XG--N---- \--* IND bool | |
N002 ( 1, 1) [000979] ------------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
N003 ( 2, 2) [000980] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000578] ------------ \--* LCL_VAR byref V29 tmp22 | |
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={} | |
***** BB28, stmt 84 | |
( 0, 0) [000065] ------------ * STMT void (IL 0x09E...0x09E) | |
N001 ( 0, 0) [000064] ------------ \--* RETURN void | |
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28} | |
***** BB29, stmt 85 | |
( 5, 4) [000133] ------------ * STMT void (IL 0x071...0x071) | |
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref | |
N003 ( 5, 4) [000132] -A---O--R--- \--* ASG ref | |
N002 ( 3, 2) [000131] D------N---- \--* LCL_VAR ref V09 tmp2 | |
***** BB29, stmt 86 | |
( 7, 5) [000137] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000134] ------------ | /--* LCL_VAR ref V09 tmp2 | |
N003 ( 7, 5) [000136] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000135] D------N---- \--* LCL_VAR ref V06 loc5 | |
***** BB29, stmt 87 | |
( 5, 4) [000142] ------------ * STMT void (IL 0x073...0x076) | |
N003 ( 1, 1) [000139] ------------ | /--* CNS_INT int -2 | |
N004 ( 5, 4) [000141] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000140] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000138] ------------ \--* LCL_VAR byref V00 this | |
***** BB29, stmt 88 | |
( 22, 15) [000149] ------------ * STMT void (IL 0x07B...0x088) | |
N013 ( 22, 15) [000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
N007 ( 1, 1) [000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N008 ( 3, 3) [000923] ------------ | /--* ADD byref | |
N006 ( 1, 1) [000921] ------------ | | \--* LCL_VAR byref V00 this | |
N009 ( 5, 5) [000924] ---XG--N---- this in rcx +--* COMMA byref | |
N005 ( 2, 2) [000920] ---X---N---- | \--* NULLCHECK byte | |
N004 ( 1, 1) [000919] ------------ | \--* LCL_VAR byref V00 this | |
N010 ( 3, 2) [000146] ------------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In SsaBuilder::Build() | |
[SsaBuilder] Max block count is 30. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table | |
index eTry, eHnd | |
0 :: - Try at BB02..BB18 [007..071), Handler at BB29..BB29 [071..08A) | |
[SsaBuilder] Topologically sorted the graph. | |
[SsaBuilder::ComputeImmediateDom] | |
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...) | |
*************** In SsaBuilder::InsertPhiFunctions() | |
*************** In fgLocalVarLiveness() | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(1)={V00 } + ByrefExposed + GcHeap | |
DEF(2)={ V01 V55} | |
BB02 USE(1)={V01} | |
DEF(0)={ } | |
BB03 USE(0)={ } + ByrefExposed + GcHeap | |
DEF(21)={V52 V12 V17 V20 V15 V18 V43 V47 V44 V45 V46 V48 V49 V50 V05 V13 V14 V39 V40 V41 V42} + ByrefExposed + GcHeap | |
BB04 USE(0)={ } | |
DEF(1)={V19} | |
BB05 USE(1)={V20 } | |
DEF(2)={ V21 V22} | |
BB06 USE(1)={ V22 } + ByrefExposed + GcHeap | |
DEF(2)={V19 V23} + ByrefExposed + GcHeap | |
BB07 USE(1)={V20 } + ByrefExposed + GcHeap | |
DEF(1)={ V19} + ByrefExposed* + GcHeap* | |
BB08 USE(1)={ V19 } | |
DEF(2)={V20 V22} | |
BB09 USE(1)={V00 } + ByrefExposed + GcHeap | |
DEF(2)={ V24 V01} + ByrefExposed* + GcHeap* | |
BB10 USE(1)={V00 } + ByrefExposed + GcHeap | |
DEF(2)={ V01 V08} + ByrefExposed + GcHeap | |
BB11 USE(0)={ } + ByrefExposed | |
DEF(1)={V26} | |
BB12 USE(0)={ } + ByrefExposed | |
DEF(1)={V25} | |
BB13 USE(1)={V26 } | |
DEF(2)={ V28 V27} | |
BB14 USE(1)={V28} + ByrefExposed + GcHeap | |
DEF(0)={ } + ByrefExposed + GcHeap | |
BB15 USE(1)={V28} + ByrefExposed + GcHeap | |
DEF(0)={ } + ByrefExposed* + GcHeap* | |
BB16 USE(1)={V28 } + ByrefExposed + GcHeap | |
DEF(1)={ V25} | |
BB17 USE(1)={V26 } + ByrefExposed + GcHeap | |
DEF(1)={ V25} + ByrefExposed* + GcHeap* | |
BB18 USE(1)={ V25} | |
DEF(3)={V02 V26 V28 } | |
BB19 USE(1)={V00 } + ByrefExposed + GcHeap | |
DEF(1)={ V29} + ByrefExposed + GcHeap | |
BB20 USE(1)={V29 } + ByrefExposed + GcHeap | |
DEF(1)={ V30} | |
BB21 USE(1)={V02 } | |
DEF(2)={ V34 V32} | |
BB22 USE(1)={V34} | |
DEF(0)={ } | |
BB23 USE(1)={ V34 } + ByrefExposed + GcHeap | |
DEF(3)={V53 V31 V36} + ByrefExposed* + GcHeap* | |
BB24 USE(1)={ V02 } + ByrefExposed + GcHeap | |
DEF(4)={V35 V31 V38 V51} + ByrefExposed + GcHeap | |
BB25 USE(2)={V30 V31 } + ByrefExposed + GcHeap | |
DEF(1)={ V36} + ByrefExposed + GcHeap | |
BB26 USE(2)={V30 V02} + ByrefExposed + GcHeap | |
DEF(0)={ } + ByrefExposed* + GcHeap* | |
BB27 USE(2)={V29 V02} + ByrefExposed + GcHeap | |
DEF(0)={ } + ByrefExposed + GcHeap | |
BB28 USE(0)={} | |
DEF(0)={} | |
BB29 USE(1)={V00 } + ByrefExposed + GcHeap | |
DEF(2)={ V09 V06} + ByrefExposed* + GcHeap* | |
** Memory liveness computed, GcHeap states and ByrefExposed states diverge | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (1)={V00 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V01} + ByrefExposed + GcHeap | |
BB02 IN (2)={V00 V01} + ByrefExposed + GcHeap | |
OUT(1)={V00 } + ByrefExposed + GcHeap | |
BB03 IN (1)={V00 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V20} + ByrefExposed + GcHeap | |
BB04 IN (1)={V00 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V19} + ByrefExposed + GcHeap | |
BB05 IN (2)={V00 V20 } + ByrefExposed + GcHeap | |
OUT(3)={V00 V20 V22} + ByrefExposed + GcHeap | |
BB06 IN (2)={V00 V22} + ByrefExposed + GcHeap | |
OUT(2)={V00 V19 } + ByrefExposed + GcHeap | |
BB07 IN (2)={V00 V20 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V19} + ByrefExposed + GcHeap | |
BB08 IN (2)={V00 V19} + ByrefExposed + GcHeap | |
OUT(1)={V00 } + ByrefExposed + GcHeap | |
BB09 IN (1)={V00} + ByrefExposed + GcHeap | |
OUT(1)={V00} + ByrefExposed + GcHeap | |
BB10 IN (1)={V00} + ByrefExposed + GcHeap | |
OUT(1)={V00} + ByrefExposed + GcHeap | |
BB11 IN (1)={V00 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V26} + ByrefExposed + GcHeap | |
BB12 IN (1)={V00 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V25} + ByrefExposed + GcHeap | |
BB13 IN (2)={V00 V26 } + ByrefExposed + GcHeap | |
OUT(3)={V00 V26 V28} + ByrefExposed + GcHeap | |
BB14 IN (2)={V00 V28} + ByrefExposed + GcHeap | |
OUT(2)={V00 V28} + ByrefExposed + GcHeap | |
BB15 IN (2)={V00 V28} + ByrefExposed + GcHeap | |
OUT(2)={V00 V28} + ByrefExposed + GcHeap | |
BB16 IN (2)={V00 V28 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V25} + ByrefExposed + GcHeap | |
BB17 IN (2)={V00 V26 } + ByrefExposed + GcHeap | |
OUT(2)={V00 V25} + ByrefExposed + GcHeap | |
BB18 IN (2)={V00 V25} + ByrefExposed + GcHeap | |
OUT(2)={V00 V02 } + ByrefExposed + GcHeap | |
BB19 IN (2)={V00 V02} + ByrefExposed + GcHeap | |
OUT(2)={ V29 V02} + ByrefExposed + GcHeap | |
BB20 IN (2)={V29 V02} + ByrefExposed + GcHeap | |
OUT(2)={ V30 V02} + ByrefExposed + GcHeap | |
BB21 IN (2)={V30 V02 } + ByrefExposed + GcHeap | |
OUT(3)={V30 V02 V34} + ByrefExposed + GcHeap | |
BB22 IN (3)={V30 V02 V34} + ByrefExposed + GcHeap | |
OUT(3)={V30 V02 V34} + ByrefExposed + GcHeap | |
BB23 IN (2)={V30 V34 } + ByrefExposed + GcHeap | |
OUT(2)={V30 V31} + ByrefExposed + GcHeap | |
BB24 IN (2)={V30 V02 } + ByrefExposed + GcHeap | |
OUT(2)={V30 V31} + ByrefExposed + GcHeap | |
BB25 IN (2)={V30 V31} + ByrefExposed + GcHeap | |
OUT(0)={ } | |
BB26 IN (2)={V30 V02} + ByrefExposed + GcHeap | |
OUT(0)={ } | |
BB27 IN (2)={V29 V02} + ByrefExposed + GcHeap | |
OUT(0)={ } | |
BB28 IN (0)={} | |
OUT(0)={} | |
BB29 IN (1)={V00} + ByrefExposed + GcHeap | |
OUT(0)={ } | |
Local V00 should not be enregistered because: live in/out of a handler | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000987] in BB01 as useless: | |
( 5, 4) [000987] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000984] ------------ | /--* LCL_VAR byref V00 this | |
N003 ( 5, 4) [000986] -A------R--- \--* ASG byref | |
N002 ( 3, 2) [000985] D------N---- \--* LCL_VAR byref V55 tmp48 | |
New refCnts for V55: refCnt = 0, refCntWtd = 0 | |
New refCnts for V00: refCnt = 17, refCntWtd = 14 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000290] in BB03 as useless: | |
( 5, 4) [000290] ------------ * STMT void (IL 0x01A... ???) | |
N001 ( 1, 1) [000288] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000289] IA------R--- \--* ASG struct (init) | |
N002 ( 3, 2) [000287] D------N---- \--* LCL_VAR struct V17 tmp10 | |
New refCnts for V17: refCnt = 2, refCntWtd = 4 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000220] in BB03 as useless: | |
( 5, 4) [000220] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000218] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000219] IA------R--- \--* ASG struct (init) | |
N002 ( 3, 2) [000217] D------N---- \--* LCL_VAR struct V12 tmp5 | |
New refCnts for V12: refCnt = 2, refCntWtd = 4 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000264] in BB03 as useless: | |
( 5, 4) [000264] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000199] ------------ | /--* CNS_INT int 1 | |
N003 ( 5, 4) [000263] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000262] D------N---- \--* LCL_VAR int V14 tmp7 | |
New refCnts for V14: refCnt = 0, refCntWtd = 0 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000261] in BB03 as useless: | |
( 5, 4) [000261] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000196] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000260] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000259] D------N---- \--* LCL_VAR ref V13 tmp6 | |
New refCnts for V13: refCnt = 0, refCntWtd = 0 | |
Removing tree [000818] in BB03 as useless | |
N012 ( 1, 1) [000817] ------------ /--* CNS_INT bool 0 | |
N014 ( 1, 3) [000818] -A------R--- * ASG bool | |
N013 ( 2, 2) [000816] D------N---- \--* LCL_VAR bool V50 tmp43 | |
New refCnts for V50: refCnt = 2, refCntWtd = 2 | |
Removing tree [000814] in BB03 as useless | |
N008 ( 1, 1) [000813] ------------ /--* CNS_INT short 0 | |
N010 ( 1, 3) [000814] -A------R--- * ASG short | |
N009 ( 2, 2) [000812] D------N---- \--* LCL_VAR short V49 tmp42 | |
New refCnts for V49: refCnt = 2, refCntWtd = 2 | |
Removing tree [000810] in BB03 as useless | |
N004 ( 1, 1) [000809] ------------ /--* CNS_INT int 0 | |
N006 ( 1, 3) [000810] -A------R--- * ASG int | |
N005 ( 1, 1) [000808] D------N---- \--* LCL_VAR int V48 tmp41 | |
New refCnts for V48: refCnt = 2, refCntWtd = 2 | |
Removing tree [000807] in BB03 as useless | |
N001 ( 1, 1) [000806] ------------ /--* CNS_INT ref null | |
N003 ( 1, 3) [000807] -A------R--- * ASG ref | |
N002 ( 1, 1) [000805] D------N---- \--* LCL_VAR ref V47 tmp40 | |
New refCnts for V47: refCnt = 2, refCntWtd = 2 | |
fgComputeLife modified tree: | |
N006 ( 0, 0) [000818] ------------ /--* NOP void | |
N007 ( 0, 0) [000819] ------------ * COMMA void | |
N004 ( 0, 0) [000814] ------------ | /--* NOP void | |
N005 ( 0, 0) [000815] ------------ \--* COMMA void | |
N002 ( 0, 0) [000810] ------------ | /--* NOP void | |
N003 ( 0, 0) [000811] ------------ \--* COMMA void | |
N001 ( 0, 0) [000807] ------------ \--* NOP void | |
Removing tree [000803] in BB03 as useless | |
N012 ( 2, 2) [000802] -------N---- /--* LCL_VAR bool V46 tmp39 | |
N014 ( 7, 6) [000803] -A------R--- * ASG bool | |
N013 ( 4, 3) [000801] D------N---- \--* LCL_VAR bool V42 tmp35 | |
New refCnts for V42: refCnt = 0, refCntWtd = 0 | |
New refCnts for V46: refCnt = 2, refCntWtd = 2 | |
Removing tree [000799] in BB03 as useless | |
N008 ( 2, 2) [000798] -------N---- /--* LCL_VAR short V45 tmp38 | |
N010 ( 7, 6) [000799] -A------R--- * ASG short | |
N009 ( 4, 3) [000797] D------N---- \--* LCL_VAR short V41 tmp34 | |
New refCnts for V41: refCnt = 0, refCntWtd = 0 | |
New refCnts for V45: refCnt = 2, refCntWtd = 2 | |
Removing tree [000795] in BB03 as useless | |
N004 ( 1, 1) [000794] -------N---- /--* LCL_VAR int V44 tmp37 | |
N006 ( 5, 4) [000795] -A------R--- * ASG int | |
N005 ( 3, 2) [000793] D------N---- \--* LCL_VAR int V40 tmp33 | |
New refCnts for V40: refCnt = 0, refCntWtd = 0 | |
New refCnts for V44: refCnt = 2, refCntWtd = 2 | |
Removing tree [000792] in BB03 as useless | |
N001 ( 1, 1) [000791] -------N---- /--* LCL_VAR ref V43 tmp36 | |
N003 ( 5, 4) [000792] -A------R--- * ASG ref | |
N002 ( 3, 2) [000790] D------N---- \--* LCL_VAR ref V39 tmp32 | |
New refCnts for V39: refCnt = 0, refCntWtd = 0 | |
New refCnts for V43: refCnt = 2, refCntWtd = 2 | |
fgComputeLife modified tree: | |
N006 ( 0, 0) [000803] ------------ /--* NOP void | |
N007 ( 0, 0) [000804] ------------ * COMMA void | |
N004 ( 0, 0) [000799] ------------ | /--* NOP void | |
N005 ( 0, 0) [000800] ------------ \--* COMMA void | |
N002 ( 0, 0) [000795] ------------ | /--* NOP void | |
N003 ( 0, 0) [000796] ------------ \--* COMMA void | |
N001 ( 0, 0) [000792] ------------ \--* NOP void | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000190] in BB03 as useless: | |
( 1, 3) [000190] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000187] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000189] -A------R--- \--* ASG short | |
N002 ( 2, 2) [000188] D------N---- \--* LCL_VAR short V45 tmp38 | |
New refCnts for V45: refCnt = 1, refCntWtd = 1 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000184] in BB03 as useless: | |
( 1, 3) [000184] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000181] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000183] -A------R--- \--* ASG bool | |
N002 ( 2, 2) [000182] D------N---- \--* LCL_VAR bool V46 tmp39 | |
New refCnts for V46: refCnt = 1, refCntWtd = 1 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000178] in BB03 as useless: | |
( 1, 3) [000178] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000175] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000177] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000176] D------N---- \--* LCL_VAR ref V43 tmp36 | |
New refCnts for V43: refCnt = 1, refCntWtd = 1 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000172] in BB03 as useless: | |
( 1, 3) [000172] ------------ * STMT void (IL 0x00A... ???) | |
N001 ( 1, 1) [000169] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000171] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000170] D------N---- \--* LCL_VAR int V44 tmp37 | |
New refCnts for V44: refCnt = 1, refCntWtd = 1 | |
Removing tree [000788] in BB03 as useless | |
N012 ( 1, 1) [000787] ------------ /--* CNS_INT bool 0 | |
N014 ( 1, 3) [000788] -A------R--- * ASG bool | |
N013 ( 2, 2) [000786] D------N---- \--* LCL_VAR bool V46 tmp39 | |
New refCnts for V46: refCnt = 0, refCntWtd = 0 | |
Removing tree [000784] in BB03 as useless | |
N008 ( 1, 1) [000783] ------------ /--* CNS_INT short 0 | |
N010 ( 1, 3) [000784] -A------R--- * ASG short | |
N009 ( 2, 2) [000782] D------N---- \--* LCL_VAR short V45 tmp38 | |
New refCnts for V45: refCnt = 0, refCntWtd = 0 | |
Removing tree [000780] in BB03 as useless | |
N004 ( 1, 1) [000779] ------------ /--* CNS_INT int 0 | |
N006 ( 1, 3) [000780] -A------R--- * ASG int | |
N005 ( 1, 1) [000778] D------N---- \--* LCL_VAR int V44 tmp37 | |
New refCnts for V44: refCnt = 0, refCntWtd = 0 | |
Removing tree [000777] in BB03 as useless | |
N001 ( 1, 1) [000776] ------------ /--* CNS_INT ref null | |
N003 ( 1, 3) [000777] -A------R--- * ASG ref | |
N002 ( 1, 1) [000775] D------N---- \--* LCL_VAR ref V43 tmp36 | |
New refCnts for V43: refCnt = 0, refCntWtd = 0 | |
fgComputeLife modified tree: | |
N006 ( 0, 0) [000788] ------------ /--* NOP void | |
N007 ( 0, 0) [000789] ------------ * COMMA void | |
N004 ( 0, 0) [000784] ------------ | /--* NOP void | |
N005 ( 0, 0) [000785] ------------ \--* COMMA void | |
N002 ( 0, 0) [000780] ------------ | /--* NOP void | |
N003 ( 0, 0) [000781] ------------ \--* COMMA void | |
N001 ( 0, 0) [000777] ------------ \--* NOP void | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000404] in BB08 as useless: | |
( 5, 4) [000404] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000401] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000403] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000402] D------N---- \--* LCL_VAR ref V22 tmp15 | |
New refCnts for V22: refCnt = 2, refCntWtd = 1.50 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000400] in BB08 as useless: | |
( 1, 3) [000400] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000397] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000399] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000398] D------N---- \--* LCL_VAR ref V20 tmp13 | |
New refCnts for V20: refCnt = 4, refCntWtd = 3.50 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000109] in BB09 as useless: | |
( 1, 3) [000109] ------------ * STMT void (IL 0x02B...0x02E) | |
N001 ( 1, 1) [000106] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000108] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000107] D------N---- \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 3, refCntWtd = 3 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000037] in BB10 as useless: | |
( 1, 3) [000037] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000034] ------------ | /--* CNS_INT int -1 | |
N003 ( 1, 3) [000036] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000035] D------N---- \--* LCL_VAR int V01 loc0 | |
New refCnts for V01: refCnt = 2, refCntWtd = 2 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000032] in BB10 as useless: | |
( 5, 4) [000032] ------------ * STMT void (IL 0x05E...0x061) | |
N001 ( 1, 1) [000029] ------------ | /--* CNS_INT int -1 | |
N003 ( 5, 4) [000031] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000030] D------N---- \--* LCL_VAR int V08 tmp1 | |
New refCnts for V08: refCnt = 0, refCntWtd = 0 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000535] in BB18 as useless: | |
( 1, 3) [000535] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000532] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000534] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000533] D------N---- \--* LCL_VAR ref V28 tmp21 | |
New refCnts for V28: refCnt = 4, refCntWtd = 3 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000531] in BB18 as useless: | |
( 1, 3) [000531] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000528] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000530] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000529] D------N---- \--* LCL_VAR ref V26 tmp19 | |
New refCnts for V26: refCnt = 4, refCntWtd = 3.50 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000627] in BB21 as useless: | |
( 5, 4) [000627] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000624] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000626] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000622] D------N---- \--* LCL_VAR int V32 tmp25 | |
New refCnts for V32: refCnt = 0, refCntWtd = 0 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000739] in BB24 as useless: | |
( 5, 4) [000739] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000969] ------------ | /--* CNS_INT ref null | |
N003 ( 5, 4) [000970] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000968] D------N---- \--* LCL_VAR ref V51 tmp44 | |
New refCnts for V51: refCnt = 0, refCntWtd = 0 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000728] in BB25 as useless: | |
( 1, 3) [000728] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000725] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000727] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000726] D------N---- \--* LCL_VAR ref V36 tmp29 | |
New refCnts for V36: refCnt = 2, refCntWtd = 2 | |
top level assign | |
removing stmt with no side effects | |
Removing statement [000137] in BB29 as useless: | |
( 7, 5) [000137] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000134] ------------ | /--* LCL_VAR ref V09 tmp2 | |
N003 ( 7, 5) [000136] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000135] D------N---- \--* LCL_VAR ref V06 loc5 | |
New refCnts for V06: refCnt = 0, refCntWtd = 0 | |
New refCnts for V09: refCnt = 2, refCntWtd = 0 | |
In fgLocalVarLiveness, setting lvaSortAgain back to false (set during dead-code removal) | |
Inserting phi functions: | |
Inserting phi definition for ByrefExposed at start of BB29. | |
Inserting phi definition for GcHeap at start of BB29. | |
Inserting phi definition for V31 at start of BB25. | |
Inserting phi definition for ByrefExposed at start of BB25. | |
Inserting phi definition for GcHeap at start of BB25. | |
Inserting phi definition for V25 at start of BB18. | |
Inserting phi definition for ByrefExposed at start of BB16. | |
Inserting phi definition for GcHeap at start of BB16. | |
Inserting phi definition for ByrefExposed at start of BB18. | |
Inserting phi definition for GcHeap at start of BB18. | |
Inserting phi definition for V19 at start of BB08. | |
Inserting phi definition for ByrefExposed at start of BB08. | |
Inserting phi definition for GcHeap at start of BB08. | |
Inserting phi definition for ByrefExposed at start of BB11. | |
Inserting phi definition for GcHeap at start of BB11. | |
*************** In SsaBuilder::RenameVariables() | |
After fgSsaBuild: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006) | |
N002 ( 3, 2) [000002] *--XG------- | /--* IND int | |
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int | |
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 | |
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10} | |
***** BB02, stmt 2 | |
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008) | |
N004 ( 5, 5) [000012] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000011] J------N---- \--* EQ int | |
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) | |
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05} | |
***** BB03, stmt 3 | |
( 0, 0) [000155] ------------ * STMT void (IL 0x00A... ???) | |
N006 ( 0, 0) [000788] ------------ | /--* NOP void | |
N007 ( 0, 0) [000789] ------------ \--* COMMA void | |
N004 ( 0, 0) [000784] ------------ | /--* NOP void | |
N005 ( 0, 0) [000785] ------------ \--* COMMA void | |
N002 ( 0, 0) [000780] ------------ | /--* NOP void | |
N003 ( 0, 0) [000781] ------------ \--* COMMA void | |
N001 ( 0, 0) [000777] ------------ \--* NOP void | |
***** BB03, stmt 4 | |
( 0, 0) [000073] ------------ * STMT void (IL ???... ???) | |
N006 ( 0, 0) [000803] ------------ | /--* NOP void | |
N007 ( 0, 0) [000804] ------------ \--* COMMA void | |
N004 ( 0, 0) [000799] ------------ | /--* NOP void | |
N005 ( 0, 0) [000800] ------------ \--* COMMA void | |
N002 ( 0, 0) [000795] ------------ | /--* NOP void | |
N003 ( 0, 0) [000796] ------------ \--* COMMA void | |
N001 ( 0, 0) [000792] ------------ \--* NOP void | |
***** BB03, stmt 5 | |
( 0, 0) [000207] ------------ * STMT void (IL 0x010... ???) | |
N006 ( 0, 0) [000818] ------------ | /--* NOP void | |
N007 ( 0, 0) [000819] ------------ \--* COMMA void | |
N004 ( 0, 0) [000814] ------------ | /--* NOP void | |
N005 ( 0, 0) [000815] ------------ \--* COMMA void | |
N002 ( 0, 0) [000810] ------------ | /--* NOP void | |
N003 ( 0, 0) [000811] ------------ \--* COMMA void | |
N001 ( 0, 0) [000807] ------------ \--* NOP void | |
***** BB03, stmt 6 | |
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000266] -A------R--- \--* ASG short | |
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8 d:3 | |
***** BB03, stmt 7 | |
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40 d:3 | |
***** BB03, stmt 8 | |
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000245] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41 d:3 | |
***** BB03, stmt 9 | |
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8 u:3 (last use) | |
N003 ( 1, 3) [000251] -A------R--- \--* ASG short | |
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42 d:3 | |
***** BB03, stmt 10 | |
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool | |
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43 d:3 | |
***** BB03, stmt 11 | |
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???) | |
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43 u:3 (last use) | |
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool | |
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool | |
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref | |
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 (last use) | |
N032 ( 31, 30) [000852] -A---------- \--* COMMA void | |
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42 u:3 (last use) | |
N024 ( 8, 8) [000844] -A---------- | /--* ASG short | |
N022 ( 5, 5) [000842] *------N---- | | \--* IND short | |
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref | |
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N025 ( 23, 22) [000845] -A---------- \--* COMMA void | |
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41 u:3 (last use) | |
N017 ( 6, 6) [000837] -A---------- | /--* ASG int | |
N015 ( 4, 4) [000835] *------N---- | | \--* IND int | |
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref | |
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N018 ( 15, 14) [000838] -A---------- \--* COMMA void | |
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40 u:3 (last use) | |
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref | |
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref | |
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref | |
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N011 ( 9, 8) [000831] -A---------- \--* COMMA void | |
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref | |
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref | |
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45 d:3 | |
***** BB03, stmt 12 | |
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9 | |
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000274] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 d:3[+0] Fseq[_value] | |
***** BB03, stmt 13 | |
( 7, 5) [000084] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5 u:3 (last use) | |
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4 d:3 | |
***** BB03, stmt 14 | |
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???) | |
N003 ( 6, 7) [000295] x---G------- | /--* IND struct | |
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref | |
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 u:3[+0] Fseq[_value] (last use) | |
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11 d:3 | |
***** BB03, stmt 15 | |
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???) | |
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11 u:3 (last use) | |
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000308] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 d:3[+0] Fseq[_value] | |
***** BB03, stmt 16 | |
( 7, 5) [000093] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10 u:3 (last use) | |
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB03, stmt 17 | |
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref | |
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13 d:3 | |
***** BB03, stmt 18 | |
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000339] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000338] J------N---- \--* NE int | |
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13 u:3 | |
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08} | |
***** BB04, stmt 19 | |
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool | |
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12 d:5 | |
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07} | |
***** BB05, stmt 20 | |
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???) | |
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 u:3 | |
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref | |
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14 d:3 | |
***** BB05, stmt 21 | |
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14 u:3 | |
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15 d:3 | |
***** BB05, stmt 22 | |
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000357] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000356] J------N---- \--* EQ int | |
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14 u:3 (last use) | |
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08} | |
***** BB06, stmt 23 | |
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int | |
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref | |
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15 u:3 (last use) | |
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int | |
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16 d:3 | |
***** BB06, stmt 24 | |
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0 | |
N005 ( 10, 9) [000422] N----------- | /--* NE int | |
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000 | |
N003 ( 5, 7) [000420] ------------ | | \--* AND int | |
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16 u:3 (last use) | |
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool | |
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12 d:4 | |
------------ BB07 [022..023), preds={BB05} succs={BB08} | |
***** BB07, stmt 25 | |
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???) | |
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0 | |
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int | |
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 u:3 (last use) | |
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool | |
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12 d:3 | |
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11} | |
***** BB08, stmt 26 | |
( 3, 3) [000999] ------------ * STMT void (IL ???... ???) | |
N007 ( 3, 3) [000997] ------------ | * PHI bool | |
N001 ( 0, 0) [001004] ------------ | /--* PHI_ARG bool V19 tmp12 u:5 | |
N002 ( 0, 0) [001002] ------------ | +--* PHI_ARG bool V19 tmp12 u:4 | |
N003 ( 0, 0) [001000] ------------ | \--* PHI_ARG bool V19 tmp12 u:3 | |
N009 ( 3, 3) [000998] -A------R--- \--* ASG bool | |
N008 ( 1, 1) [000996] D------N---- \--* LCL_VAR bool V19 tmp12 d:6 | |
***** BB08, stmt 27 | |
( 5, 5) [000102] ------------ * STMT void (IL ???... ???) | |
N004 ( 5, 5) [000101] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000100] J------N---- \--* NE int | |
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12 u:6 (last use) | |
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28} | |
***** BB09, stmt 28 | |
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F) | |
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0 | |
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB09, stmt 29 | |
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036) | |
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2 | |
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy) | |
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct | |
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N004 ( 3, 3) [000870] ------------ \--* ADD byref | |
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB09, stmt 30 | |
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???) | |
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N005 ( 3, 3) [000875] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17 d:3 | |
***** BB09, stmt 31 | |
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???) | |
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1 | |
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool | |
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool | |
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
N003 ( 2, 2) [000879] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17 u:3 | |
***** BB09, stmt 32 | |
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???) | |
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N010 ( 3, 3) [000884] ------------ | /--* ADD byref | |
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 u:3 (last use) | |
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte | |
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 u:3 | |
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 | |
------------ BB10 [04B..067), preds={BB02} succs={BB11} | |
***** BB10, stmt 33 | |
( 10, 8) [000020] ------------ * STMT void (IL 0x04B...0x051) | |
N004 ( 6, 5) [000016] *--XG------- | /--* IND struct | |
N002 ( 1, 1) [000893] ------------ | | | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N003 ( 3, 3) [000894] ------------ | | \--* ADD byref | |
N001 ( 1, 1) [000015] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N006 ( 10, 8) [000019] -A-XG---R--- \--* ASG struct (copy) | |
N005 ( 3, 2) [000017] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB10, stmt 34 | |
( 8, 7) [000027] ------------ * STMT void (IL 0x052...0x059) | |
N001 ( 1, 1) [000024] ------------ | /--* CNS_INT int 0 | |
N006 ( 8, 7) [000026] IA-XG---R--- \--* ASG struct (init) | |
N005 ( 6, 5) [000025] ---XG--N---- \--* BLK(16) struct | |
N003 ( 1, 1) [000895] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N004 ( 3, 3) [000896] ------------ \--* ADD byref | |
N002 ( 1, 1) [000021] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB10, stmt 35 | |
( 5, 4) [000040] ------------ * STMT void (IL ???...0x062) | |
N003 ( 1, 1) [000033] ------------ | /--* CNS_INT int -1 | |
N004 ( 5, 4) [000039] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000038] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000028] ------------ \--* LCL_VAR byref V00 this u:2 | |
------------ BB11 [067..071) -> BB13 (cond), preds={BB08,BB10} succs={BB12,BB13} | |
***** BB11, stmt 36 | |
( 3, 4) [000462] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 3, 4) [000458] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
N003 ( 3, 4) [000461] -A--G---R--- \--* ASG ref | |
N002 ( 1, 1) [000460] D------N---- \--* LCL_VAR ref V26 tmp19 d:3 | |
***** BB11, stmt 37 | |
( 5, 5) [000467] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 5, 5) [000466] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000464] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000465] J------N---- \--* NE int | |
N001 ( 1, 1) [000463] ------------ \--* LCL_VAR ref V26 tmp19 u:3 | |
------------ BB12 [067..068) -> BB18 (always), preds={BB11} succs={BB18} | |
***** BB12, stmt 38 | |
( 3, 4) [000526] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 3, 4) [000522] ----G------- | /--* LCL_FLD int V03 loc2 [+8] Fseq[_value, _result] | |
N003 ( 3, 4) [000525] -A--G---R--- \--* ASG int | |
N002 ( 1, 1) [000524] D------N---- \--* LCL_VAR int V25 tmp18 d:5 | |
------------ BB13 [067..068) -> BB17 (cond), preds={BB11} succs={BB14,BB17} | |
***** BB13, stmt 39 | |
( 18, 18) [000476] ------------ * STMT void (IL 0x067... ???) | |
N009 ( 18, 18) [000473] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
N005 ( 1, 1) [000469] ------------ arg1 in rdx | | +--* LCL_VAR ref V26 tmp19 u:3 | |
N006 ( 3, 10) [000470] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
N011 ( 18, 18) [000475] -AC-G---R--- \--* ASG ref | |
N010 ( 1, 1) [000474] D------N---- \--* LCL_VAR ref V27 tmp20 d:3 | |
***** BB13, stmt 40 | |
( 1, 3) [000481] ------------ * STMT void (IL 0x067... ???) | |
N001 ( 1, 1) [000478] ------------ | /--* LCL_VAR ref V27 tmp20 u:3 | |
N003 ( 1, 3) [000480] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000479] D------N---- \--* LCL_VAR ref V28 tmp21 d:3 | |
***** BB13, stmt 41 | |
( 5, 5) [000485] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 5, 5) [000484] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000482] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000483] J------N---- \--* EQ int | |
N001 ( 1, 1) [000477] ------------ \--* LCL_VAR ref V27 tmp20 u:3 (last use) | |
------------ BB14 [067..068) -> BB16 (cond), preds={BB13} succs={BB15,BB16} | |
***** BB14, stmt 42 | |
( 10, 16) [000544] ------------ * STMT void (IL 0x067... ???) | |
N009 ( 10, 16) [000543] ---XGO------ \--* JTRUE void | |
N007 ( 1, 4) [000556] ------------ | /--* CNS_INT int 0x1000000 | |
N008 ( 8, 14) [000557] J--XGO-N---- \--* EQ int | |
N005 ( 1, 4) [000554] ------------ | /--* CNS_INT int 0x11000000 | |
N006 ( 6, 9) [000555] ---XGO------ \--* AND int | |
N004 ( 4, 4) [000553] V--XGO-N---- \--* IND int | |
N002 ( 1, 1) [000903] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N003 ( 2, 2) [000904] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000506] ------------ \--* LCL_VAR ref V28 tmp21 u:3 | |
------------ BB15 [067..068), preds={BB14} succs={BB16} | |
***** BB15, stmt 43 | |
( 15, 7) [000550] ------------ * STMT void (IL 0x067... ???) | |
N005 ( 15, 7) [000548] --CXG------- \--* CALL void TaskAwaiter.HandleNonSuccessAndDebuggerNotification | |
N003 ( 1, 1) [000547] ------------ arg0 in rcx \--* LCL_VAR ref V28 tmp21 u:3 | |
------------ BB16 [067..068) -> BB18 (always), preds={BB14,BB15} succs={BB18} | |
***** BB16, stmt 44 | |
( 4, 4) [000516] ------------ * STMT void (IL 0x067... ???) | |
N004 ( 4, 4) [000562] ---XG------- | /--* IND int | |
N002 ( 1, 1) [000907] ------------ | | | /--* CNS_INT long 56 field offset Fseq[m_result] | |
N003 ( 2, 2) [000908] -------N---- | | \--* ADD byref | |
N001 ( 1, 1) [000510] ------------ | | \--* LCL_VAR ref V28 tmp21 u:3 (last use) | |
N006 ( 4, 4) [000515] -A-XG---R--- \--* ASG int | |
N005 ( 1, 1) [000514] D------N---- \--* LCL_VAR int V25 tmp18 d:4 | |
------------ BB17 [067..068), preds={BB13} succs={BB18} | |
***** BB17, stmt 45 | |
( 28, 27) [000503] ------------ * STMT void (IL 0x067... ???) | |
N012 ( 28, 27) [000499] --CXG------- | /--* CALLV stub int IValueTaskSource`1.GetResult | |
N006 ( 1, 1) [000487] ------------ this in rcx | | +--* LCL_VAR ref V26 tmp19 u:3 (last use) | |
N007 ( 4, 5) [000497] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
N008 ( 3, 10) [000909] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0038 ftn REG r11 | |
N014 ( 28, 27) [000502] -ACXG---R--- \--* ASG int | |
N013 ( 1, 1) [000501] D------N---- \--* LCL_VAR int V25 tmp18 d:3 | |
------------ BB18 [???..???), preds={BB12,BB16,BB17} succs={BB19} | |
***** BB18, stmt 46 | |
( 3, 3) [000995] ------------ * STMT void (IL ???... ???) | |
N007 ( 3, 3) [000993] ------------ | * PHI int | |
N001 ( 0, 0) [001010] ------------ | /--* PHI_ARG int V25 tmp18 u:5 | |
N002 ( 0, 0) [001008] ------------ | +--* PHI_ARG int V25 tmp18 u:4 | |
N003 ( 0, 0) [001006] ------------ | \--* PHI_ARG int V25 tmp18 u:3 | |
N009 ( 3, 3) [000994] -A------R--- \--* ASG int | |
N008 ( 1, 1) [000992] D------N---- \--* LCL_VAR int V25 tmp18 d:6 | |
***** BB18, stmt 47 | |
( 1, 3) [000049] ------------ * STMT void (IL ???... ???) | |
N001 ( 1, 1) [000527] ------------ | /--* LCL_VAR int V25 tmp18 u:6 (last use) | |
N003 ( 1, 3) [000048] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000047] D------N---- \--* LCL_VAR int V02 loc1 d:3 | |
------------ BB19 [08A..09E) -> BB27 (cond), preds={BB18} succs={BB20,BB27} | |
***** BB19, stmt 48 | |
( 5, 4) [000055] ------------ * STMT void (IL 0x08A...0x08D) | |
N003 ( 1, 1) [000052] ------------ | /--* CNS_INT int -2 | |
N004 ( 5, 4) [000054] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000053] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000051] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB19, stmt 49 | |
( 5, 5) [000593] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 1, 1) [000933] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N005 ( 3, 3) [000934] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000932] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) | |
N006 ( 5, 5) [000935] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000931] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000930] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N008 ( 5, 5) [000592] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000591] D------N---- \--* LCL_VAR byref V29 tmp22 d:3 | |
***** BB19, stmt 50 | |
( 9, 9) [000572] ------------ * STMT void (IL 0x092... ???) | |
N007 ( 9, 9) [000571] ---XG------- \--* JTRUE void | |
N005 ( 1, 1) [000569] ------------ | /--* CNS_INT int 0 | |
N006 ( 7, 7) [000570] J--XG--N---- \--* EQ int | |
N004 ( 5, 5) [000568] *--XG------- \--* IND bool | |
N002 ( 1, 1) [000937] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
N003 ( 2, 2) [000938] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000567] ------------ \--* LCL_VAR byref V29 tmp22 u:3 | |
------------ BB20 [092..093) -> BB26 (cond), preds={BB19} succs={BB21,BB26} | |
***** BB20, stmt 51 | |
( 5, 5) [000619] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 1, 1) [000942] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N005 ( 3, 3) [000943] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000941] ------------ | | \--* LCL_VAR byref V29 tmp22 u:3 (last use) | |
N006 ( 5, 5) [000944] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000940] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000939] ------------ | | \--* LCL_VAR byref V29 tmp22 u:3 | |
N008 ( 5, 5) [000618] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23 d:3 | |
***** BB20, stmt 52 | |
( 7, 6) [000601] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 7, 6) [000600] ---XG------- \--* JTRUE void | |
N003 ( 1, 1) [000598] ------------ | /--* CNS_INT ref null | |
N004 ( 5, 4) [000599] J--XG--N---- \--* NE int | |
N002 ( 3, 2) [000597] *--XG------- \--* IND ref | |
N001 ( 1, 1) [000596] ------------ \--* LCL_VAR byref V30 tmp23 u:3 | |
------------ BB21 [092..093) -> BB24 (cond), preds={BB20} succs={BB22,BB24} | |
***** BB21, stmt 53 | |
( 1, 3) [000670] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000609] ------------ | /--* LCL_VAR int V02 loc1 u:3 | |
N003 ( 1, 3) [000669] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000668] D------N---- \--* LCL_VAR int V34 tmp27 d:3 | |
***** BB21, stmt 54 | |
( 5, 5) [000675] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 5, 5) [000674] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000672] ------------ | /--* CNS_INT int 9 | |
N003 ( 3, 3) [000673] J------N---- \--* GE int | |
N001 ( 1, 1) [000671] ------------ \--* LCL_VAR int V02 loc1 u:3 | |
------------ BB22 [092..093) -> BB24 (cond), preds={BB21} succs={BB23,BB24} | |
***** BB22, stmt 55 | |
( 5, 5) [000697] ------------ * STMT void (IL 0x092... ???) | |
N004 ( 5, 5) [000696] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000694] ------------ | /--* CNS_INT int -1 | |
N003 ( 3, 3) [000695] J------N---- \--* LT int | |
N001 ( 1, 1) [000693] ------------ \--* LCL_VAR int V34 tmp27 u:3 | |
------------ BB23 [092..093) -> BB25 (always), preds={BB22} succs={BB25} | |
***** BB23, stmt 56 | |
( 41, 55) [000713] ------------ * STMT void (IL 0x092... ???) | |
N031 ( 8, 9) [000710] a---G------- | /--* IND ref | |
N029 ( 1, 1) [000959] ------------ | | | /--* CNS_INT long 16 Fseq[#FirstElem] | |
N030 ( 7, 8) [000960] -------N---- | | \--* ADD byref | |
N026 ( 1, 1) [000956] -------N---- | | | /--* CNS_INT long 3 | |
N027 ( 5, 6) [000957] -------N---- | | | /--* LSH long | |
N025 ( 4, 5) [000955] ------------ | | | | \--* CAST long <- int | |
N023 ( 1, 1) [000952] ------------ | | | | | /--* CNS_INT int 1 Fseq[#ConstantIndex] | |
N024 ( 3, 3) [000950] ------------ | | | | \--* ADD int | |
N022 ( 1, 1) [000951] i----------- | | | | \--* LCL_VAR int V34 tmp27 u:3 (last use) | |
N028 ( 6, 7) [000958] -------N---- | | \--* ADD byref | |
N021 ( 1, 1) [000949] ------------ | | \--* LCL_VAR ref V53 tmp46 u:3 (last use) | |
N032 ( 18, 22) [000961] ---XG------- | /--* COMMA ref | |
N020 ( 10, 13) [000954] ---X-------- | | \--* ARR_BOUNDS_CHECK_Rng void | |
N016 ( 1, 1) [000708] ------------ | | | /--* CNS_INT int 1 | |
N017 ( 3, 3) [000709] ------------ | | +--* ADD int | |
N015 ( 1, 1) [000707] ------------ | | | \--* LCL_VAR int V34 tmp27 u:3 | |
N019 ( 3, 3) [000953] ---X-------- | | \--* ARR_LENGTH int | |
N018 ( 1, 1) [000948] ------------ | | \--* LCL_VAR ref V53 tmp46 u:3 | |
N033 ( 41, 55) [000962] -ACXG------- | /--* COMMA ref | |
N011 ( 5, 12) [000699] x---G------- | | | /--* IND ref | |
N010 ( 3, 10) [000967] ------------ | | | | \--* CNS_INT(h) long 0x1fa2d4626b8 static Fseq[Int32Tasks] | |
N012 ( 23, 33) [000706] --CXG------- | | | /--* COMMA ref | |
N009 ( 18, 21) [000705] H-CXG------- | | | | \--* CALL help long HELPER.CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE | |
N005 ( 3, 10) [000701] ------------ arg0 in rcx | | | | +--* CNS_INT long 0x7ffc0d5c3020 | |
N006 ( 1, 4) [000702] ------------ arg1 in rdx | | | | \--* CNS_INT int 0x70A | |
N014 ( 23, 33) [000947] -ACXG---R--- | | \--* ASG ref | |
N013 ( 1, 1) [000946] D------N---- | | \--* LCL_VAR ref V53 tmp46 d:3 | |
N035 ( 41, 55) [000712] -ACXG---R--- \--* ASG ref | |
N034 ( 1, 1) [000711] D------N---- \--* LCL_VAR ref V36 tmp29 d:3 | |
***** BB23, stmt 57 | |
( 1, 3) [000723] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000714] ------------ | /--* LCL_VAR ref V36 tmp29 u:3 (last use) | |
N003 ( 1, 3) [000722] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000721] D------N---- \--* LCL_VAR ref V31 tmp24 d:3 | |
------------ BB24 [092..093), preds={BB21,BB22} succs={BB25} | |
***** BB24, stmt 58 | |
( 17, 16) [000682] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 17, 16) [000679] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
N003 ( 3, 10) [000678] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 token | |
N007 ( 17, 16) [000681] -AC-----R--- \--* ASG ref | |
N006 ( 1, 1) [000680] D------N---- \--* LCL_VAR ref V35 tmp28 d:3 | |
***** BB24, stmt 59 | |
( 5, 4) [000760] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000757] ------------ | /--* CNS_INT int 0 | |
N003 ( 5, 4) [000759] -A------R--- \--* ASG int | |
N002 ( 3, 2) [000758] D------N---- \--* LCL_VAR int V38 tmp31 d:3 | |
***** BB24, stmt 60 | |
( 10, 12) [000771] ------------ * STMT void (IL 0x092... ???) | |
N002 ( 1, 4) [000766] ------------ | /--* CNS_INT int 0x1000000 | |
N003 ( 5, 7) [000768] ------------ | /--* OR int | |
N001 ( 3, 2) [000767] ------------ | | \--* LCL_VAR int V38 tmp31 u:3 (last use) | |
N008 ( 10, 12) [000770] -A-XGO--R--- \--* ASG int | |
N007 ( 4, 4) [000769] V--XGO-N---- \--* IND int | |
N005 ( 1, 1) [000971] ------------ | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N006 ( 2, 2) [000972] -------N---- \--* ADD byref | |
N004 ( 1, 1) [000765] ------------ \--* LCL_VAR ref V35 tmp28 u:3 | |
***** BB24, stmt 61 | |
( 6, 6) [000751] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 1, 1) [000677] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) | |
N006 ( 6, 6) [000750] -A-XG------- \--* ASG int | |
N004 ( 4, 4) [000749] ---XG--N---- \--* IND int | |
N002 ( 1, 1) [000973] ------------ | /--* CNS_INT long 56 field offset Fseq[m_result] | |
N003 ( 2, 2) [000974] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000748] ------------ \--* LCL_VAR ref V35 tmp28 u:3 | |
***** BB24, stmt 62 | |
( 1, 3) [000690] ------------ * STMT void (IL 0x092... ???) | |
N001 ( 1, 1) [000687] ------------ | /--* LCL_VAR ref V35 tmp28 u:3 (last use) | |
N003 ( 1, 3) [000689] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000688] D------N---- \--* LCL_VAR ref V31 tmp24 d:4 | |
------------ BB25 [???..???) -> BB28 (always), preds={BB23,BB24} succs={BB28} | |
***** BB25, stmt 63 | |
( 2, 3) [000991] ------------ * STMT void (IL ???... ???) | |
N005 ( 2, 2) [000989] ------------ | * PHI ref | |
N001 ( 0, 0) [001014] ------------ | /--* PHI_ARG ref V31 tmp24 u:4 | |
N002 ( 0, 0) [001012] ------------ | \--* PHI_ARG ref V31 tmp24 u:3 | |
N007 ( 2, 3) [000990] -A------R--- \--* ASG ref | |
N006 ( 1, 1) [000988] D------N---- \--* LCL_VAR ref V31 tmp24 d:5 | |
***** BB25, stmt 64 | |
( 5, 4) [000616] ------------ * STMT void (IL 0x092... ???) | |
N003 ( 1, 1) [000724] ------------ | /--* LCL_VAR ref V31 tmp24 u:5 (last use) | |
N004 ( 5, 4) [000615] -A-XG------- \--* ASG ref | |
N002 ( 3, 2) [000614] *--XG--N---- \--* IND ref | |
N001 ( 1, 1) [000608] ------------ \--* LCL_VAR byref V30 tmp23 u:3 (last use) | |
------------ BB26 [092..093) -> BB28 (always), preds={BB20} succs={BB28} | |
***** BB26, stmt 65 | |
( 16, 10) [000606] ------------ * STMT void (IL 0x092... ???) | |
N008 ( 16, 10) [000604] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.SetExistingTaskResult | |
N004 ( 1, 1) [000603] ------------ this in rcx +--* LCL_VAR byref V30 tmp23 u:3 (last use) | |
N005 ( 1, 1) [000587] ------------ arg1 in rdx \--* LCL_VAR int V02 loc1 u:3 (last use) | |
------------ BB27 [092..093), preds={BB19} succs={BB28} | |
***** BB27, stmt 66 | |
( 5, 4) [000577] ------------ * STMT void (IL 0x092... ???) | |
N003 ( 1, 1) [000059] ------------ | /--* LCL_VAR int V02 loc1 u:3 (last use) | |
N004 ( 5, 4) [000576] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000575] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000574] ------------ \--* LCL_VAR byref V29 tmp22 u:3 | |
***** BB27, stmt 67 | |
( 7, 7) [000582] ------------ * STMT void (IL 0x092... ???) | |
N005 ( 1, 1) [000579] ------------ | /--* CNS_INT int 1 | |
N006 ( 7, 7) [000581] -A-XG------- \--* ASG bool | |
N004 ( 5, 5) [000580] *--XG--N---- \--* IND bool | |
N002 ( 1, 1) [000979] ------------ | /--* CNS_INT long 4 field offset Fseq[_haveResult] | |
N003 ( 2, 2) [000980] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000578] ------------ \--* LCL_VAR byref V29 tmp22 u:3 (last use) | |
------------ BB28 [09E..09F) (return), preds={BB09,BB29,BB25,BB26,BB27} succs={} | |
***** BB28, stmt 68 | |
( 0, 0) [000065] ------------ * STMT void (IL 0x09E...0x09E) | |
N001 ( 0, 0) [000064] ------------ \--* RETURN void | |
------------ BB29 [071..08A) -> BB28 (cret), preds={} succs={BB28} | |
***** BB29, stmt 69 | |
( 5, 4) [000133] ------------ * STMT void (IL 0x071...0x071) | |
N001 ( 1, 1) [000007] -----O------ | /--* CATCH_ARG ref | |
N003 ( 5, 4) [000132] -A---O--R--- \--* ASG ref | |
N002 ( 3, 2) [000131] D------N---- \--* LCL_VAR ref V09 tmp2 d:3 | |
***** BB29, stmt 70 | |
( 5, 4) [000142] ------------ * STMT void (IL 0x073...0x076) | |
N003 ( 1, 1) [000139] ------------ | /--* CNS_INT int -2 | |
N004 ( 5, 4) [000141] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000140] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000138] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB29, stmt 71 | |
( 22, 15) [000149] ------------ * STMT void (IL 0x07B...0x088) | |
N013 ( 22, 15) [000147] --CXG------- \--* CALL void AsyncValueTaskMethodBuilder`1.SetException | |
N007 ( 1, 1) [000922] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N008 ( 3, 3) [000923] ------------ | /--* ADD byref | |
N006 ( 1, 1) [000921] ------------ | | \--* LCL_VAR byref V00 this u:2 (last use) | |
N009 ( 5, 5) [000924] ---XG--N---- this in rcx +--* COMMA byref | |
N005 ( 2, 2) [000920] ---X---N---- | \--* NULLCHECK byte | |
N004 ( 1, 1) [000919] ------------ | \--* LCL_VAR byref V00 this u:2 | |
N010 ( 3, 2) [000146] ------------ arg1 in rdx \--* LCL_VAR ref V09 tmp2 u:3 (last use) | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In optEarlyProp() | |
New refCnts for V29: refCnt = 5, refCntWtd = 10 | |
New refCnts for V30: refCnt = 5, refCntWtd = 10 | |
New refCnts for V29: refCnt = 6, refCntWtd = 12 | |
optFoldNullCheck morphed tree: | |
N002 ( 1, 1) [000942] ------------ /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N003 ( 3, 3) [000943] ------------ /--* ADD byref | |
N001 ( 1, 1) [000941] ------------ | \--* LCL_VAR byref V29 tmp22 u:3 (last use) | |
N005 ( 3, 3) [000618] -A--G---R--- * ASG byref | |
N004 ( 1, 1) [000617] D------N---- \--* LCL_VAR byref V30 tmp23 d:3 | |
After optEarlyProp: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..007) i label target | |
BB02 [0001] 1 0 BB01 1 [007..00A)-> BB10 ( cond ) T0 try { keep i try label | |
BB03 [0002] 1 0 BB02 1 [00A..02B)-> BB05 ( cond ) T0 i | |
BB04 [0018] 1 0 BB03 1 [022..023)-> BB08 (always) T0 i | |
BB05 [0019] 1 0 BB03 0.50 [022..023)-> BB07 ( cond ) T0 i label target | |
BB06 [0020] 1 0 BB05 1 [022..023)-> BB08 (always) T0 i | |
BB07 [0021] 1 0 BB05 1 [022..023) T0 i label target gcsafe | |
BB08 [0022] 3 0 BB04,BB06,BB07 1 [???..???)-> BB11 ( cond ) T0 internal label target | |
BB09 [0003] 1 0 BB08 1 [02B..04B)-> BB28 (always) T0 i gcsafe | |
BB10 [0004] 1 0 BB02 1 [04B..067) T0 i label target | |
BB11 [0005] 2 0 BB08,BB10 1 [067..071)-> BB13 ( cond ) T0 i label target | |
BB12 [0029] 1 0 BB11 1 [067..068)-> BB18 (always) T0 i | |
BB13 [0030] 1 0 BB11 0.50 [067..068)-> BB17 ( cond ) T0 i label target | |
BB14 [0031] 1 0 BB13 1 [067..068)-> BB16 ( cond ) T0 i | |
BB15 [0035] 1 0 BB14 0.50 [067..068) T0 i gcsafe | |
BB16 [0036] 2 0 BB14,BB15 1 [067..068)-> BB18 (always) T0 i label target | |
BB17 [0032] 1 0 BB13 1 [067..068) T0 i label target gcsafe | |
BB18 [0033] 3 0 BB12,BB16,BB17 1 [???..???) T0 } internal label target | |
BB19 [0007] 1 BB18 1 [08A..09E)-> BB27 ( cond ) i label target | |
BB20 [0042] 1 BB19 1 [092..093)-> BB26 ( cond ) i | |
BB21 [0046] 1 BB20 0.50 [092..093)-> BB24 ( cond ) i newobj | |
BB22 [0057] 1 BB21 0.50 [092..093)-> BB24 ( cond ) i | |
BB23 [0058] 1 BB22 1 [092..093)-> BB25 (always) i | |
BB24 [0082] 2 BB21,BB22 1 [092..093) i label target newobj | |
BB25 [0083] 2 BB23,BB24 1 [???..???)-> BB28 (always) internal label target | |
BB26 [0047] 1 BB20 1 [092..093)-> BB28 (always) i label target gcsafe | |
BB27 [0043] 1 BB19 1 [092..093) i label target | |
BB28 [0044] 5 BB09,BB29,BB25,BB26,BB27 1 [09E..09F) (return) i label target | |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ funclets follow | |
BB29 [0006] 1 0 0 [071..08A)-> BB28 ( cret ) H0 F catch { } keep i rare label target gcsafe flet | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..007), preds={} succs={BB02} | |
***** BB01, stmt 1 | |
( 3, 3) [000005] ------------ * STMT void (IL 0x000...0x006) | |
N002 ( 3, 2) [000002] *--XG------- | /--* IND int | |
N001 ( 1, 1) [000001] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N004 ( 3, 3) [000004] -A-XG---R--- \--* ASG int | |
N003 ( 1, 1) [000003] D------N---- \--* LCL_VAR int V01 loc0 d:3 | |
------------ BB02 [007..00A) -> BB10 (cond), preds={BB01} succs={BB03,BB10} | |
***** BB02, stmt 2 | |
( 5, 5) [000013] ------------ * STMT void (IL 0x007...0x008) | |
N004 ( 5, 5) [000012] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000010] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000011] J------N---- \--* EQ int | |
N001 ( 1, 1) [000009] ------------ \--* LCL_VAR int V01 loc0 u:3 (last use) | |
------------ BB03 [00A..02B) -> BB05 (cond), preds={BB02} succs={BB04,BB05} | |
***** BB03, stmt 3 | |
( 0, 0) [000155] ------------ * STMT void (IL 0x00A... ???) | |
N006 ( 0, 0) [000788] ------------ | /--* NOP void | |
N007 ( 0, 0) [000789] ------------ \--* COMMA void | |
N004 ( 0, 0) [000784] ------------ | /--* NOP void | |
N005 ( 0, 0) [000785] ------------ \--* COMMA void | |
N002 ( 0, 0) [000780] ------------ | /--* NOP void | |
N003 ( 0, 0) [000781] ------------ \--* COMMA void | |
N001 ( 0, 0) [000777] ------------ \--* NOP void | |
***** BB03, stmt 4 | |
( 0, 0) [000073] ------------ * STMT void (IL ???... ???) | |
N006 ( 0, 0) [000803] ------------ | /--* NOP void | |
N007 ( 0, 0) [000804] ------------ \--* COMMA void | |
N004 ( 0, 0) [000799] ------------ | /--* NOP void | |
N005 ( 0, 0) [000800] ------------ \--* COMMA void | |
N002 ( 0, 0) [000795] ------------ | /--* NOP void | |
N003 ( 0, 0) [000796] ------------ \--* COMMA void | |
N001 ( 0, 0) [000792] ------------ \--* NOP void | |
***** BB03, stmt 5 | |
( 0, 0) [000207] ------------ * STMT void (IL 0x010... ???) | |
N006 ( 0, 0) [000818] ------------ | /--* NOP void | |
N007 ( 0, 0) [000819] ------------ \--* COMMA void | |
N004 ( 0, 0) [000814] ------------ | /--* NOP void | |
N005 ( 0, 0) [000815] ------------ \--* COMMA void | |
N002 ( 0, 0) [000810] ------------ | /--* NOP void | |
N003 ( 0, 0) [000811] ------------ \--* COMMA void | |
N001 ( 0, 0) [000807] ------------ \--* NOP void | |
***** BB03, stmt 6 | |
( 1, 3) [000267] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000202] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000266] -A------R--- \--* ASG short | |
N002 ( 1, 1) [000265] D------N---- \--* LCL_VAR int V15 tmp8 d:3 | |
***** BB03, stmt 7 | |
( 1, 3) [000240] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000237] ------------ | /--* CNS_INT ref null | |
N003 ( 1, 3) [000239] -A------R--- \--* ASG ref | |
N002 ( 1, 1) [000238] D------N---- \--* LCL_VAR ref V47 tmp40 d:3 | |
***** BB03, stmt 8 | |
( 1, 3) [000246] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000243] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000245] -A------R--- \--* ASG int | |
N002 ( 1, 1) [000244] D------N---- \--* LCL_VAR int V48 tmp41 d:3 | |
***** BB03, stmt 9 | |
( 1, 3) [000252] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000249] ------------ | /--* LCL_VAR int V15 tmp8 u:3 (last use) | |
N003 ( 1, 3) [000251] -A------R--- \--* ASG short | |
N002 ( 2, 2) [000250] D------N---- \--* LCL_VAR short V49 tmp42 d:3 | |
***** BB03, stmt 10 | |
( 1, 3) [000258] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 1, 1) [000255] ------------ | /--* CNS_INT int 0 | |
N003 ( 1, 3) [000257] -A------R--- \--* ASG bool | |
N002 ( 2, 2) [000256] D------N---- \--* LCL_VAR bool V50 tmp43 d:3 | |
***** BB03, stmt 11 | |
( 31, 30) [000281] ------------ * STMT void (IL 0x010... ???) | |
N030 ( 2, 2) [000850] -------N---- | /--* LCL_VAR bool V50 tmp43 u:3 (last use) | |
N031 ( 8, 8) [000851] -A---------- | /--* ASG bool | |
N029 ( 5, 5) [000849] *------N---- | | \--* IND bool | |
N027 ( 1, 1) [000847] ------------ | | | /--* CNS_INT long 14 Fseq[_continueOnCapturedContext] | |
N028 ( 2, 2) [000848] -------N---- | | \--* ADD byref | |
N026 ( 1, 1) [000846] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 (last use) | |
N032 ( 31, 30) [000852] -A---------- \--* COMMA void | |
N023 ( 2, 2) [000843] -------N---- | /--* LCL_VAR short V49 tmp42 u:3 (last use) | |
N024 ( 8, 8) [000844] -A---------- | /--* ASG short | |
N022 ( 5, 5) [000842] *------N---- | | \--* IND short | |
N020 ( 1, 1) [000840] ------------ | | | /--* CNS_INT long 12 Fseq[_token] | |
N021 ( 2, 2) [000841] -------N---- | | \--* ADD byref | |
N019 ( 1, 1) [000839] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N025 ( 23, 22) [000845] -A---------- \--* COMMA void | |
N016 ( 1, 1) [000836] -------N---- | /--* LCL_VAR int V48 tmp41 u:3 (last use) | |
N017 ( 6, 6) [000837] -A---------- | /--* ASG int | |
N015 ( 4, 4) [000835] *------N---- | | \--* IND int | |
N013 ( 1, 1) [000833] ------------ | | | /--* CNS_INT long 8 Fseq[_result] | |
N014 ( 2, 2) [000834] -------N---- | | \--* ADD byref | |
N012 ( 1, 1) [000832] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N018 ( 15, 14) [000838] -A---------- \--* COMMA void | |
N009 ( 1, 1) [000829] -------N---- | /--* LCL_VAR ref V47 tmp40 u:3 (last use) | |
N010 ( 6, 5) [000830] -A---------- | /--* ASG ref | |
N008 ( 4, 3) [000828] *------N---- | | \--* IND ref | |
N006 ( 1, 1) [000826] ------------ | | | /--* CNS_INT long 0 Fseq[_obj] | |
N007 ( 3, 3) [000827] -------N---- | | \--* ADD byref | |
N005 ( 1, 1) [000825] ------------ | | \--* LCL_VAR byref V52 tmp45 u:3 | |
N011 ( 9, 8) [000831] -A---------- \--* COMMA void | |
N002 ( 3, 3) [000821] L----------- | /--* ADDR byref | |
N001 ( 3, 2) [000822] -------N---- | | \--* LCL_VAR struct(AX) V16 tmp9 | |
N004 ( 3, 3) [000824] -A------R--- \--* ASG byref | |
N003 ( 1, 1) [000823] D------N---- \--* LCL_VAR byref V52 tmp45 d:3 | |
***** BB03, stmt 12 | |
( 10, 10) [000277] ------------ * STMT void (IL 0x010... ???) | |
N001 ( 3, 2) [000272] ----G------- | /--* LCL_VAR struct(AX) V16 tmp9 | |
N005 ( 10, 10) [000276] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000275] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000274] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000271] D------N---- \--* LCL_FLD struct V12 tmp5 d:3[+0] Fseq[_value] | |
***** BB03, stmt 13 | |
( 7, 5) [000084] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000228] ------------ | /--* LCL_VAR struct V12 tmp5 u:3 (last use) | |
N003 ( 7, 5) [000231] -A------R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000230] D------N---- \--* LCL_VAR struct V05 loc4 d:3 | |
***** BB03, stmt 14 | |
( 10, 10) [000315] ------------ * STMT void (IL 0x01A... ???) | |
N003 ( 6, 7) [000295] x---G------- | /--* IND struct | |
N002 ( 3, 5) [000294] ------------ | | \--* ADDR byref | |
N001 ( 3, 4) [000285] -------N---- | | \--* LCL_FLD struct V05 loc4 u:3[+0] Fseq[_value] (last use) | |
N005 ( 10, 10) [000314] -A--G---R--- \--* ASG struct (copy) | |
N004 ( 3, 2) [000312] D------N---- \--* LCL_VAR struct V18 tmp11 d:3 | |
***** BB03, stmt 15 | |
( 10, 10) [000311] ------------ * STMT void (IL 0x01A... ???) | |
N001 ( 3, 2) [000306] ------------ | /--* LCL_VAR struct V18 tmp11 u:3 (last use) | |
N005 ( 10, 10) [000310] -A------R--- \--* ASG struct (copy) | |
N004 ( 6, 7) [000309] x----------- \--* BLK(16) struct | |
N003 ( 3, 5) [000308] ------------ \--* ADDR byref | |
N002 ( 3, 4) [000305] D------N---- \--* LCL_FLD struct V17 tmp10 d:3[+0] Fseq[_value] | |
***** BB03, stmt 16 | |
( 7, 5) [000093] ------------ * STMT void (IL ???... ???) | |
N001 ( 3, 2) [000298] ------------ | /--* LCL_VAR struct V17 tmp10 u:3 (last use) | |
N003 ( 7, 5) [000301] -A--G---R--- \--* ASG struct (copy) | |
N002 ( 3, 2) [000300] D---G--N---- \--* LCL_VAR struct(AX) V03 loc2 | |
***** BB03, stmt 17 | |
( 3, 4) [000335] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 3, 4) [000331] ----G------- | /--* LCL_FLD ref V03 loc2 [+0] Fseq[_value, _obj] | |
N003 ( 3, 4) [000334] -A--G---R--- \--* ASG ref | |
N002 ( 1, 1) [000333] D------N---- \--* LCL_VAR ref V20 tmp13 d:3 | |
***** BB03, stmt 18 | |
( 5, 5) [000340] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000339] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000337] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000338] J------N---- \--* NE int | |
N001 ( 1, 1) [000336] ------------ \--* LCL_VAR ref V20 tmp13 u:3 | |
------------ BB04 [022..023) -> BB08 (always), preds={BB03} succs={BB08} | |
***** BB04, stmt 19 | |
( 1, 3) [000395] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000391] ------------ | /--* CNS_INT int 1 | |
N003 ( 1, 3) [000394] -A------R--- \--* ASG bool | |
N002 ( 1, 1) [000393] D------N---- \--* LCL_VAR int V19 tmp12 d:5 | |
------------ BB05 [022..023) -> BB07 (cond), preds={BB03} succs={BB06,BB07} | |
***** BB05, stmt 20 | |
( 18, 18) [000349] ------------ * STMT void (IL 0x022... ???) | |
N009 ( 18, 18) [000346] --C-G------- | /--* CALL help ref HELPER.CORINFO_HELP_ISINSTANCEOFCLASS | |
N005 ( 1, 1) [000342] ------------ arg1 in rdx | | +--* LCL_VAR ref V20 tmp13 u:3 | |
N006 ( 3, 10) [000343] -------N---- arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc6b4afbd8 class | |
N011 ( 18, 18) [000348] -AC-G---R--- \--* ASG ref | |
N010 ( 1, 1) [000347] D------N---- \--* LCL_VAR ref V21 tmp14 d:3 | |
***** BB05, stmt 21 | |
( 5, 4) [000354] ------------ * STMT void (IL 0x022... ???) | |
N001 ( 1, 1) [000351] ------------ | /--* LCL_VAR ref V21 tmp14 u:3 | |
N003 ( 5, 4) [000353] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000352] D------N---- \--* LCL_VAR ref V22 tmp15 d:3 | |
***** BB05, stmt 22 | |
( 5, 5) [000358] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 5, 5) [000357] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000355] ------------ | /--* CNS_INT ref null | |
N003 ( 3, 3) [000356] J------N---- \--* EQ int | |
N001 ( 1, 1) [000350] ------------ \--* LCL_VAR ref V21 tmp14 u:3 (last use) | |
------------ BB06 [022..023) -> BB08 (always), preds={BB05} succs={BB08} | |
***** BB06, stmt 23 | |
( 10, 8) [000410] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 6, 5) [000407] V--XGO-N---- | /--* IND int | |
N002 ( 1, 1) [000857] ------------ | | | /--* CNS_INT long 52 field offset Fseq[m_stateFlags] | |
N003 ( 4, 3) [000858] -------N---- | | \--* ADD byref | |
N001 ( 3, 2) [000381] ------------ | | \--* LCL_VAR ref V22 tmp15 u:3 (last use) | |
N006 ( 10, 8) [000409] -A-XGO--R--- \--* ASG int | |
N005 ( 3, 2) [000408] D------N---- \--* LCL_VAR int V23 tmp16 d:3 | |
***** BB06, stmt 24 | |
( 10, 9) [000388] ------------ * STMT void (IL 0x022... ???) | |
N004 ( 1, 1) [000421] ------------ | /--* CNS_INT int 0 | |
N005 ( 10, 9) [000422] N----------- | /--* NE int | |
N002 ( 1, 4) [000419] ------------ | | | /--* CNS_INT int 0x1600000 | |
N003 ( 5, 7) [000420] ------------ | | \--* AND int | |
N001 ( 3, 2) [000411] ------------ | | \--* LCL_VAR int V23 tmp16 u:3 (last use) | |
N007 ( 10, 9) [000387] -A------R--- \--* ASG bool | |
N006 ( 1, 1) [000386] D------N---- \--* LCL_VAR int V19 tmp12 d:4 | |
------------ BB07 [022..023), preds={BB05} succs={BB08} | |
***** BB07, stmt 25 | |
( 33, 29) [000378] ------------ * STMT void (IL 0x022... ???) | |
N013 ( 1, 1) [000374] ------------ | /--* CNS_INT int 0 | |
N014 ( 33, 29) [000375] N-CXG------- | /--* NE int | |
N012 ( 28, 27) [000372] --CXG------- | | \--* CALLV stub int IValueTaskSource`1.GetStatus | |
N006 ( 1, 1) [000360] ------------ this in rcx | | +--* LCL_VAR ref V20 tmp13 u:3 (last use) | |
N007 ( 4, 5) [000370] ----G------- arg2 in rdx | | +--* LCL_FLD short V03 loc2 [+12] Fseq[_value, _token] | |
N008 ( 3, 10) [000859] ------------ arg1 in r11 | | \--* CNS_INT(h) long 0x7ffc0d5d0030 ftn REG r11 | |
N016 ( 33, 29) [000377] -ACXG---R--- \--* ASG bool | |
N015 ( 1, 1) [000376] D------N---- \--* LCL_VAR int V19 tmp12 d:3 | |
------------ BB08 [???..???) -> BB11 (cond), preds={BB04,BB06,BB07} succs={BB09,BB11} | |
***** BB08, stmt 26 | |
( 3, 3) [000999] ------------ * STMT void (IL ???... ???) | |
N007 ( 3, 3) [000997] ------------ | * PHI bool | |
N001 ( 0, 0) [001004] ------------ | /--* PHI_ARG bool V19 tmp12 u:5 | |
N002 ( 0, 0) [001002] ------------ | +--* PHI_ARG bool V19 tmp12 u:4 | |
N003 ( 0, 0) [001000] ------------ | \--* PHI_ARG bool V19 tmp12 u:3 | |
N009 ( 3, 3) [000998] -A------R--- \--* ASG bool | |
N008 ( 1, 1) [000996] D------N---- \--* LCL_VAR bool V19 tmp12 d:6 | |
***** BB08, stmt 27 | |
( 5, 5) [000102] ------------ * STMT void (IL ???... ???) | |
N004 ( 5, 5) [000101] ------------ \--* JTRUE void | |
N002 ( 1, 1) [000099] ------------ | /--* CNS_INT int 0 | |
N003 ( 3, 3) [000100] J------N---- \--* NE int | |
N001 ( 1, 1) [000396] ------------ \--* LCL_VAR int V19 tmp12 u:6 (last use) | |
------------ BB09 [02B..04B) -> BB28 (always), preds={BB08} succs={BB28} | |
***** BB09, stmt 28 | |
( 5, 4) [000112] ------------ * STMT void (IL ???...0x02F) | |
N003 ( 1, 1) [000105] ------------ | /--* CNS_INT int 0 | |
N004 ( 5, 4) [000111] -A-XG------- \--* ASG int | |
N002 ( 3, 2) [000110] *--XG--N---- \--* IND int | |
N001 ( 1, 1) [000104] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB09, stmt 29 | |
( 13, 10) [000119] ------------ * STMT void (IL 0x034...0x036) | |
N001 ( 3, 2) [000114] ----G------- | /--* LCL_VAR struct(AX) V03 loc2 | |
N006 ( 13, 10) [000118] -A-XG---R--- \--* ASG struct (copy) | |
N005 ( 9, 7) [000117] ---XG------- \--* OBJ(16) struct | |
N003 ( 1, 1) [000869] ------------ | /--* CNS_INT long 24 field offset Fseq[<>u__1] | |
N004 ( 3, 3) [000870] ------------ \--* ADD byref | |
N002 ( 1, 1) [000113] ------------ \--* LCL_VAR byref V00 this u:2 | |
***** BB09, stmt 30 | |
( 5, 5) [000443] ------------ * STMT void (IL 0x03B... ???) | |
N004 ( 1, 1) [000874] ------------ | /--* CNS_INT long 8 field offset Fseq[<>t__builder] | |
N005 ( 3, 3) [000875] ------------ | /--* ADD byref | |
N003 ( 1, 1) [000873] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N006 ( 5, 5) [000876] ---XG--N---- | /--* COMMA byref | |
N002 ( 2, 2) [000872] ---X---N---- | | \--* NULLCHECK byte | |
N001 ( 1, 1) [000871] ------------ | | \--* LCL_VAR byref V00 this u:2 | |
N008 ( 5, 5) [000442] -A-XG---R--- \--* ASG byref | |
N007 ( 1, 1) [000441] D------N---- \--* LCL_VAR byref V24 tmp17 d:3 | |
***** BB09, stmt 31 | |
( 7, 7) [000431] ------------ * STMT void (IL 0x03B... ???) | |
N005 ( 1, 1) [000428] ------------ | /--* CNS_INT int 1 | |
N006 ( 7, 7) [000430] -A-XG------- \--* ASG bool | |
N004 ( 5, 5) [000429] *--XG--N---- \--* IND bool | |
N002 ( 1, 1) [000878] ------------ | /--* CNS_INT long 5 field offset Fseq[_useBuilder] | |
N003 ( 2, 2) [000879] -------N---- \--* ADD byref | |
N001 ( 1, 1) [000427] ------------ \--* LCL_VAR byref V24 tmp17 u:3 | |
***** BB09, stmt 32 | |
( 23, 18) [000440] ------------ * STMT void (IL 0x03B... ???) | |
N018 ( 23, 18) [000437] --CXG------- \--* CALL void AsyncTaskMethodBuilder`1.AwaitUnsafeOnCompleted | |
N009 ( 1, 1) [000883] ------------ | /--* CNS_INT long 8 field offset Fseq[_methodBuilder] | |
N010 ( 3, 3) [000884] ------------ | /--* ADD byref | |
N008 ( 1, 1) [000882] ------------ | | \--* LCL_VAR byref V24 tmp17 u:3 (last use) | |
N011 ( 5, 5) [000885] ---XG--N---- this in rcx +--* COMMA byref | |
N007 ( 2, 2) [000881] ---X---N---- | \--* NULLCHECK byte | |
N006 ( 1, 1) [000880] ------------ | \--* LCL_VAR byref V24 tmp17 u:3 | |
N013 ( 3, 3) [000435] L----------- arg1 in rdx +--* ADDR long | |
N012 ( 3, 2) [000436] ----G--N---- | \--* LCL_VAR struct(AX) V03 loc2 | |
N014 ( 1, 1) [000125] ------------ arg2 in r8 \--* LCL_VAR byref V00 this u:2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment