Untitled Diff
463 lines
****** START compiling Awaitable:Test():int (MethodHash=29e49f41)
****** START compiling Awaitable:Test():int (MethodHash=29e49f41)
Generating code for Windows x64
Generating code for Windows x64
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compCodeOpt = BLENDED_CODE
OPTIONS: compDbgCode = false
OPTIONS: compDbgCode = false
OPTIONS: compDbgInfo = true
OPTIONS: compDbgInfo = true
OPTIONS: compDbgEnC = false
OPTIONS: compDbgEnC = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplitting = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: compProcedureSplittingEH = false
OPTIONS: optimizer should use profile data
OPTIONS: optimizer should use profile data
IL to import:
IL to import:
IL_0000 16 ldc.i4.0
IL_0000 16 ldc.i4.0
IL_0001 73 12 00 00 06 newobj 0x6000012
IL_0001 73 12 00 00 06 newobj 0x6000012
IL_0006 7b 03 00 00 04 ldfld 0x4000003
IL_0006 7b 03 00 00 04 ldfld 0x4000003
IL_000b 2a ret
IL_000b 2a ret
lvaGrabTemp returning 0 (V00 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
lvaGrabTemp returning 0 (V00 tmp0) (a long lifetime temp) called for OutgoingArgSpace.
Local V00 should not be enregistered because: it is address exposed
Local V00 should not be enregistered because: it is address exposed
; Initial local variable assignments
; Initial local variable assignments
;
;
; V00 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
; V00 OutArgs struct <0> do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
*************** In compInitDebuggingInfo() for Awaitable:Test():int
*************** In compInitDebuggingInfo() for Awaitable:Test():int
getVars() returned cVars = 0, extendOthers = true
getVars() returned cVars = 0, extendOthers = true
info.compStmtOffsetsCount = 0
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Awaitable:Test():int
*************** In fgFindBasicBlocks() for Awaitable:Test():int
Jump targets:
Jump targets:
none
none
New Basic Block BB01 [0000] created.
New Basic Block BB01 [0000] created.
BB01 [000..00C)
BB01 [000..00C)
IL Code Size,Instr 12, 4, Basic Block count 1, Local Variable Num,Ref count 1, 0 for method Awaitable:Test():int
IL Code Size,Instr 12, 4, Basic Block count 1, Local Variable Num,Ref count 1, 0 for method Awaitable:Test():int
OPTIONS: opts.MinOpts() == false
OPTIONS: opts.MinOpts() == false
Basic block list for 'Awaitable:Test():int'
Basic block list for 'Awaitable:Test():int'
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00C) (return)
BB01 [0000] 1 1 [000..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Starting PHASE Pre-import
*************** Starting PHASE Pre-import
*************** Finishing PHASE Pre-import
*************** Finishing PHASE Pre-import
Trees after Pre-import
Trees after Pre-import
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00C) (return)
BB01 [0000] 1 1 [000..00C) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..00C) (return), preds={} succs={}
------------ BB01 [000..00C) (return), preds={} succs={}
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** Starting PHASE Profile incorporation
*************** Starting PHASE Profile incorporation
BBOPT set, but no profile data available (hr=80004001)
BBOPT set, but no profile data available (hr=80004001)
*************** Finishing PHASE Profile incorporation [no changes]
*************** Finishing PHASE Profile incorporation [no changes]
*************** Starting PHASE Importation
*************** Starting PHASE Importation
impImportBlockPending for BB01
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Awaitable:Test():int'
Importing BB01 (PC=000) of 'Awaitable:Test():int'
[ 0] 0 (0x000) ldc.i4.0 0
[ 0] 0 (0x000) ldc.i4.0 0
[ 1] 1 (0x001) newobj
[ 1] 1 (0x001) newobj
lvaGrabTemp returning 1 (V01 tmp1) called for NewObj constructor temp.
lvaGrabTemp returning 1 (V01 tmp1) called for NewObj constructor temp.
STMT00000 ( 0x000[E-] ... ??? )
STMT00000 ( 0x000[E-] ... ??? )
[000002] DA--------- * STORE_LCL_VAR struct<Awaitable, 4> V01 tmp1
[000002] DA--------- * STORE_LCL_VAR struct<Awaitable, 4> V01 tmp1
[000001] ----------- \--* CNS_INT int 0
[000001] ----------- \--* CNS_INT int 0
06000012
06000012
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0
STMT00001 ( ??? ... ??? )
STMT00001 ( ??? ... ??? )
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000000] ----------- arg1 \--* CNS_INT int 0
[000000] ----------- arg1 \--* CNS_INT int 0
[ 1] 6 (0x006) ldfld 04000003
[ 1] 6 (0x006) ldfld 04000003
[ 1] 11 (0x00b) ret
[ 1] 11 (0x00b) ret
STMT00002 ( 0x006[--] ... ??? )
STMT00002 ( 0x006[--] ... ??? )
[000009] ----------- * RETURN int
[000009] ----------- * RETURN int
[000008] n---------- \--* IND int
[000008] n---------- \--* IND int
[000007] ----------- \--* FIELD_ADDR byref Awaitable:Opts
[000007] ----------- \--* FIELD_ADDR byref Awaitable:Opts
[000006] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
[000006] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
*************** Finishing PHASE Importation
*************** Finishing PHASE Importation
Trees after Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..00C) (return) i
BB01 [0000] 1 1 [000..00C) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..00C) (return), preds={} succs={}
------------ BB01 [000..00C) (return), preds={} succs={}
***** BB01
***** BB01
STMT00000 ( 0x000[E-] ... 0x00B )
STMT00000 ( 0x000[E-] ... 0x00B )
[000002] DA--------- * STORE_LCL_VAR struct<Awaitable, 4> V01 tmp1
[000002] DA--------- * STORE_LCL_VAR struct<Awaitable, 4> V01 tmp1
[000001] ----------- \--* CNS_INT int 0
[000001] ----------- \--* CNS_INT int 0
***** BB01
***** BB01
STMT00001 ( ??? ... ??? )
STMT00001 ( ??? ... ??? )
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000000] ----------- arg1 \--* CNS_INT int 0
[000000] ----------- arg1 \--* CNS_INT int 0
***** BB01
***** BB01
STMT00002 ( 0x006[--] ... ??? )
STMT00002 ( 0x006[--] ... ??? )
[000009] ----------- * RETURN int
[000009] ----------- * RETURN int
[000008] n---------- \--* IND int
[000008] n---------- \--* IND int
[000007] ----------- \--* FIELD_ADDR byref Awaitable:Opts
[000007] ----------- \--* FIELD_ADDR byref Awaitable:Opts
[000006] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
[000006] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid
*************** Starting PHASE Expand patchpoints
*************** Starting PHASE Expand patchpoints
-- no patchpoints to transform
-- no patchpoints to transform
*************** Finishing PHASE Expand patchpoints [no changes]
*************** Finishing PHASE Expand patchpoints [no changes]
*************** Starting PHASE Indirect call transform
*************** Starting PHASE Indirect call transform
-- no candidates to transform
-- no candidates to transform
*************** Finishing PHASE Indirect call transform [no changes]
*************** Finishing PHASE Indirect call transform [no changes]
*************** Starting PHASE Post-import
*************** Starting PHASE Post-import
*************** Finishing PHASE Post-import [no changes]
*************** Finishing PHASE Post-import [no changes]
*************** Starting PHASE Morph - Init
*************** Starting PHASE Morph - Init
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short)
*************** Finishing PHASE Morph - Init [no changes]
*************** Finishing PHASE Morph - Init [no changes]
*************** Starting PHASE Morph - Inlining
*************** Starting PHASE Morph - Inlining
Expanding INLINE_CANDIDATE in statement STMT00001 in BB01:
Expanding INLINE_CANDIDATE in statement STMT00001 in BB01:
STMT00001 ( ??? ... ??? )
STMT00001 ( ??? ... ??? )
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000004] I-C-G------ * CALL void Awaitable:.ctor(bool):this (exactContextHnd=0x00000000D1FFAB1E)
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000003] ----------- this +--* LCL_ADDR byref V01 tmp1 [+0]
[000000] ----------- arg1 \--* CNS_INT int 0
[000000] ----------- arg1 \--* CNS_INT int 0
thisArg: is a constant or invariant is byref to a struct local
thisArg: is a constant or invariant is byref to a struct local
[000003] ----------- * LCL_ADDR byref V01 tmp1 [+0]
[000003] ----------- * LCL_ADDR byref V01 tmp1 [+0]
Argument #1: is a constant or invariant
Argument #1: is a constant or invariant
[000000] ----------- * CNS_INT int 0
[000000] ----------- * CNS_INT int 0
Folding operator with constant nodes into a constant:
Folding operator with constant nodes into a constant:
[000010] ----------- * CAST int <- bool <- int
[000010] ----------- * CAST int <- bool <- int
[000000] ----------- \--* CNS_INT int 0
[000000] ----------- \--* CNS_INT int 0
Bashed to int constant:
Bashed to int constant:
[000010] ----------- * CNS_INT int 0
[000010] ----------- * CNS_INT int 0
INLINER: inlineInfo.tokenLookupContextHandle for Awaitable:.ctor(bool):this set to 0x00000000D1FFAB1E:
INLINER: inlineInfo.tokenLookupContextHandle for Awaitable:.ctor(bool):this set to 0x00000000D1FFAB1E:
Invoking compiler for the inlinee method Awaitable:.ctor(bool):this :
Invoking compiler for the inlinee method Awaitable:.ctor(bool):this :
IL to import:
IL to import:
IL_0000 03 ldarg.1
IL_0000 02 ldarg.0
IL_0001 2c 08 brfalse.s 8 (IL_000b)
IL_0001 03 ldarg.1
IL_0003 02 ldarg.0
IL_0002 2d 03 brtrue.s 3 (IL_0007)
IL_0004 17 ldc.i4.1
IL_0004 18 ldc.i4.2
IL_0005 7d 03 00 00 04 stfld 0x4000003
IL_0005 2b 01 br.s 1 (IL_0008)
IL_000a 2a ret
IL_0007 17 ldc.i4.1
IL_000b 02 ldarg.0
IL_0008 7d 03 00 00 04 stfld 0x4000003
IL_000c 18 ldc.i4.2
IL_000d 2a ret
IL_000d 7d 03 00 00 04 stfld 0x4000003
IL_0012 2a ret
INLINER impTokenLookupContextHandle for Awaitable:.ctor(bool):this is 0x00000000D1FFAB1E.
INLINER impTokenLookupContextHandle for Awaitable:.ctor(bool):this is 0x00000000D1FFAB1E.
*************** In compInitDebuggingInfo() for Awaitable:.ctor(bool):this
*************** In compInitDebuggingInfo() for Awaitable:.ctor(bool):this
info.compStmtOffsetsCount = 0
info.compStmtOffsetsCount = 0
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE )
*************** In fgFindBasicBlocks() for Awaitable:.ctor(bool):this
*************** In fgFindBasicBlocks() for Awaitable:.ctor(bool):this
weight= 16 : state 4 [ ldarg.1 ]
weight= 27 : state 44 [ brfalse.s ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 28 : state 24 [ ldc.i4.1 ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
weight= 10 : state 3 [ ldarg.0 ]
weight= 34 : state 25 [ ldc.i4.2 ]
weight= 31 : state 111 [ stfld ]
weight= 19 : state 42 [ ret ]
Notify VM instruction set (AVX) must be supported.
Notify VM instruction set (AVX512F) must be supported.
multiplier in instance constructors increased to 1.5.
multiplier in methods of struct increased to 4.5.
Inline candidate is mostly loads and stores. Multiplier increased to 7.5.
Inline candidate has 1 foldable branches. Multiplier increased to 11.5.
Inline candidate callsite is boring. Multiplier increased to 12.8.
calleeNativeSizeEstimate=225
callsiteNativeSizeEstimate=115
benefit multiplier=12.8
threshold=1472
Native estimate for function size is within threshold for inlining 22.5 <= 147.2 (multiplier = 12.8)
Jump targets:
Jump targets:
IL_000b
IL_0007
IL_0008
New Basic Block BB01 [0001] created.
New Basic Block BB01 [0001] created.
BB01 [000..003)
BB01 [000..004)
New Basic Block BB02 [0002] created.
New Basic Block BB02 [0002] created.
BB02 [003..00B)
BB02 [004..007)
New Basic Block BB03 [0003] created.
New Basic Block BB03 [0003] created.
BB03 [00B..013)
BB03 [007..008)
New Basic Block BB04 [0004] created.
BB04 [008..00E)
Setting edge weights for BB01 -> BB03 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB03 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB02 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB02 to [0 .. 3.402823e+38]
Setting edge weights for BB02 -> BB04 to [0 .. 3.402823e+38]
Setting edge weights for BB03 -> BB04 to [0 .. 3.402823e+38]
Basic block list for 'Awaitable:.ctor(bool):this'
Basic block list for 'Awaitable:.ctor(bool):this'
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB03 ( cond )
BB01 [0001] 1 1 [000..004)-> BB03 ( cond )
BB02 [0002] 1 BB01 1 [003..00B) (return)
BB02 [0002] 1 BB01 1 [004..007)-> BB04 (always)
BB03 [0003] 1 BB01 1 [00B..013) (return)
BB03 [0003] 1 BB01 1 [007..008)
BB04 [0004] 2 BB02,BB03 1 [008..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Inline @[000004] Starting PHASE Pre-import
*************** Inline @[000004] Starting PHASE Pre-import
*************** Inline @[000004] Finishing PHASE Pre-import
*************** Inline @[000004] Finishing PHASE Pre-import
Trees after Pre-import
Trees after Pre-import
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB03 ( cond )
BB01 [0001] 1 1 [000..004)-> BB03 ( cond )
BB02 [0002] 1 BB01 1 [003..00B) (return)
BB02 [0002] 1 BB01 1 [004..007)-> BB04 (always)
BB03 [0003] 1 BB01 1 [00B..013) (return)
BB03 [0003] 1 BB01 1 [007..008)
BB04 [0004] 2 BB02,BB03 1 [008..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..003) -> BB03 (cond), preds={} succs={BB02,BB03}
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
------------ BB02 [003..00B) (return), preds={BB01} succs={}
------------ BB02 [004..007) -> BB04 (always), preds={BB01} succs={BB04}
------------ BB03 [00B..013) (return), preds={BB01} succs={}
------------ BB03 [007..008), preds={BB01} succs={BB04}
------------ BB04 [008..00E) (return), preds={BB02,BB03} succs={}
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** Inline @[000004] Starting PHASE Profile incorporation
*************** Inline @[000004] Starting PHASE Profile incorporation
BBOPT set, but no profile data available (hr=80004001)
BBOPT set, but no profile data available (hr=80004001)
Computing inlinee profile scale:
Computing inlinee profile scale:
... no callee profile data, will use non-pgo weight to scale
... no callee profile data, will use non-pgo weight to scale
... call site not profiled, will use non-pgo weight to scale
... call site not profiled, will use non-pgo weight to scale
call site count 100 callee entry count 100 scale 1
call site count 100 callee entry count 100 scale 1
Scaling inlinee blocks
Scaling inlinee blocks
*************** Inline @[000004] Finishing PHASE Profile incorporation
*************** Inline @[000004] Finishing PHASE Profile incorporation
Trees after Profile incorporation
Trees after Profile incorporation
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB03 ( cond )
BB01 [0001] 1 1 [000..004)-> BB03 ( cond )
BB02 [0002] 1 BB01 1 [003..00B) (return)
BB02 [0002] 1 BB01 1 [004..007)-> BB04 (always)
BB03 [0003] 1 BB01 1 [00B..013) (return)
BB03 [0003] 1 BB01 1 [007..008)
BB04 [0004] 2 BB02,BB03 1 [008..00E) (return)
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..003) -> BB03 (cond), preds={} succs={BB02,BB03}
------------ BB01 [000..004) -> BB03 (cond), preds={} succs={BB02,BB03}
------------ BB02 [003..00B) (return), preds={BB01} succs={}
------------ BB02 [004..007) -> BB04 (always), preds={BB01} succs={BB04}
------------ BB03 [00B..013) (return), preds={BB01} succs={}
------------ BB03 [007..008), preds={BB01} succs={BB04}
------------ BB04 [008..00E) (return), preds={BB02,BB03} succs={}
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** Inline @[000004] Starting PHASE Importation
*************** Inline @[000004] Starting PHASE Importation
impImportBlockPending for BB01
impImportBlockPending for BB01
Importing BB01 (PC=000) of 'Awaitable:.ctor(bool):this'
Importing BB01 (PC=000) of 'Awaitable:.ctor(bool):this'
[ 0] 0 (0x000) ldarg.1
[ 0] 0 (0x000) ldarg.0
[ 1] 1 (0x001) brfalse.s
[ 1] 1 (0x001) ldarg.1
[ 2] 2 (0x002) brtrue.s
Folding operator with constant nodes into a constant:
Folding operator with constant nodes into a constant:
[000013] ----------- * EQ int
[000014] ----------- * NE int
[000011] ----------- +--* CNS_INT int 0
[000012] ----------- +--* CNS_INT int 0
[000012] ----------- \--* CNS_INT int 0
[000013] ----------- \--* CNS_INT int 0
Bashed to int constant:
Bashed to int constant:
[000013] ----------- * CNS_INT int 1
[000014] ----------- * CNS_INT int 0
The conditional jump becomes an unconditional jump to BB03
The block falls through into the next BB02
impImportBlockPending for BB03
*************** In impGetSpillTmpBase(BB01)
Importing BB03 (PC=011) of 'Awaitable:.ctor(bool):this'
lvaGrabTemps(1) returning 2..2 (long lifetime temps) called for IL Stack Entries
[ 0] 11 (0x00b) ldarg.0
Spilling stack entries into temps
[ 1] 12 (0x00c) ldc.i4.2 2
[ 2] 13 (0x00d) stfld 04000003
STMT00003 ( 0x00B[E-] ... ??? ) <- INLRT @ ???
[000017] nA--------- * STOREIND int
[000016] ----------- +--* FIELD_ADDR byref Awaitable:Opts
[000014] ----------- | \--* LCL_ADDR byref V01 tmp1 [+0]
[000015] ----------- \--* CNS_INT int 2
[ 0] 18 (0x012) ret
STMT00003 ( 0x000[E-] ... ??? ) <- INLRT @ ???
** Note: inlinee IL was partially imported -- imported 8 of 19 bytes of method IL
[000015] DA--------- * STORE_LCL_VAR byref V02 tmp2
[000011] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
impImportBlockPending for BB02
Importing BB02 (PC=004) of 'Awaitable:.ctor(bool):this'
[ 1] 4 (0x004) ldc.i4.2 2
[ 2] 5 (0x005) br.s
*************** In impGetSpillTmpBase(BB02)
lvaGrabTemps(2) returning 3..4 (long lifetime temps) called for IL Stack Entries
Spilling stack entries into temps
STMT00004 ( ??? ... ??? ) <- INLRT @ ???
[000019] DA--------- * STORE_LCL_VAR byref V03 tmp3
[000017] ----------- \--* LCL_VAR byref V02 tmp2
STMT00005 ( ??? ... ??? ) <- INLRT @ ???
[000021] DA--------- * STORE_LCL_VAR int V04 tmp4
[000018] ----------- \--* CNS_INT int 2
impImportBlockPending for BB04
Importing BB04 (PC=008) of 'Awaitable:.ctor(bool):this'
[ 2] 8 (0x008) stfld 04000003
STMT00006 ( ??? ... ??? ) <- INLRT @ ???
[000026] nA-XG------ * STOREIND int
[000025] ---X------- +--* FIELD_ADDR byref Awaitable:Opts
[000023] ----------- | \--* LCL_VAR byref V03 tmp3
[000024] ----------- \--* LCL_VAR int V04 tmp4
[ 0] 13 (0x00d) ret
** Note: inlinee IL was partially imported -- imported 13 of 14 bytes of method IL
*************** Inline @[000004] Finishing PHASE Importation
*************** Inline @[000004] Finishing PHASE Importation
Trees after Importation
Trees after Importation
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB03 (always) i
BB01 [0001] 1 1 [000..004) i
BB02 [0002] 0 1 [003..00B) (return)
BB02 [0002] 1 BB01 1 [004..007)-> BB04 (always) i
BB03 [0003] 1 BB01 1 [00B..013) (return) i
BB03 [0003] 0 1 [007..008)
BB04 [0004] 2 BB02,BB03 1 [008..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..003) -> BB03 (always), preds={} succs={BB03}
------------ BB01 [000..004), preds={} succs={BB02}
------------ BB02 [003..00B) (return), preds={} succs={}
***** BB01
STMT00003 ( 0x000[E-] ... ??? ) <- INLRT @ ???
[000015] DA--------- * STORE_LCL_VAR byref V02 tmp2
[000011] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
------------ BB03 [00B..013) (return), preds={BB01} succs={}
------------ BB02 [004..007) -> BB04 (always), preds={BB01} succs={BB04}
***** BB03
***** BB02
STMT00003 ( 0x00B[E-] ... ??? ) <- INLRT @ ???
STMT00004 ( ??? ... ??? ) <- INLRT @ ???
[000017] nA--------- * STOREIND int
[000019] DA--------- * STORE_LCL_VAR byref V03 tmp3
[000016] ----------- +--* FIELD_ADDR byref Awaitable:Opts
[000017] ----------- \--* LCL_VAR byref V02 tmp2
[000014] ----------- | \--* LCL_ADDR byref V01 tmp1 [+0]
[000015] ----------- \--* CNS_INT int 2
***** BB02
STMT00005 ( ??? ... ??? ) <- INLRT @ ???
[000021] DA--------- * STORE_LCL_VAR int V04 tmp4
[000018] ----------- \--* CNS_INT int 2
------------ BB03 [007..008), preds={} succs={BB04}
------------ BB04 [008..00E) (return), preds={BB02,BB03} succs={}
***** BB04
STMT00006 ( ??? ... ??? ) <- INLRT @ ???
[000026] nA-XG------ * STOREIND int
[000025] ---X------- +--* FIELD_ADDR byref Awaitable:Opts
[000023] ----------- | \--* LCL_VAR byref V03 tmp3
[000024] ----------- \--* LCL_VAR int V04 tmp4
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid
*************** Inline @[000004] Starting PHASE Expand patchpoints
*************** Inline @[000004] Starting PHASE Expand patchpoints
-- no patchpoints to transform
-- no patchpoints to transform
*************** Inline @[000004] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000004] Finishing PHASE Expand patchpoints [no changes]
*************** Inline @[000004] Starting PHASE Indirect call transform
*************** Inline @[000004] Starting PHASE Indirect call transform
-- no candidates to transform
-- no candidates to transform
*************** Inline @[000004] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000004] Finishing PHASE Indirect call transform [no changes]
*************** Inline @[000004] Starting PHASE Post-import
*************** Inline @[000004] Starting PHASE Post-import
BB02 was not imported, marking as removed (0)
BB03 was not imported, marking as removed (0)
Renumbering the basic blocks for fgPostImportationCleanup
Renumbering the basic blocks for fgPostImportationCleanup
*************** Before renumbering the basic blocks
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB03 (always) i
BB01 [0001] 1 1 [000..004) i
BB03 [0003] 1 BB01 1 [00B..013) (return) i
BB02 [0002] 1 BB01 1 [004..007)-> BB04 (always) i
BB04 [0004] 1 BB02 1 [008..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** Exception Handling table is empty
Renumber BB03 to BB02
Renumber BB04 to BB03
*************** After renumbering the basic blocks
*************** After renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB02 (always) i
BB01 [0001] 1 1 [000..004) i
BB02 [0003] 1 BB01 1 [00B..013) (return) i
BB02 [0002] 1 BB01 1 [004..007)-> BB03 (always) i
BB03 [0004] 1 BB02 1 [008..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
*************** Exception Handling table is empty
New BlockSet epoch 1, # of blocks (including unused BB00): 3, bitset array size: 1 (short)
New BlockSet epoch 1, # of blocks (including unused BB00): 4, bitset array size: 1 (short)
*************** Inline @[000004] Finishing PHASE Post-import
*************** Inline @[000004] Finishing PHASE Post-import
Trees after Post-import
Trees after Post-import
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0001] 1 1 [000..003)-> BB02 (always) i
BB01 [0001] 1 1 [000..004) i
BB02 [0003] 1 BB01 1 [00B..013) (return) i
BB02 [0002] 1 BB01 1 [004..007)-> BB03 (always) i
BB03 [0004] 1 BB02 1 [008..00E) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB01 [000..003) -> BB02 (always), preds={} succs={BB02}
------------ BB01 [000..004), preds={} succs={BB02}
------------ BB02 [00B..013) (return), preds={BB01} succs={}
***** BB01
STMT00003 ( 0x000[E-] ... ??? ) <- INLRT @ ???
[000015] DA--------- * STORE_LCL_VAR byref V02 tmp2
[000011] ----------- \--* LCL_ADDR byref V01 tmp1 [+0]
------------ BB02 [004..007) -> BB03 (always), preds={BB01} succs={BB03}
***** BB02
***** BB02
STMT00003 ( 0x00B[E-] ... ??? ) <- INLRT @ ???
STMT00004 ( ??? ... ??? ) <- INLRT @ ???
[000017] nA--------- * STOREIND int
[000019] DA--------- * STORE_LCL_VAR byref V03 tmp3
[000016] ----------- +--* FIELD_ADDR byref Awaitable:Opts
[000017] ----------- \--* LCL_VAR byref V02 tmp2
[000014] ----------- | \--* LCL_ADDR byref V01 tmp1 [+0]
[000015] ----------- \--* CNS_INT int 2
***** BB02
STMT00005 ( ??? ... ??? ) <- INLRT @ ???
[000021] DA--------- * STORE_LCL_VAR int V04 tmp4
[000018] ----------- \--* CNS_INT int 2
------------ BB03 [008..00E) (return), preds={BB02} succs={}
***** BB03
STMT00006 ( ??? ... ??? ) <- INLRT @ ???
[000026] nA-XG------ * STOREIND int
[000025] ---X------- +--* FIELD_ADDR byref Awaitable:Opts
[000023] ----------- | \--* LCL_VAR byref V03 tmp3
[000024] ----------- \--* LCL_VAR int V04 tmp4
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckBBlist
*************** In fgDebugCheckLoopTable: loop table not valid
*************** In fgDebugCheckLoopTable: loop table not valid
----------- Statements (and blocks) added due to the inlining of call [000004] -----------
----------- Statements (and blocks) added due to the inlining of call [000004] -----------
Arguments setup:
Arguments setup:
Inlinee method body:New Basic Block BB02 [0004] created.
Inlinee method body:New Basic Block BB02 [0005] created.
Setting edge weights for BB01 -> BB02 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB02 to [0 .. 3.402823e+38]
Convert bbJumpKind of BB04 to BBJ_NONE
Convert bbJumpKind of BB05 to BBJ_NONE
Setting edge weights for BB04 -> BB02 to [0 .. 3.402823e+38]
Setting edge weights for BB05 -> BB02 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB03 to [0 .. 3.402823e+38]
Setting edge weights for BB01 -> BB03 to [0 .. 3.402823e+38]
fgInlineAppendStatements: no gc ref inline locals.
fgInlineAppendStatements: no gc ref inline locals.
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------
BB03 [0001] 1 BB01 1 [000..000)-> BB04 (always) i internal
BB03 [0001] 1 BB01
BB04 [0003] 1 BB03 1 [000..000) i internal
-----------------------------------------------------------------------------------------------------------------------------------------
------------ BB03 [000..000) -> BB04 (always), preds={BB01} succs={BB04}
------------ BB04 [000..000), preds={BB03} succs={BB02}
***** BB04
STMT00003 ( INL01 @ 0x00B[E-] ... ??? ) <- INLRT @ ???
[000017] nA--------- * STOREIND int
[000016] ----------- +--* FIELD_ADDR byref Awaitable:Opts
[000014] ----------- | \--* LCL_ADDR byref V01 tmp1 [+0]
[000015] ----------- \--* CNS_INT int 2
-------------------------------------------------------------------------------------------------------------------
Successfully inlined Awaitable:.ctor(bool):this (19 IL bytes) (depth 1) [profitable inline]
--------------------------------------------------------------------------------------------
INLINER: during 'fgInline' result 'success' reason 'profitable inline' for 'Awaitable:Test():int' calling 'Awaitable:.ctor(bool):this'
INLINER: during 'fgInline' result 'success' reason 'profitable inline'
**************** Inline Tree
Inlines into 06000013 [via ExtendedDefaultPolicy] Awaitable:Test():int:
[INL01 IL=0001 TR=000004 06000012] [INLINED: call site: profitable inline] Awaitable:.ctor(bool):this
Budget: initialTime=96, finalTime=98, initialBudget=960, currentBudget=960
Budget: initialSize=404, finalSize=514
*************** Before renumbering the basic blocks
-----------------------------------------------------------------------------------------------------------------------------------------
BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags]
-----------------------------------------------------------------------------------------------------------------------------------------
BB01 [0000] 1 1 [000..006) i
BB03 [0001] 1 BB01 1 [000..000)-> BB04 (always) i internal
BB04 [0003] 1 BB03 1 [000..000) i internal
BB02 [0004] 1 BB04 1 [006..00C) (return) i
-----------------------------------------------------------------------------------------------------------------------------------------
*************** Exception Handling table is empty
Renumber BB03 to BB02
Renu