****** START compiling a:main():int (MethodHash=c5c023fd) Generating code for Windows x64 OPTIONS: compCodeOpt = BLENDED_CODE OPTIONS: compDbgCode = false OPTIONS: compDbgInfo = true OPTIONS: compDbgEnC = false OPTIONS: compProcedureSplitting = false OPTIONS: compProcedureSplittingEH = false IL to import: IL_0000 73 03 00 00 06 newobj 0x6000003 IL_0005 0a stloc.0 IL_0006 73 03 00 00 06 newobj 0x6000003 IL_000b 25 dup IL_000c 80 01 00 00 04 stsfld 0x4000001 IL_0011 0b stloc.1 IL_0012 12 00 ldloca.s 0x0 IL_0014 7f 01 00 00 04 ldsflda 0x4000001 IL_0019 28 01 00 00 06 call 0x6000001 IL_001e 0c stloc.2 IL_001f 08 ldloc.2 IL_0020 2a ret lvaSetClass: setting class for V00 to (00007FFF8030CD90) ctest lvaSetClass: setting class for V01 to (00007FFF8030CD90) ctest lvaGrabTemp returning 3 (V03 tmp0) (a long lifetime temp) called for OutgoingArgSpace. ; Initial local variable assignments ; ; V00 loc0 ref class-hnd ; V01 loc1 ref class-hnd ; V02 loc2 long ; V03 OutArgs lclBlk "OutgoingArgSpace" *************** In compInitDebuggingInfo() for a:main():int getVars() returned cVars = 0, extendOthers = true info.compVarScopesCount = 3 VarNum LVNum Name Beg End 0: 00h 00h V00 loc0 000h 021h 1: 01h 01h V01 loc1 000h 021h 2: 02h 02h V02 loc2 000h 021h info.compStmtOffsetsCount = 0 info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) *************** In fgFindBasicBlocks() for a:main():int Marked V01 as a single def local Marked V02 as a single def local Jump targets: none New Basic Block BB01 [0000] created. BB01 [000..021) IL Code Size,Instr 33, 12, Basic Block count 1, Local Variable Num,Ref count 4, 5 for method a:main():int OPTIONS: opts.MinOpts() == false Basic block list for 'a:main():int' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Pre-import *************** Finishing PHASE Pre-import *************** Starting PHASE Importation *************** In impImport() for a:main():int impImportBlockPending for BB01 Importing BB01 (PC=000) of 'a:main():int' [ 0] 0 (0x000) newobj lvaGrabTemp returning 4 (V04 tmp1) called for NewObj constructor temp. STMT00000 (IL 0x000... ???) [000003] -A---------- * ASG ref [000002] D------N---- +--* LCL_VAR ref V04 tmp1 [000001] ------------ \--* ALLOCOBJ ref [000000] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method Marked V04 as a single def local lvaSetClass: setting class for V04 to (00007FFF8030CD90) ctest [exact] 06000003 In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 STMT00001 (IL ???... ???) [000005] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 [ 1] 5 (0x005) stloc.0 STMT00002 (IL 0x005... ???) [000008] -A---------- * ASG ref [000007] D------N---- +--* LCL_VAR ref V00 loc0 [000006] ------------ \--* LCL_VAR ref V04 tmp1 [ 0] 6 (0x006) newobj lvaGrabTemp returning 5 (V05 tmp2) called for NewObj constructor temp. STMT00003 (IL 0x006... ???) [000012] -A---------- * ASG ref [000011] D------N---- +--* LCL_VAR ref V05 tmp2 [000010] ------------ \--* ALLOCOBJ ref [000009] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method Marked V05 as a single def local lvaSetClass: setting class for V05 to (00007FFF8030CD90) ctest [exact] 06000003 In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 STMT00004 (IL ???... ???) [000014] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 [ 1] 11 (0x00b) dup [ 2] 12 (0x00c) stsfld 04000001 STMT00005 (IL 0x00B... ???) [000018] -A--G------- * ASG ref [000017] ----G--N---- +--* FIELD ref S_1 [000016] ------------ \--* LCL_VAR ref V05 tmp2 [ 1] 17 (0x011) stloc.1 lvaUpdateClass: Updating class for V01 from (00007FFF8030CD90) ctest to (00007FFF8030CD90) ctest [exact] STMT00006 (IL ???... ???) [000020] -A---------- * ASG ref [000019] D------N---- +--* LCL_VAR ref V01 loc1 [000015] ------------ \--* LCL_VAR ref V05 tmp2 [ 0] 18 (0x012) ldloca.s 0 [ 1] 20 (0x014) ldsflda 04000001 [ 2] 25 (0x019) call 06000001 In Compiler::impImportCall: opcode is call, kind=0, callRetType is long, structSize is 0 STMT00007 (IL 0x012... ???) [000024] I-C-G------- * CALL long a.byrefsubbyref (exactContextHnd=0x00007FFF801BB401) [000022] ------------ arg0 +--* ADDR byref [000021] -------N---- | \--* LCL_VAR ref V00 loc0 [000023] H----------- arg1 \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] [ 1] 30 (0x01e) stloc.2 STMT00008 (IL ???... ???) [000027] -AC--------- * ASG long [000026] D------N---- +--* LCL_VAR long V02 loc2 [000025] --C--------- \--* RET_EXPR long (inl return from call [000024]) [ 0] 31 (0x01f) ldloc.2 [ 1] 32 (0x020) ret STMT00009 (IL 0x01F... ???) [000030] ------------ * RETURN int [000029] ------------ \--* CAST int <- long [000028] ------------ \--* LCL_VAR long V02 loc2 *************** Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) [000003] -A---------- * ASG ref [000002] D------N---- +--* LCL_VAR ref V04 tmp1 [000001] ------------ \--* ALLOCOBJ ref [000000] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00001 (IL ???... ???) [000005] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 ***** BB01 STMT00002 (IL 0x005... ???) [000008] -A---------- * ASG ref [000007] D------N---- +--* LCL_VAR ref V00 loc0 [000006] ------------ \--* LCL_VAR ref V04 tmp1 ***** BB01 STMT00003 (IL 0x006...0x00C) [000012] -A---------- * ASG ref [000011] D------N---- +--* LCL_VAR ref V05 tmp2 [000010] ------------ \--* ALLOCOBJ ref [000009] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00004 (IL ???... ???) [000014] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00005 (IL 0x00B... ???) [000018] -A--G------- * ASG ref [000017] ----G--N---- +--* FIELD ref S_1 [000016] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00006 (IL ???...0x011) [000020] -A---------- * ASG ref [000019] D------N---- +--* LCL_VAR ref V01 loc1 [000015] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00007 (IL 0x012...0x01E) [000024] I-C-G------- * CALL long a.byrefsubbyref (exactContextHnd=0x00007FFF801BB401) [000022] ------------ arg0 +--* ADDR byref [000021] -------N---- | \--* LCL_VAR ref V00 loc0 [000023] H----------- arg1 \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] ***** BB01 STMT00008 (IL ???... ???) [000027] -AC--------- * ASG long [000026] D------N---- +--* LCL_VAR long V02 loc2 [000025] --C--------- \--* RET_EXPR long (inl return from call [000024]) ***** BB01 STMT00009 (IL 0x01F...0x020) [000030] ------------ * RETURN int [000029] ------------ \--* CAST int <- long [000028] ------------ \--* LCL_VAR long V02 loc2 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Indirect call transform -- no candidates to transform *************** Finishing PHASE Indirect call transform [no changes] *************** Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Finishing PHASE Expand patchpoints [no changes] *************** Starting PHASE Post-import *************** Finishing PHASE Post-import *************** Starting PHASE Morph - Init New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) *************** In fgRemoveEmptyBlocks *************** Finishing PHASE Morph - Init *************** In fgDebugCheckBBlist *************** Starting PHASE Morph - Inlining Expanding INLINE_CANDIDATE in statement STMT00001 in BB01: STMT00001 (IL ???... ???) [000005] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 thisArg: is a local var [000004] ------------ * LCL_VAR ref V04 tmp1 INLINER: inlineInfo.tokenLookupContextHandle for ctest:.ctor():this set to 0x00007FFF8030CD91: Invoking compiler for the inlinee method ctest:.ctor():this : IL to import: IL_0000 02 ldarg.0 IL_0001 28 01 00 00 0a call 0xA000001 IL_0006 2a ret INLINER impTokenLookupContextHandle for ctest:.ctor():this is 0x00007FFF8030CD91. *************** In fgFindBasicBlocks() for ctest:.ctor():this Jump targets: none Computing inlinee profile scale: ... call site not profiled New Basic Block BB02 [0001] created. BB02 [000..007) Basic block list for 'ctest:.ctor():this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB02 [0001] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000005] Starting PHASE Pre-import *************** Inline @[000005] Finishing PHASE Pre-import *************** Inline @[000005] Starting PHASE Importation *************** In impImport() for ctest:.ctor():this impImportBlockPending for BB02 Importing BB02 (PC=000) of 'ctest:.ctor():this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 0A000001 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000031] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 [ 0] 6 (0x006) ret *************** Inline @[000005] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB02 [0001] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB02 [000..007) (return), preds={} succs={} ***** BB02 [000031] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000005] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000005] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000005] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000005] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000005] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000005] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000005] ----------- Arguments setup: Inlinee method body: STMT00010 (IL ???... ???) [000031] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 fgInlineAppendStatements: no gc ref inline locals. Successfully inlined ctest:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'a:main():int' calling 'ctest:.ctor():this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00010 in BB01: STMT00010 (IL ???... ???) [000031] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000004] ------------ this in rcx \--* LCL_VAR ref V04 tmp1 thisArg: is a local var [000004] ------------ * LCL_VAR ref V04 tmp1 INLINER: inlineInfo.tokenLookupContextHandle for System.Object:.ctor():this set to 0x00007FFF7FF753B9: Invoking compiler for the inlinee method System.Object:.ctor():this : IL to import: IL_0000 2a ret INLINER impTokenLookupContextHandle for System.Object:.ctor():this is 0x00007FFF7FF753B9. *************** In fgFindBasicBlocks() for System.Object:.ctor():this Jump targets: none Computing inlinee profile scale: ... call site not profiled New Basic Block BB03 [0002] created. BB03 [000..001) Basic block list for 'System.Object:.ctor():this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB03 [0002] 1 1 [000..001) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000031] Starting PHASE Pre-import *************** Inline @[000031] Finishing PHASE Pre-import *************** Inline @[000031] Starting PHASE Importation *************** In impImport() for System.Object:.ctor():this impImportBlockPending for BB03 Importing BB03 (PC=000) of 'System.Object:.ctor():this' [ 0] 0 (0x000) ret ** Note: inlinee IL was partially imported -- imported 0 of 1 bytes of method IL *************** Inline @[000031] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB03 [0002] 1 1 [000..001) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB03 [000..001) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000031] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000031] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000031] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000031] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000031] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000031] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000031] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Successfully inlined System.Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'a:main():int' calling 'System.Object:.ctor():this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00004 in BB01: STMT00004 (IL ???... ???) [000014] I-C-G------- * CALL void ctest..ctor (exactContextHnd=0x00007FFF8030CD91) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 thisArg: is a local var [000013] ------------ * LCL_VAR ref V05 tmp2 INLINER: inlineInfo.tokenLookupContextHandle for ctest:.ctor():this set to 0x00007FFF8030CD91: Invoking compiler for the inlinee method ctest:.ctor():this : IL to import: IL_0000 02 ldarg.0 IL_0001 28 01 00 00 0a call 0xA000001 IL_0006 2a ret INLINER impTokenLookupContextHandle for ctest:.ctor():this is 0x00007FFF8030CD91. *************** In fgFindBasicBlocks() for ctest:.ctor():this Jump targets: none Computing inlinee profile scale: ... call site not profiled New Basic Block BB04 [0003] created. BB04 [000..007) Basic block list for 'ctest:.ctor():this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB04 [0003] 1 1 [000..007) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000014] Starting PHASE Pre-import *************** Inline @[000014] Finishing PHASE Pre-import *************** Inline @[000014] Starting PHASE Importation *************** In impImport() for ctest:.ctor():this impImportBlockPending for BB04 Importing BB04 (PC=000) of 'ctest:.ctor():this' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) call 0A000001 In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 [000034] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 [ 0] 6 (0x006) ret *************** Inline @[000014] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB04 [0003] 1 1 [000..007) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB04 [000..007) (return), preds={} succs={} ***** BB04 [000034] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000014] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000014] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000014] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000014] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000014] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000014] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000014] ----------- Arguments setup: Inlinee method body: STMT00011 (IL ???... ???) [000034] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 fgInlineAppendStatements: no gc ref inline locals. Successfully inlined ctest:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'a:main():int' calling 'ctest:.ctor():this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00011 in BB01: STMT00011 (IL ???... ???) [000034] I-C-G------- * CALL void System.Object..ctor (exactContextHnd=0x00007FFF7FF753B9) [000013] ------------ this in rcx \--* LCL_VAR ref V05 tmp2 thisArg: is a local var [000013] ------------ * LCL_VAR ref V05 tmp2 INLINER: inlineInfo.tokenLookupContextHandle for System.Object:.ctor():this set to 0x00007FFF7FF753B9: Invoking compiler for the inlinee method System.Object:.ctor():this : IL to import: IL_0000 2a ret INLINER impTokenLookupContextHandle for System.Object:.ctor():this is 0x00007FFF7FF753B9. *************** In fgFindBasicBlocks() for System.Object:.ctor():this Jump targets: none Computing inlinee profile scale: ... call site not profiled New Basic Block BB05 [0004] created. BB05 [000..001) Basic block list for 'System.Object:.ctor():this' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB05 [0004] 1 1 [000..001) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000034] Starting PHASE Pre-import *************** Inline @[000034] Finishing PHASE Pre-import *************** Inline @[000034] Starting PHASE Importation *************** In impImport() for System.Object:.ctor():this impImportBlockPending for BB05 Importing BB05 (PC=000) of 'System.Object:.ctor():this' [ 0] 0 (0x000) ret ** Note: inlinee IL was partially imported -- imported 0 of 1 bytes of method IL *************** Inline @[000034] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB05 [0004] 1 1 [000..001) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB05 [000..001) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000034] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000034] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000034] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000034] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000034] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000034] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000034] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Successfully inlined System.Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'a:main():int' calling 'System.Object:.ctor():this' INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' Expanding INLINE_CANDIDATE in statement STMT00007 in BB01: STMT00007 (IL 0x012...0x01E) [000024] I-C-G------- * CALL long a.byrefsubbyref (exactContextHnd=0x00007FFF801BB401) [000022] ------------ arg0 +--* ADDR byref [000021] -------N---- | \--* LCL_VAR ref V00 loc0 [000023] H----------- arg1 \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] Argument #0: is a constant [000022] ------------ * ADDR byref [000021] -------N---- \--* LCL_VAR ref V00 loc0 Argument #1: is a constant [000023] H----------- * CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] INLINER: inlineInfo.tokenLookupContextHandle for a:byrefsubbyref(byref,byref):long set to 0x00007FFF801BB401: Invoking compiler for the inlinee method a:byrefsubbyref(byref,byref):long : IL to import: IL_0000 02 ldarg.0 IL_0001 03 ldarg.1 IL_0002 59 sub IL_0003 2a ret INLINER impTokenLookupContextHandle for a:byrefsubbyref(byref,byref):long is 0x00007FFF801BB401. *************** In fgFindBasicBlocks() for a:byrefsubbyref(byref,byref):long Jump targets: none Computing inlinee profile scale: ... call site not profiled New Basic Block BB06 [0005] created. BB06 [000..004) Basic block list for 'a:byrefsubbyref(byref,byref):long' ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB06 [0005] 1 1 [000..004) (return) ----------------------------------------------------------------------------------------------------------------------------------------- *************** Inline @[000024] Starting PHASE Pre-import *************** Inline @[000024] Finishing PHASE Pre-import *************** Inline @[000024] Starting PHASE Importation *************** In impImport() for a:byrefsubbyref(byref,byref):long impImportBlockPending for BB06 Importing BB06 (PC=000) of 'a:byrefsubbyref(byref,byref):long' [ 0] 0 (0x000) ldarg.0 [ 1] 1 (0x001) ldarg.1 [ 2] 2 (0x002) sub [ 1] 3 (0x003) ret Inlinee Return expression (before normalization) => [000040] ------------ * SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] Inlinee Return expression (after normalization) => [000040] ------------ * SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] ** Note: inlinee IL was partially imported -- imported 0 of 4 bytes of method IL *************** Inline @[000024] Finishing PHASE Importation Trees after Importation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB06 [0005] 1 1 [000..004) (return) i ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB06 [000..004) (return), preds={} succs={} ------------------------------------------------------------------------------------------------------------------- *************** Inline @[000024] Starting PHASE Indirect call transform -- no candidates to transform *************** Inline @[000024] Finishing PHASE Indirect call transform [no changes] *************** Inline @[000024] Starting PHASE Expand patchpoints -- no patchpoints to transform *************** Inline @[000024] Finishing PHASE Expand patchpoints [no changes] *************** Inline @[000024] Starting PHASE Post-import *************** In fgRemoveEmptyBlocks *************** Inline @[000024] Finishing PHASE Post-import ----------- Statements (and blocks) added due to the inlining of call [000024] ----------- Arguments setup: Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. Return expression for call at [000024] is [000040] ------------ * SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] Successfully inlined a:byrefsubbyref(byref,byref):long (4 IL bytes) (depth 1) [aggressive inline attribute] -------------------------------------------------------------------------------------------- INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' for 'a:main():int' calling 'a:byrefsubbyref(byref,byref):long' INLINER: during 'fgInline' result 'success' reason 'aggressive inline attribute' Replacing the return expression placeholder [000025] with [000040] [000025] --C--------- * RET_EXPR long (inl return from call [000040]) Inserting the inline return expression [000040] ------------ * SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] **************** Inline Tree Inlines into 06000002 a:main():int [1 IL=0000 TR=000005 06000003] [below ALWAYS_INLINE size] ctest:.ctor():this [2 IL=0001 TR=000031 0600049D] [below ALWAYS_INLINE size] System.Object:.ctor():this [3 IL=0006 TR=000014 06000003] [below ALWAYS_INLINE size] ctest:.ctor():this [4 IL=0001 TR=000034 0600049D] [below ALWAYS_INLINE size] System.Object:.ctor():this [5 IL=0025 TR=000024 06000001] [aggressive inline attribute] a:byrefsubbyref(byref,byref):long Budget: initialTime=159, finalTime=117, initialBudget=1590, currentBudget=1590 Budget: initialSize=883, finalSize=883 *************** Finishing PHASE Morph - Inlining Trees after Morph - Inlining ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) [000003] -A---------- * ASG ref [000002] D------N---- +--* LCL_VAR ref V04 tmp1 [000001] ------------ \--* ALLOCOBJ ref [000000] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) [000008] -A---------- * ASG ref [000007] D------N---- +--* LCL_VAR ref V00 loc0 [000006] ------------ \--* LCL_VAR ref V04 tmp1 ***** BB01 STMT00003 (IL 0x006...0x00C) [000012] -A---------- * ASG ref [000011] D------N---- +--* LCL_VAR ref V05 tmp2 [000010] ------------ \--* ALLOCOBJ ref [000009] H----------- \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) [000018] -A--G------- * ASG ref [000017] ----G--N---- +--* FIELD ref S_1 [000016] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00006 (IL ???...0x011) [000020] -A---------- * ASG ref [000019] D------N---- +--* LCL_VAR ref V01 loc1 [000015] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00008 (IL ???... ???) [000027] -AC--------- * ASG long [000026] D------N---- +--* LCL_VAR long V02 loc2 [000040] ------------ \--* SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] ***** BB01 STMT00009 (IL 0x01F...0x020) [000030] ------------ * RETURN int [000029] ------------ \--* CAST int <- long [000028] ------------ \--* LCL_VAR long V02 loc2 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Allocate Objects disabled, punting *************** Finishing PHASE Allocate Objects [no changes] *************** Starting PHASE Morph - Add internal blocks *************** After fgAddInternal() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** Finishing PHASE Morph - Add internal blocks *************** Starting PHASE Remove empty try *************** In fgRemoveEmptyTry() No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty try [no changes] *************** Starting PHASE Remove empty finally No EH in this method, nothing to remove. *************** Finishing PHASE Remove empty finally [no changes] *************** Starting PHASE Merge callfinally chains No EH in this method, nothing to merge. *************** Finishing PHASE Merge callfinally chains [no changes] *************** Starting PHASE Clone finally No EH in this method, no cloning. *************** Finishing PHASE Clone finally [no changes] *************** Starting PHASE Compute preds Renumbering the basic blocks for fgComputePred *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** After renumbering the basic blocks =============== No blocks renumbered! New BlockSet epoch 2, # of blocks (including unused BB00): 2, bitset array size: 1 (short) *************** In fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** After fgComputePreds() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Compute preds *************** Starting PHASE Merge throw blocks *************** In fgTailMergeThrows Method does not have multiple noreturn calls. *************** Finishing PHASE Merge throw blocks [no changes] *************** Starting PHASE Update flow graph early pass *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Finishing PHASE Update flow graph early pass *************** Starting PHASE Morph - Promote Structs *************** In fgResetImplicitByRefRefCount() *************** In fgPromoteStructs() lvaTable before fgPromoteStructs ; Initial local variable assignments ; ; V00 loc0 ref ld-addr-op class-hnd ; V01 loc1 ref class-hnd exact ; V02 loc2 long ; V03 OutArgs lclBlk "OutgoingArgSpace" ; V04 tmp1 ref class-hnd exact "NewObj constructor temp" ; V05 tmp2 ref class-hnd exact "NewObj constructor temp" lvaTable after fgPromoteStructs ; Initial local variable assignments ; ; V00 loc0 ref ld-addr-op class-hnd ; V01 loc1 ref class-hnd exact ; V02 loc2 long ; V03 OutArgs lclBlk "OutgoingArgSpace" ; V04 tmp1 ref class-hnd exact "NewObj constructor temp" ; V05 tmp2 ref class-hnd exact "NewObj constructor temp" *************** Finishing PHASE Morph - Promote Structs *************** Starting PHASE Morph - Structs/AddrExp *************** In fgMarkAddressExposedLocals() LocalAddressVisitor visiting statement: STMT00000 (IL 0x000...0x005) [000003] -AC--------- * ASG ref [000002] D------N---- +--* LCL_VAR ref V04 tmp1 [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000000] H----------- arg0 \--* CNS_INT(h) long 0x7fff8030cd90 method LocalAddressVisitor visiting statement: STMT00002 (IL 0x005... ???) [000008] -A---------- * ASG ref [000007] D------N---- +--* LCL_VAR ref V00 loc0 [000006] ------------ \--* LCL_VAR ref V04 tmp1 LocalAddressVisitor visiting statement: STMT00003 (IL 0x006...0x00C) [000012] -AC--------- * ASG ref [000011] D------N---- +--* LCL_VAR ref V05 tmp2 [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000009] H----------- arg0 \--* CNS_INT(h) long 0x7fff8030cd90 method LocalAddressVisitor visiting statement: STMT00005 (IL 0x00B... ???) [000018] -A--G------- * ASG ref [000017] ----G--N---- +--* FIELD ref S_1 [000016] ------------ \--* LCL_VAR ref V05 tmp2 LocalAddressVisitor visiting statement: STMT00006 (IL ???...0x011) [000020] -A---------- * ASG ref [000019] D------N---- +--* LCL_VAR ref V01 loc1 [000015] ------------ \--* LCL_VAR ref V05 tmp2 LocalAddressVisitor visiting statement: STMT00008 (IL ???... ???) [000027] -AC--------- * ASG long [000026] D------N---- +--* LCL_VAR long V02 loc2 [000040] ------------ \--* SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] Local V00 should not be enregistered because: it is address exposed LocalAddressVisitor visiting statement: STMT00009 (IL 0x01F...0x020) [000030] ------------ * RETURN int [000029] ------------ \--* CAST int <- long [000028] ------------ \--* LCL_VAR long V02 loc2 *************** Finishing PHASE Morph - Structs/AddrExp *************** Starting PHASE Morph - ByRefs *************** In fgRetypeImplicitByRefArgs() *************** Finishing PHASE Morph - ByRefs *************** Starting PHASE Morph - Global *************** In fgMorphBlocks() Morphing BB01 of 'a:main():int' fgMorphTree BB01, STMT00000 (before) [000003] -AC--------- * ASG ref [000002] D------N---- +--* LCL_VAR ref V04 tmp1 [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000000] H----------- arg0 \--* CNS_INT(h) long 0x7fff8030cd90 method Initializing arg info for 1.CALL: ArgTable for 1.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 0.CNS_INT long (By ref), 1 reg: rcx, byteAlignment=8] Morphing args for 1.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, nextSlotByteOffset=32, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000000] H----+------ * CNS_INT(h) long 0x7fff8030cd90 method Replaced with placeholder node: [000042] ----------L- * ARGPLACE long Shuffled argument table: rcx ArgTable for 1.CALL after fgMorphArgs: fgArgTabEntry[arg 0 0.CNS_INT long (By ref), 1 reg: rcx, byteAlignment=8, lateArgInx=0, processed] fgMorphTree BB01, STMT00000 (after) [000003] -AC--+------ * ASG ref [000002] D----+-N---- +--* LCL_VAR ref V04 tmp1 [000001] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000000] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method fgMorphTree BB01, STMT00002 (before) [000008] -A---------- * ASG ref [000007] D------N---- +--* LCL_VAR ref (AX) V00 loc0 [000006] ------------ \--* LCL_VAR ref V04 tmp1 fgMorphTree BB01, STMT00003 (before) [000012] -AC--------- * ASG ref [000011] D------N---- +--* LCL_VAR ref V05 tmp2 [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000009] H----------- arg0 \--* CNS_INT(h) long 0x7fff8030cd90 method Initializing arg info for 10.CALL: ArgTable for 10.CALL after fgInitArgInfo: fgArgTabEntry[arg 0 9.CNS_INT long (By ref), 1 reg: rcx, byteAlignment=8] Morphing args for 10.CALL: argSlots=1, preallocatedArgCount=4, nextSlotNum=4, nextSlotByteOffset=32, outgoingArgSpaceSize=32 Sorting the arguments: Deferred argument ('rcx'): [000009] H----+------ * CNS_INT(h) long 0x7fff8030cd90 method Replaced with placeholder node: [000043] ----------L- * ARGPLACE long Shuffled argument table: rcx ArgTable for 10.CALL after fgMorphArgs: fgArgTabEntry[arg 0 9.CNS_INT long (By ref), 1 reg: rcx, byteAlignment=8, lateArgInx=0, processed] fgMorphTree BB01, STMT00003 (after) [000012] -AC--+------ * ASG ref [000011] D----+-N---- +--* LCL_VAR ref V05 tmp2 [000010] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000009] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method fgMorphTree BB01, STMT00005 (before) [000018] -A--G------- * ASG ref [000017] ----G--N---- +--* FIELD ref S_1 [000016] ------------ \--* LCL_VAR ref V05 tmp2 fgMorphTree BB01, STMT00005 (after) [000018] -A--G+------ * ASG ref [000017] n---G+-N---- +--* IND ref [000044] H----+------ | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] [000016] -----+------ \--* LCL_VAR ref V05 tmp2 fgMorphTree BB01, STMT00006 (before) [000020] -A---------- * ASG ref [000019] D------N---- +--* LCL_VAR ref V01 loc1 [000015] ------------ \--* LCL_VAR ref V05 tmp2 GenTreeNode creates assertion: [000020] -A---------- * ASG ref In BB01 New Local Copy Assertion: V01 == V05 index=#01, mask=0000000000000001 fgMorphTree BB01, STMT00008 (before) [000027] -AC--------- * ASG long [000026] D------N---- +--* LCL_VAR long V02 loc2 [000040] ------------ \--* SUB long [000037] ------------ +--* ADDR long [000038] -------N---- | \--* LCL_VAR ref (AX) V00 loc0 [000039] H----------- \--* CNS_INT(h) byref 0x1f6a1802cb8 static Fseq[S_1] fgMorphTree BB01, STMT00008 (after) [000027] -A---+------ * ASG long [000026] D----+-N---- +--* LCL_VAR long V02 loc2 [000040] -----+------ \--* ADD long [000037] -----+------ +--* ADDR long [000038] ----G+-N---- | \--* LCL_VAR ref (AX) V00 loc0 [000039] H----+------ \--* CNS_INT(h) byref -0x1f6a1802cb8 static fgMorphTree BB01, STMT00009 (before) [000030] ------------ * RETURN int [000029] ------------ \--* CAST int <- long [000028] ------------ \--* LCL_VAR long V02 loc2 fgMorphTree BB01, STMT00009 (after) [000030] -----+------ * RETURN int [000028] C----+------ \--* LCL_VAR int V02 loc2 *************** Finishing PHASE Morph - Global Trees after Morph - Global ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) [000003] -AC--+------ * ASG ref [000002] D----+-N---- +--* LCL_VAR ref V04 tmp1 [000001] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000000] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) [000008] -A--G+------ * ASG ref [000007] D---G+-N---- +--* LCL_VAR ref (AX) V00 loc0 [000006] -----+------ \--* LCL_VAR ref V04 tmp1 ***** BB01 STMT00003 (IL 0x006...0x00C) [000012] -AC--+------ * ASG ref [000011] D----+-N---- +--* LCL_VAR ref V05 tmp2 [000010] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000009] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) [000018] -A--G+------ * ASG ref [000017] n---G+-N---- +--* IND ref [000044] H----+------ | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] [000016] -----+------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00006 (IL ???...0x011) [000020] -A---+------ * ASG ref [000019] D----+-N---- +--* LCL_VAR ref V01 loc1 [000015] -----+------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00008 (IL ???... ???) [000027] -A---+------ * ASG long [000026] D----+-N---- +--* LCL_VAR long V02 loc2 [000040] -----+------ \--* ADD long [000037] -----+------ +--* ADDR long [000038] ----G+-N---- | \--* LCL_VAR ref (AX) V00 loc0 [000039] H----+------ \--* CNS_INT(h) byref -0x1f6a1802cb8 static ***** BB01 STMT00009 (IL 0x01F...0x020) [000030] -----+------ * RETURN int [000028] C----+------ \--* LCL_VAR int V02 loc2 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE GS Cookie No GS security needed *************** Finishing PHASE GS Cookie *************** Starting PHASE Compute edge weights (1, false) *************** In fgComputeBlockAndEdgeWeights() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- -- no profile data, so using default called count fgComputeEdgeWeights() was able to compute exact edge weights for all of the 0 edges, using 1 passes. *************** Finishing PHASE Compute edge weights (1, false) *************** Starting PHASE Create EH funclets *************** In fgCreateFunclets() After fgCreateFunclets() ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** Finishing PHASE Create EH funclets *************** Starting PHASE Optimize layout *************** In optOptimizeLayout() *************** Exception Handling table is empty *************** In fgDebugCheckBBlist *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** In fgUpdateFlowGraph() Before updating the flow graph: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize layout *************** Starting PHASE Compute blocks reachability *************** In fgComputeReachability *************** In fgDebugCheckBBlist Renumbering the basic blocks for fgComputeReachability pass #1 *************** Before renumbering the basic blocks ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty *************** After renumbering the basic blocks =============== No blocks renumbered! Enter blocks: BB01 After computing reachability sets: ------------------------------------------------ BBnum Reachable by ------------------------------------------------ BB01 : BB01 After computing reachability: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** In fgComputeDoms *************** In fgDebugCheckBBlist Dominator computation start blocks (those blocks with no incoming edges): BB01 ------------------------------------------------ BBnum Dominated by ------------------------------------------------ BB01: BB01 Inside fgBuildDomTree After computing the Dominance Tree: After numbering the dominator tree: BB01: pre=01, post=01 *************** Finishing PHASE Compute blocks reachability *************** Starting PHASE Optimize loops *************** In optOptimizeLoops() *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize loops *************** Starting PHASE Clone loops *************** In optCloneLoops() *************** Finishing PHASE Clone loops *************** Starting PHASE Unroll loops *************** Finishing PHASE Unroll loops *************** Starting PHASE Mark local vars *************** In lvaMarkLocalVars() *** lvaComputeRefCounts *** *** lvaComputeRefCounts -- explicit counts *** *** marking local variables in block BB01 (weight=1 ) STMT00000 (IL 0x000...0x005) [000003] -AC--+------ * ASG ref [000002] D----+-N---- +--* LCL_VAR ref V04 tmp1 [000001] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000000] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method New refCnts for V04: refCnt = 1, refCntWtd = 2 STMT00002 (IL 0x005... ???) [000008] -A--G+------ * ASG ref [000007] D---G+-N---- +--* LCL_VAR ref (AX) V00 loc0 [000006] -----+------ \--* LCL_VAR ref V04 tmp1 New refCnts for V00: refCnt = 1, refCntWtd = 1 New refCnts for V04: refCnt = 2, refCntWtd = 4 STMT00003 (IL 0x006...0x00C) [000012] -AC--+------ * ASG ref [000011] D----+-N---- +--* LCL_VAR ref V05 tmp2 [000010] --C--+------ \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST [000009] H----+------ arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method New refCnts for V05: refCnt = 1, refCntWtd = 2 STMT00005 (IL 0x00B... ???) [000018] -A--G+------ * ASG ref [000017] n---G+-N---- +--* IND ref [000044] H----+------ | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] [000016] -----+------ \--* LCL_VAR ref V05 tmp2 New refCnts for V05: refCnt = 2, refCntWtd = 4 STMT00006 (IL ???...0x011) [000020] -A---+------ * ASG ref [000019] D----+-N---- +--* LCL_VAR ref V01 loc1 [000015] -----+------ \--* LCL_VAR ref V05 tmp2 New refCnts for V01: refCnt = 1, refCntWtd = 1 New refCnts for V05: refCnt = 3, refCntWtd = 6 STMT00008 (IL ???... ???) [000027] -A---+------ * ASG long [000026] D----+-N---- +--* LCL_VAR long V02 loc2 [000040] -----+------ \--* ADD long [000037] -----+------ +--* ADDR long [000038] ----G+-N---- | \--* LCL_VAR ref (AX) V00 loc0 [000039] H----+------ \--* CNS_INT(h) byref -0x1f6a1802cb8 static New refCnts for V02: refCnt = 1, refCntWtd = 1 New refCnts for V00: refCnt = 2, refCntWtd = 2 STMT00009 (IL 0x01F...0x020) [000030] -----+------ * RETURN int [000028] C----+------ \--* LCL_VAR int V02 loc2 New refCnts for V02: refCnt = 2, refCntWtd = 2 *** lvaComputeRefCounts -- implicit counts *** *************** In optAddCopies() *************** Finishing PHASE Mark local vars *************** Starting PHASE Optimize bools *************** In optOptimizeBools() *************** In fgDebugCheckBBlist *************** Finishing PHASE Optimize bools *************** Starting PHASE Find oper order *************** In fgFindOperOrder() *************** Finishing PHASE Find oper order *************** Starting PHASE Set block order *************** In fgSetBlockOrder() The biggest BB has 6 tree nodes *************** Finishing PHASE Set block order Trees before Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref N002 ( 4, 12) [000017] n---G--N---- +--* IND ref N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00006 (IL ???...0x011) N003 ( 5, 4) [000020] -A------R--- * ASG ref N002 ( 3, 2) [000019] D------N---- +--* LCL_VAR ref V01 loc1 N001 ( 1, 1) [000015] ------------ \--* LCL_VAR ref V05 tmp2 ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 N004 ( 6, 14) [000040] ------------ \--* ADD long N002 ( 3, 3) [000037] ------------ +--* ADDR long N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Build SSA representation *************** In SsaBuilder::Build() [SsaBuilder] Max block count is 2. ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- *************** Exception Handling table is empty [SsaBuilder] Topologically sorted the graph. [SsaBuilder::ComputeImmediateDom] Inside fgBuildDomTree After computing the Dominance Tree: *************** In fgLocalVarLiveness() In fgLocalVarLivenessInit Tracked variable (4 out of 6) table: V05 tmp2 [ ref]: refCnt = 3, refCntWtd = 6 V04 tmp1 [ ref]: refCnt = 2, refCntWtd = 4 V02 loc2 [ long]: refCnt = 2, refCntWtd = 2 V01 loc1 [ ref]: refCnt = 1, refCntWtd = 1 *************** In fgPerBlockLocalVarLiveness() BB01 USE(0)={ } + ByrefExposed + GcHeap DEF(4)={V05 V04 V02 V01} + ByrefExposed + GcHeap ** Memory liveness computed, GcHeap states and ByrefExposed states diverge *************** In fgInterBlockLocalVarLiveness() BB liveness after fgLiveVarAnalysis(): BB01 IN (0)={} + ByrefExposed + GcHeap OUT(0)={} top level assign removing stmt with no side effects Removing statement STMT00006 (IL ???...0x011) N003 ( 5, 4) [000020] -A------R--- * ASG ref N002 ( 3, 2) [000019] D------N---- +--* LCL_VAR ref V01 loc1 N001 ( 1, 1) [000015] ------------ \--* LCL_VAR ref V05 tmp2 in BB01 as useless: *************** In optRemoveRedundantZeroInits() *************** In SsaBuilder::InsertPhiFunctions() Inserting phi functions: *************** In SsaBuilder::RenameVariables() After fgSsaBuild: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref N002 ( 4, 12) [000017] n---G--N---- +--* IND ref N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 N004 ( 6, 14) [000040] ------------ \--* ADD long N002 ( 3, 3) [000037] ------------ +--* ADDR long N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Build SSA representation Trees after Build SSA representation ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref N002 ( 4, 12) [000017] n---G--N---- +--* IND ref N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 N004 ( 6, 14) [000040] ------------ \--* ADD long N002 ( 3, 3) [000037] ------------ +--* ADDR long N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Early Value Propagation *************** In optEarlyProp() After optEarlyProp: ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref N002 ( 4, 12) [000017] n---G--N---- +--* IND ref N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 N004 ( 6, 14) [000040] ------------ \--* ADD long N002 ( 3, 3) [000037] ------------ +--* ADDR long N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Early Value Propagation *************** Starting PHASE Do value numbering *************** In fgValueNumber() Memory Initial Value in BB01 is: $c0 The SSA definition for ByrefExposed (#1) at start of BB01 is $c0 {InitVal($80)} The SSA definition for GcHeap (#1) at start of BB01 is $c0 {InitVal($80)} ***** BB01, STMT00000(before) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method N001 [000042] ARGPLACE => $100 {100} N002 [000000] CNS_INT(h) 0x7fff8030cd90 method => $140 {Hnd const: 0x00007FFF8030CD90} VN of ARGPLACE tree [000042] updated to $140 {Hnd const: 0x00007FFF8030CD90} N003 [000001] CALL help => $1c0 {JitNew($140, $180)} N004 [000002] LCL_VAR V04 tmp1 d:2 => $1c0 {JitNew($140, $180)} N005 [000003] ASG => $1c0 {JitNew($140, $180)} ***** BB01, STMT00000(after) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref $1c0 N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 $1c0 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 --------- ***** BB01, STMT00002(before) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) N001 [000006] LCL_VAR V04 tmp1 u:2 (last use) => $1c0 {JitNew($140, $180)} fgCurMemoryVN[ByrefExposed] assigned for local assign at [000008] to VN: $200. N003 [000008] ASG => $1c0 {JitNew($140, $180)} ***** BB01, STMT00002(after) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref $1c0 N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 --------- ***** BB01, STMT00003(before) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method N001 [000043] ARGPLACE => $101 {101} N002 [000009] CNS_INT(h) 0x7fff8030cd90 method => $140 {Hnd const: 0x00007FFF8030CD90} VN of ARGPLACE tree [000043] updated to $140 {Hnd const: 0x00007FFF8030CD90} N003 [000010] CALL help => $1c1 {JitNew($140, $182)} N004 [000011] LCL_VAR V05 tmp2 d:2 => $1c1 {JitNew($140, $182)} N005 [000012] ASG => $1c1 {JitNew($140, $182)} ***** BB01, STMT00003(after) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref $1c1 N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 $1c1 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 --------- ***** BB01, STMT00005(before) N004 ( 6, 14) [000018] -A--G------- * ASG ref N002 ( 4, 12) [000017] n---G--N---- +--* IND ref N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) N001 [000044] CNS_INT(h) 0x1f6a1802cb8 static Fseq[S_1] => $141 {Hnd const: 0x000001F6A1802CB8} N003 [000016] LCL_VAR V05 tmp2 u:2 (last use) => $1c1 {JitNew($140, $182)} fgCurMemoryVN[GcHeap] assigned for assign-of-IND at [000018] to VN: $184. N004 [000018] ASG => $VN.Void ***** BB01, STMT00005(after) N004 ( 6, 14) [000018] -A--G------- * ASG ref $VN.Void N002 ( 4, 12) [000017] n---G--N---- +--* IND ref $1c1 N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 --------- ***** BB01, STMT00008(before) N006 ( 10, 17) [000027] -A------R--- * ASG long N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 N004 ( 6, 14) [000040] ------------ \--* ADD long N002 ( 3, 3) [000037] ------------ +--* ADDR long N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static N001 [000038] LCL_VAR V00 loc0 => $280 {ByrefExposedLoad($82, $240, $201)} N002 [000037] ADDR => $2c0 {2c0} N003 [000039] CNS_INT(h) -0x1f6a1802cb8 static => $142 {Hnd const: 0xFFFFFE095E7FD348} N004 [000040] ADD => $300 {ADD($142, $2c0)} N005 [000026] LCL_VAR V02 loc2 d:2 => $300 {ADD($142, $2c0)} N006 [000027] ASG => $300 {ADD($142, $2c0)} ***** BB01, STMT00008(after) N006 ( 10, 17) [000027] -A------R--- * ASG long $300 N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 $300 N004 ( 6, 14) [000040] ------------ \--* ADD long $300 N002 ( 3, 3) [000037] ------------ +--* ADDR long $2c0 N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 $280 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static $142 --------- ***** BB01, STMT00009(before) N002 ( 4, 3) [000030] ------------ * RETURN int N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) VNForCastOper(int) is $83 N001 [000028] LCL_VAR V02 loc2 u:2 (last use) => $340 {Cast($300, $83)} N002 [000030] RETURN => $380 {380} ***** BB01, STMT00009(after) N002 ( 4, 3) [000030] ------------ * RETURN int $380 N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) $340 finish(BB01). *************** Finishing PHASE Do value numbering *************** Starting PHASE Hoist loop code *************** Finishing PHASE Hoist loop code *************** Starting PHASE VN based copy prop *************** In optVnCopyProp() Copy Assertion for BB01 curSsaName stack: { } Live vars: {} => {V04} Live vars: {V04} => {} Live vars: {} => {V05} Live vars: {V05} => {} Live vars: {} => {V02} Live vars: {V02} => {} *************** Finishing PHASE VN based copy prop *************** Starting PHASE Optimize Valnum CSEs *************** In optOptimizeCSEs() Blocks/Trees at start of optOptimizeCSE phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref $1c0 N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 $1c0 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref $1c0 N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref $1c1 N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 $1c1 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref $VN.Void N002 ( 4, 12) [000017] n---G--N---- +--* IND ref $1c1 N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long $300 N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 $300 N004 ( 6, 14) [000040] ------------ \--* ADD long $300 N002 ( 3, 3) [000037] ------------ +--* ADDR long $2c0 N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 $280 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static $142 ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int $380 N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) $340 ------------------------------------------------------------------------------------------------------------------- *************** In optOptimizeValnumCSEs() *************** Finishing PHASE Optimize Valnum CSEs *************** Starting PHASE Assertion prop *************** In optAssertionPropMain() Blocks/Trees at start of phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref $1c0 N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 $1c0 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref $1c0 N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref $1c1 N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 $1c1 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref $VN.Void N002 ( 4, 12) [000017] n---G--N---- +--* IND ref $1c1 N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long $300 N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 $300 N004 ( 6, 14) [000040] ------------ \--* ADD long $300 N002 ( 3, 3) [000037] ------------ +--* ADDR long $2c0 N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 $280 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static $142 ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int $380 N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) $340 ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Assertion prop *************** Starting PHASE Optimize index checks *************** In OptimizeRangeChecks() Blocks/trees before phase ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref $1c0 N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 $1c0 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref $1c0 N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref $1c1 N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 $1c1 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref $VN.Void N002 ( 4, 12) [000017] n---G--N---- +--* IND ref $1c1 N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long $300 N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 $300 N004 ( 6, 14) [000040] ------------ \--* ADD long $300 N002 ( 3, 3) [000037] ------------ +--* ADDR long $2c0 N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 $280 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static $142 ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int $380 N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) $340 ------------------------------------------------------------------------------------------------------------------- *************** Finishing PHASE Optimize index checks *************** Starting PHASE Insert GC Polls *************** Finishing PHASE Insert GC Polls [no changes] *************** Starting PHASE Determine first cold block *************** In fgDetermineFirstColdBlock() No procedure splitting will be done for this method *************** Finishing PHASE Determine first cold block Trees before Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} ***** BB01 STMT00000 (IL 0x000...0x005) N005 ( 16, 16) [000003] -AC-----R--- * ASG ref $1c0 N004 ( 1, 1) [000002] D------N---- +--* LCL_VAR ref V04 tmp1 d:2 $1c0 N003 ( 16, 16) [000001] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 N002 ( 2, 10) [000000] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00002 (IL 0x005... ???) N003 ( 5, 4) [000008] -A--G---R--- * ASG ref $1c0 N002 ( 3, 2) [000007] D---G--N---- +--* LCL_VAR ref (AX) V00 loc0 N001 ( 1, 1) [000006] ------------ \--* LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 ***** BB01 STMT00003 (IL 0x006...0x00C) N005 ( 16, 16) [000012] -AC-----R--- * ASG ref $1c1 N004 ( 1, 1) [000011] D------N---- +--* LCL_VAR ref V05 tmp2 d:2 $1c1 N003 ( 16, 16) [000010] --C--------- \--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 N002 ( 2, 10) [000009] H----------- arg0 in rcx \--* CNS_INT(h) long 0x7fff8030cd90 method $140 ***** BB01 STMT00005 (IL 0x00B... ???) N004 ( 6, 14) [000018] -A--G------- * ASG ref $VN.Void N002 ( 4, 12) [000017] n---G--N---- +--* IND ref $1c1 N001 ( 2, 10) [000044] H----------- | \--* CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ \--* LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 ***** BB01 STMT00008 (IL ???... ???) N006 ( 10, 17) [000027] -A------R--- * ASG long $300 N005 ( 3, 2) [000026] D------N---- +--* LCL_VAR long V02 loc2 d:2 $300 N004 ( 6, 14) [000040] ------------ \--* ADD long $300 N002 ( 3, 3) [000037] ------------ +--* ADDR long $2c0 N001 ( 3, 2) [000038] ----G--N---- | \--* LCL_VAR ref (AX) V00 loc0 $280 N003 ( 2, 10) [000039] H----------- \--* CNS_INT(h) byref -0x1f6a1802cb8 static $142 ***** BB01 STMT00009 (IL 0x01F...0x020) N002 ( 4, 3) [000030] ------------ * RETURN int $380 N001 ( 3, 2) [000028] C----------- \--* LCL_VAR int V02 loc2 u:2 (last use) $340 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Rationalize IR rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N005 ( 16, 16) [000003] DAC--------- * STORE_LCL_VAR ref V04 tmp1 d:2 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N003 ( 5, 4) [000008] DA--G------- * STORE_LCL_VAR ref (AX) V00 loc0 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N005 ( 16, 16) [000012] DAC--------- * STORE_LCL_VAR ref V05 tmp2 d:2 Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: N001 ( 3, 2) [000038] -------N---- t38 = LCL_VAR_ADDR byref V00 loc0 rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) N006 ( 10, 17) [000027] DA---------- * STORE_LCL_VAR long V02 loc2 d:2 *************** Finishing PHASE Rationalize IR Trees after Rationalize IR ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} [000045] ------------ IL_OFFSET void IL offset: 0x0 N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 /--* t1 ref N005 ( 16, 16) [000003] DA---------- * STORE_LCL_VAR ref V04 tmp1 d:2 [000046] ------------ IL_OFFSET void IL offset: 0x5 N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 /--* t6 ref N003 ( 5, 4) [000008] DA--G------- * STORE_LCL_VAR ref (AX) V00 loc0 [000047] ------------ IL_OFFSET void IL offset: 0x6 N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 /--* t10 ref N005 ( 16, 16) [000012] DA---------- * STORE_LCL_VAR ref V05 tmp2 d:2 [000048] ------------ IL_OFFSET void IL offset: 0xb N001 ( 2, 10) [000044] H----------- t44 = CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ t16 = LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 /--* t44 long +--* t16 ref [000049] -A--G------- * STOREIND ref N001 ( 3, 2) [000038] -------N---- t38 = LCL_VAR_ADDR byref V00 loc0 N003 ( 2, 10) [000039] H----------- t39 = CNS_INT(h) byref -0x1f6a1802cb8 static $142 /--* t38 byref +--* t39 byref N004 ( 6, 14) [000040] ------------ t40 = * ADD long $300 /--* t40 long N006 ( 10, 17) [000027] DA---------- * STORE_LCL_VAR long V02 loc2 d:2 [000050] ------------ IL_OFFSET void IL offset: 0x1f N001 ( 3, 2) [000028] C----------- t28 = LCL_VAR int V02 loc2 u:2 (last use) $340 /--* t28 int N002 ( 4, 3) [000030] ------------ * RETURN int $380 ------------------------------------------------------------------------------------------------------------------- *************** In fgDebugCheckBBlist *************** Starting PHASE Do 'simple' lowering Bumping outgoingArgSpaceSize to 32 for call [000001] outgoingArgSpaceSize 32 sufficient for call [000010], which needs 32 *************** Finishing PHASE Do 'simple' lowering *************** In fgDebugCheckBBlist Trees before Lowering nodeinfo ----------------------------------------------------------------------------------------------------------------------------------------- BBnum BBid ref try hnd preds weight lp [IL range] [jump] [EH region] [flags] ----------------------------------------------------------------------------------------------------------------------------------------- BB01 [0000] 1 1 [000..021) (return) i label target hascall newobj LIR ----------------------------------------------------------------------------------------------------------------------------------------- ------------ BB01 [000..021) (return), preds={} succs={} [000045] ------------ IL_OFFSET void IL offset: 0x0 N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 /--* t1 ref N005 ( 16, 16) [000003] DA---------- * STORE_LCL_VAR ref V04 tmp1 d:2 [000046] ------------ IL_OFFSET void IL offset: 0x5 N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 /--* t6 ref N003 ( 5, 4) [000008] DA--G------- * STORE_LCL_VAR ref (AX) V00 loc0 [000047] ------------ IL_OFFSET void IL offset: 0x6 N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 /--* t10 ref N005 ( 16, 16) [000012] DA---------- * STORE_LCL_VAR ref V05 tmp2 d:2 [000048] ------------ IL_OFFSET void IL offset: 0xb N001 ( 2, 10) [000044] H----------- t44 = CNS_INT(h) long 0x1f6a1802cb8 static Fseq[S_1] $141 N003 ( 1, 1) [000016] ------------ t16 = LCL_VAR ref V05 tmp2 u:2 (last use) $1c1 /--* t44 long +--* t16 ref [000049] -A--G------- * STOREIND ref N001 ( 3, 2) [000038] -------N---- t38 = LCL_VAR_ADDR byref V00 loc0 N003 ( 2, 10) [000039] H----------- t39 = CNS_INT(h) byref -0x1f6a1802cb8 static $142 /--* t38 byref +--* t39 byref N004 ( 6, 14) [000040] ------------ t40 = * ADD long $300 /--* t40 long N006 ( 10, 17) [000027] DA---------- * STORE_LCL_VAR long V02 loc2 d:2 [000050] ------------ IL_OFFSET void IL offset: 0x1f N001 ( 3, 2) [000028] C----------- t28 = LCL_VAR int V02 loc2 u:2 (last use) $340 /--* t28 int N002 ( 4, 3) [000030] ------------ * RETURN int $380 ------------------------------------------------------------------------------------------------------------------- *************** Starting PHASE Lowering nodeinfo lowering call (before): N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 objp: ====== args: ====== lowering arg : N001 ( 0, 0) [000042] ----------L- * ARGPLACE long $140 late: ====== lowering arg : N002 ( 2, 10) [000000] H----------- * CNS_INT(h) long 0x7fff8030cd90 method $140 new node is : [000051] ------------ * PUTARG_REG long REG rcx lowering call (after): N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long [000051] ------------ t51 = * PUTARG_REG long REG rcx /--* t51 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 lowering store lcl var/field (before): N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long [000051] ------------ t51 = * PUTARG_REG long REG rcx /--* t51 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 /--* t1 ref N005 ( 16, 16) [000003] DA---------- * STORE_LCL_VAR ref V04 tmp1 d:2 lowering store lcl var/field (after): N002 ( 2, 10) [000000] H----------- t0 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t0 long [000051] ------------ t51 = * PUTARG_REG long REG rcx /--* t51 long arg0 in rcx N003 ( 16, 16) [000001] --C--------- t1 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c0 /--* t1 ref N005 ( 16, 16) [000003] DA---------- * STORE_LCL_VAR ref V04 tmp1 d:2 lowering store lcl var/field (before): N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 /--* t6 ref N003 ( 5, 4) [000008] DA--G------- * STORE_LCL_VAR ref (AX) V00 loc0 lowering store lcl var/field (after): N001 ( 1, 1) [000006] ------------ t6 = LCL_VAR ref V04 tmp1 u:2 (last use) $1c0 /--* t6 ref N003 ( 5, 4) [000008] DA--G------- * STORE_LCL_VAR ref (AX) V00 loc0 lowering call (before): N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 objp: ====== args: ====== lowering arg : N001 ( 0, 0) [000043] ----------L- * ARGPLACE long $140 late: ====== lowering arg : N002 ( 2, 10) [000009] H----------- * CNS_INT(h) long 0x7fff8030cd90 method $140 new node is : [000052] ------------ * PUTARG_REG long REG rcx lowering call (after): N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long [000052] ------------ t52 = * PUTARG_REG long REG rcx /--* t52 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 lowering store lcl var/field (before): N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long [000052] ------------ t52 = * PUTARG_REG long REG rcx /--* t52 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 /--* t10 ref N005 ( 16, 16) [000012] DA---------- * STORE_LCL_VAR ref V05 tmp2 d:2 lowering store lcl var/field (after): N002 ( 2, 10) [000009] H----------- t9 = CNS_INT(h) long 0x7fff8030cd90 method $140 /--* t9 long [000052] ------------ t52 = * PUTARG_REG long REG rcx /--* t52 long arg0 in rcx N003 ( 16, 16) [000010] --C--------- t10 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $1c1 /--* t10 ref N005 ( 16, 16) [000012] DA---------- * STORE_LCL_VAR ref V05 tmp2 d:2