Created
June 20, 2018 19:29
-
-
Save benaadams/ad76003a334f3da6916ac5c8a80d95d1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
****** START compiling Program:ViaStruct5() (MethodHash=900a8869) | |
Generating code for Windows x64 | |
OPTIONS: compCodeOpt = BLENDED_CODE | |
OPTIONS: compDbgCode = false | |
OPTIONS: compDbgInfo = true | |
OPTIONS: compDbgEnC = false | |
OPTIONS: compProcedureSplitting = false | |
OPTIONS: compProcedureSplittingEH = false | |
OPTIONS: Stack probing is DISABLED | |
IL to import: | |
IL_0000 12 00 ldloca.s 0x0 | |
IL_0002 73 0f 00 00 06 newobj 0x600000F | |
IL_0007 73 10 00 00 06 newobj 0x6000010 | |
IL_000c 73 12 00 00 06 newobj 0x6000012 | |
IL_0011 73 14 00 00 06 newobj 0x6000014 | |
IL_0016 73 16 00 00 06 newobj 0x6000016 | |
IL_001b 28 18 00 00 06 call 0x6000018 | |
IL_0020 12 00 ldloca.s 0x0 | |
IL_0022 28 19 00 00 06 call 0x6000019 | |
IL_0027 2a ret | |
lvaGrabTemp returning 1 (V01 tmp0) (a long lifetime temp) called for OutgoingArgSpace. | |
; Initial local variable assignments | |
; | |
; V00 loc0 struct ( 8) | |
; V01 OutArgs lclBlk (na) | |
*************** In compInitDebuggingInfo() for Program:ViaStruct5() | |
getVars() returned cVars = 0, extendOthers = true | |
info.compVarScopesCount = 1 | |
VarNum LVNum Name Beg End | |
0: 00h 00h V00 loc0 000h 028h | |
info.compStmtOffsetsCount = 0 | |
info.compStmtOffsetsImplicit = 0005h ( STACK_EMPTY CALL_SITE ) | |
*************** In fgFindBasicBlocks() for Program:ViaStruct5() | |
Jump targets: | |
none | |
New Basic Block BB01 [0000] created. | |
BB01 [000..028) | |
IL Code Size,Instr 40, 10, Basic Block count 1, Local Variable Num,Ref count 2, 2 for method Program:ViaStruct5() | |
OPTIONS: opts.MinOpts() == false | |
Basic block list for 'Program:ViaStruct5()' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Program:ViaStruct5() | |
impImportBlockPending for BB01 | |
Importing BB01 (PC=000) of 'Program:ViaStruct5()' | |
[ 0] 0 (0x000) ldloca.s 0 | |
[ 1] 2 (0x002) newobj | |
lvaGrabTemp returning 2 (V02 tmp1) called for NewObj constructor temp. | |
[000007] ------------ * STMT void (IL 0x000... ???) | |
[000004] ------------ | /--* ALLOCOBJ ref | |
[000003] ------------ | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -A---------- \--* ASG ref | |
[000005] D------N---- \--* LCL_VAR ref V02 tmp1 | |
lvaSetClass: setting class for V02 to (00007FFC12345508) C [exact] | |
0600000F | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
[000010] ------------ * STMT void (IL ???... ???) | |
[000009] I-C-G------- \--* CALL void C..ctor (exactContextHnd=0x00007FFC12345509) | |
[000008] ------------ this in rcx \--* LCL_VAR ref V02 tmp1 | |
[ 2] 7 (0x007) newobj | |
lvaGrabTemp returning 3 (V03 tmp2) called for NewObj constructor temp. | |
06000010 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
[000016] ------------ * STMT void (IL 0x007... ???) | |
[000014] I-C-G------- \--* CALL void S1..ctor (exactContextHnd=0x00007FFC123455E9) | |
[000013] L----------- this in rcx +--* ADDR byref | |
[000012] ------------ | \--* LCL_VAR struct V03 tmp2 | |
[000011] ------------ arg1 \--* LCL_VAR ref V02 tmp1 | |
[ 2] 12 (0x00c) newobj | |
lvaGrabTemp returning 4 (V04 tmp3) called for NewObj constructor temp. | |
06000012 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000017] ------------ * LCL_VAR struct V03 tmp2 | |
resulting tree: | |
[000022] x----------- * OBJ(8) struct | |
[000021] L----------- \--* ADDR byref | |
[000017] ------------ \--* LCL_VAR struct V03 tmp2 | |
[000024] ------------ * STMT void (IL 0x00C... ???) | |
[000020] I-C-G------- \--* CALL void S2..ctor (exactContextHnd=0x00007FFC123456C9) | |
[000019] L----------- this in rcx +--* ADDR byref | |
[000018] ------------ | \--* LCL_VAR struct V04 tmp3 | |
[000022] x----------- arg1 \--* OBJ(8) struct | |
[000021] L----------- \--* ADDR byref | |
[000017] ------------ \--* LCL_VAR struct V03 tmp2 | |
[ 2] 17 (0x011) newobj | |
lvaGrabTemp returning 5 (V05 tmp4) called for NewObj constructor temp. | |
06000014 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000025] ------------ * LCL_VAR struct V04 tmp3 | |
resulting tree: | |
[000030] x----------- * OBJ(8) struct | |
[000029] L----------- \--* ADDR byref | |
[000025] ------------ \--* LCL_VAR struct V04 tmp3 | |
[000032] ------------ * STMT void (IL 0x011... ???) | |
[000028] I-C-G------- \--* CALL void S3..ctor (exactContextHnd=0x00007FFC123457A9) | |
[000027] L----------- this in rcx +--* ADDR byref | |
[000026] ------------ | \--* LCL_VAR struct V05 tmp4 | |
[000030] x----------- arg1 \--* OBJ(8) struct | |
[000029] L----------- \--* ADDR byref | |
[000025] ------------ \--* LCL_VAR struct V04 tmp3 | |
[ 2] 22 (0x016) newobj | |
lvaGrabTemp returning 6 (V06 tmp5) called for NewObj constructor temp. | |
06000016 | |
In Compiler::impImportCall: opcode is newobj, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000033] ------------ * LCL_VAR struct V05 tmp4 | |
resulting tree: | |
[000038] x----------- * OBJ(8) struct | |
[000037] L----------- \--* ADDR byref | |
[000033] ------------ \--* LCL_VAR struct V05 tmp4 | |
[000040] ------------ * STMT void (IL 0x016... ???) | |
[000036] I-C-G------- \--* CALL void S4..ctor (exactContextHnd=0x00007FFC12345889) | |
[000035] L----------- this in rcx +--* ADDR byref | |
[000034] ------------ | \--* LCL_VAR struct V06 tmp5 | |
[000038] x----------- arg1 \--* OBJ(8) struct | |
[000037] L----------- \--* ADDR byref | |
[000033] ------------ \--* LCL_VAR struct V05 tmp4 | |
[ 2] 27 (0x01b) call 06000018 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
Calling impNormStructVal on: | |
[000041] ------------ * LCL_VAR struct V06 tmp5 | |
resulting tree: | |
[000044] x----------- * OBJ(8) struct | |
[000043] L----------- \--* ADDR byref | |
[000041] ------------ \--* LCL_VAR struct V06 tmp5 | |
[000046] ------------ * STMT void (IL 0x01B... ???) | |
[000042] I-C-G------- \--* CALL void S5..ctor (exactContextHnd=0x00007FFC12345969) | |
[000002] L----------- this in rcx +--* ADDR byref | |
[000001] ------------ | \--* LCL_VAR struct V00 loc0 | |
[000044] x----------- arg1 \--* OBJ(8) struct | |
[000043] L----------- \--* ADDR byref | |
[000041] ------------ \--* LCL_VAR struct V06 tmp5 | |
[ 0] 32 (0x020) ldloca.s 0 | |
[ 1] 34 (0x022) call 06000019 (Implicit Tail call: prefixFlags |= PREFIX_TAILCALL_IMPLICIT) | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
info.compCompHnd->canTailCall returned false for call [000049] | |
[000050] ------------ * STMT void (IL 0x020... ???) | |
[000049] I-C-G------- \--* CALL void S5.M (exactContextHnd=0x00007FFC12345969) | |
[000048] L----------- this in rcx \--* ADDR byref | |
[000047] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 39 (0x027) ret | |
[000052] ------------ * STMT void (IL 0x027... ???) | |
[000051] ------------ \--* RETURN void | |
New BlockSet epoch 1, # of blocks (including unused BB00): 2, bitset array size: 1 (short) | |
*************** In fgMorph() | |
*************** In fgDebugCheckBBlist | |
*************** In fgInline() | |
Expanding INLINE_CANDIDATE in statement [000010] in BB01: | |
[000010] ------------ * STMT void (IL ???... ???) | |
[000009] I-C-G------- \--* CALL void C..ctor (exactContextHnd=0x00007FFC12345509) | |
[000008] ------------ this in rcx \--* LCL_VAR ref V02 tmp1 | |
thisArg: is a local var | |
[000008] ------------ * LCL_VAR ref V02 tmp1 | |
INLINER: inlineInfo.tokenLookupContextHandle for C:.ctor():this set to 0x00007FFC12345509: | |
Invoking compiler for the inlinee method C:.ctor():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 28 0b 00 00 0a call 0xA00000B | |
IL_0006 2a ret | |
INLINER impTokenLookupContextHandle for C:.ctor():this is 0x00007FFC12345509. | |
*************** In fgFindBasicBlocks() for C:.ctor():this | |
Jump targets: | |
none | |
New Basic Block BB02 [0001] created. | |
BB02 [000..007) | |
Basic block list for 'C:.ctor():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB02 [0001] 1 1 [000..007) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for C:.ctor():this | |
impImportBlockPending for BB02 | |
Importing BB02 (PC=000) of 'C:.ctor():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) call 0A00000B | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000055] ------------ * STMT void | |
[000054] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC69E17DB9) | |
[000008] ------------ this in rcx \--* LCL_VAR ref V02 tmp1 | |
[ 0] 6 (0x006) ret | |
----------- Statements (and blocks) added due to the inlining of call [000009] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000055] ------------ * STMT void (IL ???... ???) | |
[000054] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC69E17DB9) | |
[000008] ------------ this in rcx \--* LCL_VAR ref V02 tmp1 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined C:.ctor():this (7 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'C:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000055] in BB01: | |
[000055] ------------ * STMT void (IL ???... ???) | |
[000054] I-C-G------- \--* CALL void Object..ctor (exactContextHnd=0x00007FFC69E17DB9) | |
[000008] ------------ this in rcx \--* LCL_VAR ref V02 tmp1 | |
thisArg: is a local var | |
[000008] ------------ * LCL_VAR ref V02 tmp1 | |
INLINER: inlineInfo.tokenLookupContextHandle for Object:.ctor():this set to 0x00007FFC69E17DB9: | |
Invoking compiler for the inlinee method Object:.ctor():this : | |
IL to import: | |
IL_0000 2a ret | |
INLINER impTokenLookupContextHandle for Object:.ctor():this is 0x00007FFC69E17DB9. | |
*************** In fgFindBasicBlocks() for Object:.ctor():this | |
Jump targets: | |
none | |
New Basic Block BB03 [0002] created. | |
BB03 [000..001) | |
Basic block list for 'Object:.ctor():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB03 [0002] 1 1 [000..001) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for Object:.ctor():this | |
impImportBlockPending for BB03 | |
Importing BB03 (PC=000) of 'Object:.ctor():this' | |
[ 0] 0 (0x000) ret | |
----------- Statements (and blocks) added due to the inlining of call [000054] ----------- | |
Arguments setup: | |
Inlinee method body:fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined Object:.ctor():this (1 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'Object:.ctor():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000016] in BB01: | |
[000016] ------------ * STMT void (IL 0x007... ???) | |
[000014] I-C-G------- \--* CALL void S1..ctor (exactContextHnd=0x00007FFC123455E9) | |
[000013] L----------- this in rcx +--* ADDR byref | |
[000012] ------------ | \--* LCL_VAR struct V03 tmp2 | |
[000011] ------------ arg1 \--* LCL_VAR ref V02 tmp1 | |
thisArg: is a constant is byref to a struct local | |
[000013] L----------- * ADDR byref | |
[000012] ------------ \--* LCL_VAR struct V03 tmp2 | |
Argument #1: is a local var | |
[000011] ------------ * LCL_VAR ref V02 tmp1 | |
INLINER: inlineInfo.tokenLookupContextHandle for S1:.ctor(ref):this set to 0x00007FFC123455E9: | |
Invoking compiler for the inlinee method S1:.ctor(ref):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 01 00 00 04 stfld 0x4000001 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for S1:.ctor(ref):this is 0x00007FFC123455E9. | |
*************** In fgFindBasicBlocks() for S1:.ctor(ref):this | |
Jump targets: | |
none | |
New Basic Block BB04 [0003] created. | |
BB04 [000..008) | |
Basic block list for 'S1:.ctor(ref):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB04 [0003] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S1:.ctor(ref):this | |
impImportBlockPending for BB04 | |
Importing BB04 (PC=000) of 'S1:.ctor(ref):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
[ 2] 2 (0x002) stfld 04000001 | |
[000064] ------------ * STMT void | |
[000011] ------------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---------- \--* ASG ref | |
[000062] -------N---- \--* FIELD ref _c | |
[000060] L----------- \--* ADDR byref | |
[000061] ------------ \--* LCL_VAR struct V03 tmp2 | |
[ 0] 7 (0x007) ret | |
----------- Statements (and blocks) added due to the inlining of call [000014] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000064] ------------ * STMT void (IL 0x007... ???) | |
[000011] ------------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---------- \--* ASG ref | |
[000062] -------N---- \--* FIELD ref _c | |
[000060] L----------- \--* ADDR byref | |
[000061] ------------ \--* LCL_VAR struct V03 tmp2 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S1:.ctor(ref):this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S1:.ctor(ref):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000024] in BB01: | |
[000024] ------------ * STMT void (IL 0x00C... ???) | |
[000020] I-C-G------- \--* CALL void S2..ctor (exactContextHnd=0x00007FFC123456C9) | |
[000019] L----------- this in rcx +--* ADDR byref | |
[000018] ------------ | \--* LCL_VAR struct V04 tmp3 | |
[000022] x----------- arg1 \--* OBJ(8) struct | |
[000021] L----------- \--* ADDR byref | |
[000017] ------------ \--* LCL_VAR struct V03 tmp2 | |
thisArg: is a constant is byref to a struct local | |
[000019] L----------- * ADDR byref | |
[000018] ------------ \--* LCL_VAR struct V04 tmp3 | |
Argument #1: | |
[000022] x----------- * OBJ(8) struct | |
[000021] L----------- \--* ADDR byref | |
[000017] ------------ \--* LCL_VAR struct V03 tmp2 | |
INLINER: inlineInfo.tokenLookupContextHandle for S2:.ctor(struct):this set to 0x00007FFC123456C9: | |
Invoking compiler for the inlinee method S2:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 02 00 00 04 stfld 0x4000002 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for S2:.ctor(struct):this is 0x00007FFC123456C9. | |
*************** In fgFindBasicBlocks() for S2:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB05 [0004] created. | |
BB05 [000..008) | |
Basic block list for 'S2:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB05 [0004] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S2:.ctor(struct):this | |
impImportBlockPending for BB05 | |
Importing BB05 (PC=000) of 'S2:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 7 (V07 tmp6) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 04000002 | |
[000074] ------------ * STMT void | |
[000069] ------------ | /--* LCL_VAR struct V07 tmp6 | |
[000073] -A------R--- \--* ASG struct (copy) | |
[000072] ------------ \--* OBJ(8) struct | |
[000071] ------------ \--* ADDR byref | |
[000070] ------------ \--* FIELD struct _s | |
[000067] L----------- \--* ADDR byref | |
[000068] ------------ \--* LCL_VAR struct V04 tmp3 | |
[ 0] 7 (0x007) ret | |
----------- Statements (and blocks) added due to the inlining of call [000020] ----------- | |
Arguments setup: | |
[000078] ------------ * STMT void (IL 0x00C... ???) | |
[000022] x----------- | /--* OBJ(8) struct | |
[000021] L----------- | | \--* ADDR byref | |
[000017] ------------ | | \--* LCL_VAR struct V03 tmp2 | |
[000077] -A------R--- \--* ASG struct (copy) | |
[000075] D----------- \--* LCL_VAR struct V07 tmp6 | |
Inlinee method body: | |
[000074] ------------ * STMT void (IL 0x00C... ???) | |
[000069] ------------ | /--* LCL_VAR struct V07 tmp6 | |
[000073] -A------R--- \--* ASG struct (copy) | |
[000072] ------------ \--* OBJ(8) struct | |
[000071] ------------ \--* ADDR byref | |
[000070] ------------ \--* FIELD struct _s | |
[000067] L----------- \--* ADDR byref | |
[000068] ------------ \--* LCL_VAR struct V04 tmp3 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S2:.ctor(struct):this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S2:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000032] in BB01: | |
[000032] ------------ * STMT void (IL 0x011... ???) | |
[000028] I-C-G------- \--* CALL void S3..ctor (exactContextHnd=0x00007FFC123457A9) | |
[000027] L----------- this in rcx +--* ADDR byref | |
[000026] ------------ | \--* LCL_VAR struct V05 tmp4 | |
[000030] x----------- arg1 \--* OBJ(8) struct | |
[000029] L----------- \--* ADDR byref | |
[000025] ------------ \--* LCL_VAR struct V04 tmp3 | |
thisArg: is a constant is byref to a struct local | |
[000027] L----------- * ADDR byref | |
[000026] ------------ \--* LCL_VAR struct V05 tmp4 | |
Argument #1: | |
[000030] x----------- * OBJ(8) struct | |
[000029] L----------- \--* ADDR byref | |
[000025] ------------ \--* LCL_VAR struct V04 tmp3 | |
INLINER: inlineInfo.tokenLookupContextHandle for S3:.ctor(struct):this set to 0x00007FFC123457A9: | |
Invoking compiler for the inlinee method S3:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 03 00 00 04 stfld 0x4000003 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for S3:.ctor(struct):this is 0x00007FFC123457A9. | |
*************** In fgFindBasicBlocks() for S3:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB06 [0005] created. | |
BB06 [000..008) | |
Basic block list for 'S3:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB06 [0005] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S3:.ctor(struct):this | |
impImportBlockPending for BB06 | |
Importing BB06 (PC=000) of 'S3:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 8 (V08 tmp7) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 04000003 | |
[000088] ------------ * STMT void | |
[000083] ------------ | /--* LCL_VAR struct V08 tmp7 | |
[000087] -A------R--- \--* ASG struct (copy) | |
[000086] ------------ \--* OBJ(8) struct | |
[000085] ------------ \--* ADDR byref | |
[000084] ------------ \--* FIELD struct _s | |
[000081] L----------- \--* ADDR byref | |
[000082] ------------ \--* LCL_VAR struct V05 tmp4 | |
[ 0] 7 (0x007) ret | |
----------- Statements (and blocks) added due to the inlining of call [000028] ----------- | |
Arguments setup: | |
[000092] ------------ * STMT void (IL 0x011... ???) | |
[000030] x----------- | /--* OBJ(8) struct | |
[000029] L----------- | | \--* ADDR byref | |
[000025] ------------ | | \--* LCL_VAR struct V04 tmp3 | |
[000091] -A------R--- \--* ASG struct (copy) | |
[000089] D----------- \--* LCL_VAR struct V08 tmp7 | |
Inlinee method body: | |
[000088] ------------ * STMT void (IL 0x011... ???) | |
[000083] ------------ | /--* LCL_VAR struct V08 tmp7 | |
[000087] -A------R--- \--* ASG struct (copy) | |
[000086] ------------ \--* OBJ(8) struct | |
[000085] ------------ \--* ADDR byref | |
[000084] ------------ \--* FIELD struct _s | |
[000081] L----------- \--* ADDR byref | |
[000082] ------------ \--* LCL_VAR struct V05 tmp4 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S3:.ctor(struct):this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S3:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000040] in BB01: | |
[000040] ------------ * STMT void (IL 0x016... ???) | |
[000036] I-C-G------- \--* CALL void S4..ctor (exactContextHnd=0x00007FFC12345889) | |
[000035] L----------- this in rcx +--* ADDR byref | |
[000034] ------------ | \--* LCL_VAR struct V06 tmp5 | |
[000038] x----------- arg1 \--* OBJ(8) struct | |
[000037] L----------- \--* ADDR byref | |
[000033] ------------ \--* LCL_VAR struct V05 tmp4 | |
thisArg: is a constant is byref to a struct local | |
[000035] L----------- * ADDR byref | |
[000034] ------------ \--* LCL_VAR struct V06 tmp5 | |
Argument #1: | |
[000038] x----------- * OBJ(8) struct | |
[000037] L----------- \--* ADDR byref | |
[000033] ------------ \--* LCL_VAR struct V05 tmp4 | |
INLINER: inlineInfo.tokenLookupContextHandle for S4:.ctor(struct):this set to 0x00007FFC12345889: | |
Invoking compiler for the inlinee method S4:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 04 00 00 04 stfld 0x4000004 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for S4:.ctor(struct):this is 0x00007FFC12345889. | |
*************** In fgFindBasicBlocks() for S4:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB07 [0006] created. | |
BB07 [000..008) | |
Basic block list for 'S4:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB07 [0006] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S4:.ctor(struct):this | |
impImportBlockPending for BB07 | |
Importing BB07 (PC=000) of 'S4:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 9 (V09 tmp8) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 04000004 | |
[000102] ------------ * STMT void | |
[000097] ------------ | /--* LCL_VAR struct V09 tmp8 | |
[000101] -A------R--- \--* ASG struct (copy) | |
[000100] ------------ \--* OBJ(8) struct | |
[000099] ------------ \--* ADDR byref | |
[000098] ------------ \--* FIELD struct _s | |
[000095] L----------- \--* ADDR byref | |
[000096] ------------ \--* LCL_VAR struct V06 tmp5 | |
[ 0] 7 (0x007) ret | |
----------- Statements (and blocks) added due to the inlining of call [000036] ----------- | |
Arguments setup: | |
[000106] ------------ * STMT void (IL 0x016... ???) | |
[000038] x----------- | /--* OBJ(8) struct | |
[000037] L----------- | | \--* ADDR byref | |
[000033] ------------ | | \--* LCL_VAR struct V05 tmp4 | |
[000105] -A------R--- \--* ASG struct (copy) | |
[000103] D----------- \--* LCL_VAR struct V09 tmp8 | |
Inlinee method body: | |
[000102] ------------ * STMT void (IL 0x016... ???) | |
[000097] ------------ | /--* LCL_VAR struct V09 tmp8 | |
[000101] -A------R--- \--* ASG struct (copy) | |
[000100] ------------ \--* OBJ(8) struct | |
[000099] ------------ \--* ADDR byref | |
[000098] ------------ \--* FIELD struct _s | |
[000095] L----------- \--* ADDR byref | |
[000096] ------------ \--* LCL_VAR struct V06 tmp5 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S4:.ctor(struct):this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S4:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000046] in BB01: | |
[000046] ------------ * STMT void (IL 0x01B... ???) | |
[000042] I-C-G------- \--* CALL void S5..ctor (exactContextHnd=0x00007FFC12345969) | |
[000002] L----------- this in rcx +--* ADDR byref | |
[000001] ------------ | \--* LCL_VAR struct V00 loc0 | |
[000044] x----------- arg1 \--* OBJ(8) struct | |
[000043] L----------- \--* ADDR byref | |
[000041] ------------ \--* LCL_VAR struct V06 tmp5 | |
thisArg: is a constant is byref to a struct local | |
[000002] L----------- * ADDR byref | |
[000001] ------------ \--* LCL_VAR struct V00 loc0 | |
Argument #1: | |
[000044] x----------- * OBJ(8) struct | |
[000043] L----------- \--* ADDR byref | |
[000041] ------------ \--* LCL_VAR struct V06 tmp5 | |
INLINER: inlineInfo.tokenLookupContextHandle for S5:.ctor(struct):this set to 0x00007FFC12345969: | |
Invoking compiler for the inlinee method S5:.ctor(struct):this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 03 ldarg.1 | |
IL_0002 7d 05 00 00 04 stfld 0x4000005 | |
IL_0007 2a ret | |
INLINER impTokenLookupContextHandle for S5:.ctor(struct):this is 0x00007FFC12345969. | |
*************** In fgFindBasicBlocks() for S5:.ctor(struct):this | |
Jump targets: | |
none | |
New Basic Block BB08 [0007] created. | |
BB08 [000..008) | |
Basic block list for 'S5:.ctor(struct):this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB08 [0007] 1 1 [000..008) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S5:.ctor(struct):this | |
impImportBlockPending for BB08 | |
Importing BB08 (PC=000) of 'S5:.ctor(struct):this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldarg.1 | |
lvaGrabTemp returning 10 (V10 tmp9) called for Inlining Arg. | |
[ 2] 2 (0x002) stfld 04000005 | |
[000116] ------------ * STMT void | |
[000111] ------------ | /--* LCL_VAR struct V10 tmp9 | |
[000115] -A------R--- \--* ASG struct (copy) | |
[000114] ------------ \--* OBJ(8) struct | |
[000113] ------------ \--* ADDR byref | |
[000112] ------------ \--* FIELD struct _s | |
[000109] L----------- \--* ADDR byref | |
[000110] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 7 (0x007) ret | |
----------- Statements (and blocks) added due to the inlining of call [000042] ----------- | |
Arguments setup: | |
[000120] ------------ * STMT void (IL 0x01B... ???) | |
[000044] x----------- | /--* OBJ(8) struct | |
[000043] L----------- | | \--* ADDR byref | |
[000041] ------------ | | \--* LCL_VAR struct V06 tmp5 | |
[000119] -A------R--- \--* ASG struct (copy) | |
[000117] D----------- \--* LCL_VAR struct V10 tmp9 | |
Inlinee method body: | |
[000116] ------------ * STMT void (IL 0x01B... ???) | |
[000111] ------------ | /--* LCL_VAR struct V10 tmp9 | |
[000115] -A------R--- \--* ASG struct (copy) | |
[000114] ------------ \--* OBJ(8) struct | |
[000113] ------------ \--* ADDR byref | |
[000112] ------------ \--* FIELD struct _s | |
[000109] L----------- \--* ADDR byref | |
[000110] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S5:.ctor(struct):this (8 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S5:.ctor(struct):this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000050] in BB01: | |
[000050] ------------ * STMT void (IL 0x020... ???) | |
[000049] I-C-G------- \--* CALL void S5.M (exactContextHnd=0x00007FFC12345969) | |
[000048] L----------- this in rcx \--* ADDR byref | |
[000047] ------------ \--* LCL_VAR struct V00 loc0 | |
thisArg: is a constant is byref to a struct local | |
[000048] L----------- * ADDR byref | |
[000047] ------------ \--* LCL_VAR struct V00 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for S5:M():this set to 0x00007FFC12345969: | |
Invoking compiler for the inlinee method S5:M():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 05 00 00 04 ldflda 0x4000005 | |
IL_0006 28 17 00 00 06 call 0x6000017 | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for S5:M():this is 0x00007FFC12345969. | |
*************** In fgFindBasicBlocks() for S5:M():this | |
Jump targets: | |
none | |
New Basic Block BB09 [0008] created. | |
BB09 [000..00C) | |
Basic block list for 'S5:M():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB09 [0008] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S5:M():this | |
impImportBlockPending for BB09 | |
Importing BB09 (PC=000) of 'S5:M():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 04000005 | |
[ 1] 6 (0x006) call 06000017 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000128] ------------ * STMT void | |
[000127] I-C-G------- \--* CALL void S4.M (exactContextHnd=0x00007FFC12345889) | |
[000126] ------------ this in rcx \--* ADDR byref | |
[000125] ------------ \--* FIELD struct _s | |
[000123] L----------- \--* ADDR byref | |
[000124] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 11 (0x00b) ret | |
----------- Statements (and blocks) added due to the inlining of call [000049] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000128] ------------ * STMT void (IL 0x020... ???) | |
[000127] I-C-G------- \--* CALL void S4.M (exactContextHnd=0x00007FFC12345889) | |
[000126] ------------ this in rcx \--* ADDR byref | |
[000125] ------------ \--* FIELD struct _s | |
[000123] L----------- \--* ADDR byref | |
[000124] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S5:M():this (12 IL bytes) (depth 1) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S5:M():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000128] in BB01: | |
[000128] ------------ * STMT void (IL 0x020... ???) | |
[000127] I-C-G------- \--* CALL void S4.M (exactContextHnd=0x00007FFC12345889) | |
[000126] ------------ this in rcx \--* ADDR byref | |
[000125] ------------ \--* FIELD struct _s | |
[000123] L----------- \--* ADDR byref | |
[000124] ------------ \--* LCL_VAR struct V00 loc0 | |
thisArg: has caller local ref is byref to a struct local | |
[000126] ------------ * ADDR byref | |
[000125] ------------ \--* FIELD struct _s | |
[000123] L----------- \--* ADDR byref | |
[000124] ------------ \--* LCL_VAR struct V00 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for S4:M():this set to 0x00007FFC12345889: | |
Invoking compiler for the inlinee method S4:M():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 04 00 00 04 ldflda 0x4000004 | |
IL_0006 28 15 00 00 06 call 0x6000015 | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for S4:M():this is 0x00007FFC12345889. | |
*************** In fgFindBasicBlocks() for S4:M():this | |
Jump targets: | |
none | |
New Basic Block BB10 [0009] created. | |
BB10 [000..00C) | |
Basic block list for 'S4:M():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB10 [0009] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S4:M():this | |
impImportBlockPending for BB10 | |
Importing BB10 (PC=000) of 'S4:M():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 04000004 | |
[ 1] 6 (0x006) call 06000015 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000138] ------------ * STMT void | |
[000137] I-C-G------- \--* CALL void S3.M (exactContextHnd=0x00007FFC123457A9) | |
[000136] ----G------- this in rcx \--* ADDR byref | |
[000135] ----G------- \--* FIELD struct _s | |
[000131] ----G------- \--* ADDR byref | |
[000132] ----G------- \--* FIELD struct _s | |
[000133] L----------- \--* ADDR byref | |
[000134] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 11 (0x00b) ret | |
----------- Statements (and blocks) added due to the inlining of call [000127] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000138] ------------ * STMT void (IL 0x020... ???) | |
[000137] I-C-G------- \--* CALL void S3.M (exactContextHnd=0x00007FFC123457A9) | |
[000136] ----G------- this in rcx \--* ADDR byref | |
[000135] ----G------- \--* FIELD struct _s | |
[000131] ----G------- \--* ADDR byref | |
[000132] ----G------- \--* FIELD struct _s | |
[000133] L----------- \--* ADDR byref | |
[000134] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S4:M():this (12 IL bytes) (depth 2) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S4:M():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000138] in BB01: | |
[000138] ------------ * STMT void (IL 0x020... ???) | |
[000137] I-C-G------- \--* CALL void S3.M (exactContextHnd=0x00007FFC123457A9) | |
[000136] ----G------- this in rcx \--* ADDR byref | |
[000135] ----G------- \--* FIELD struct _s | |
[000131] ----G------- \--* ADDR byref | |
[000132] ----G------- \--* FIELD struct _s | |
[000133] L----------- \--* ADDR byref | |
[000134] ------------ \--* LCL_VAR struct V00 loc0 | |
thisArg: has global refs has caller local ref is byref to a struct local | |
[000136] ----G------- * ADDR byref | |
[000135] ----G------- \--* FIELD struct _s | |
[000131] ----G------- \--* ADDR byref | |
[000132] ----G------- \--* FIELD struct _s | |
[000133] L----------- \--* ADDR byref | |
[000134] ------------ \--* LCL_VAR struct V00 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for S3:M():this set to 0x00007FFC123457A9: | |
Invoking compiler for the inlinee method S3:M():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 03 00 00 04 ldflda 0x4000003 | |
IL_0006 28 13 00 00 06 call 0x6000013 | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for S3:M():this is 0x00007FFC123457A9. | |
*************** In fgFindBasicBlocks() for S3:M():this | |
Jump targets: | |
none | |
New Basic Block BB11 [0010] created. | |
BB11 [000..00C) | |
Basic block list for 'S3:M():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB11 [0010] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S3:M():this | |
impImportBlockPending for BB11 | |
Importing BB11 (PC=000) of 'S3:M():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 04000003 | |
[ 1] 6 (0x006) call 06000013 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000150] ------------ * STMT void | |
[000149] I-C-G------- \--* CALL void S2.M (exactContextHnd=0x00007FFC123456C9) | |
[000148] ----G------- this in rcx \--* ADDR byref | |
[000147] ----G------- \--* FIELD struct _s | |
[000141] ----G------- \--* ADDR byref | |
[000142] ----G------- \--* FIELD struct _s | |
[000143] ----G------- \--* ADDR byref | |
[000144] ----G------- \--* FIELD struct _s | |
[000145] L----------- \--* ADDR byref | |
[000146] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 11 (0x00b) ret | |
----------- Statements (and blocks) added due to the inlining of call [000137] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000150] ------------ * STMT void (IL 0x020... ???) | |
[000149] I-C-G------- \--* CALL void S2.M (exactContextHnd=0x00007FFC123456C9) | |
[000148] ----G------- this in rcx \--* ADDR byref | |
[000147] ----G------- \--* FIELD struct _s | |
[000141] ----G------- \--* ADDR byref | |
[000142] ----G------- \--* FIELD struct _s | |
[000143] ----G------- \--* ADDR byref | |
[000144] ----G------- \--* FIELD struct _s | |
[000145] L----------- \--* ADDR byref | |
[000146] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S3:M():this (12 IL bytes) (depth 3) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S3:M():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000150] in BB01: | |
[000150] ------------ * STMT void (IL 0x020... ???) | |
[000149] I-C-G------- \--* CALL void S2.M (exactContextHnd=0x00007FFC123456C9) | |
[000148] ----G------- this in rcx \--* ADDR byref | |
[000147] ----G------- \--* FIELD struct _s | |
[000141] ----G------- \--* ADDR byref | |
[000142] ----G------- \--* FIELD struct _s | |
[000143] ----G------- \--* ADDR byref | |
[000144] ----G------- \--* FIELD struct _s | |
[000145] L----------- \--* ADDR byref | |
[000146] ------------ \--* LCL_VAR struct V00 loc0 | |
thisArg: has global refs has caller local ref is byref to a struct local | |
[000148] ----G------- * ADDR byref | |
[000147] ----G------- \--* FIELD struct _s | |
[000141] ----G------- \--* ADDR byref | |
[000142] ----G------- \--* FIELD struct _s | |
[000143] ----G------- \--* ADDR byref | |
[000144] ----G------- \--* FIELD struct _s | |
[000145] L----------- \--* ADDR byref | |
[000146] ------------ \--* LCL_VAR struct V00 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for S2:M():this set to 0x00007FFC123456C9: | |
Invoking compiler for the inlinee method S2:M():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7c 02 00 00 04 ldflda 0x4000002 | |
IL_0006 28 11 00 00 06 call 0x6000011 | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for S2:M():this is 0x00007FFC123456C9. | |
*************** In fgFindBasicBlocks() for S2:M():this | |
Jump targets: | |
none | |
New Basic Block BB12 [0011] created. | |
BB12 [000..00C) | |
Basic block list for 'S2:M():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB12 [0011] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S2:M():this | |
impImportBlockPending for BB12 | |
Importing BB12 (PC=000) of 'S2:M():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldflda 04000002 | |
[ 1] 6 (0x006) call 06000011 | |
In Compiler::impImportCall: opcode is call, kind=0, callRetType is void, structSize is 0 | |
[000164] ------------ * STMT void | |
[000163] I-C-G------- \--* CALL void S1.M (exactContextHnd=0x00007FFC123455E9) | |
[000162] ----G------- this in rcx \--* ADDR byref | |
[000161] ----G------- \--* FIELD struct _s | |
[000153] ----G------- \--* ADDR byref | |
[000154] ----G------- \--* FIELD struct _s | |
[000155] ----G------- \--* ADDR byref | |
[000156] ----G------- \--* FIELD struct _s | |
[000157] ----G------- \--* ADDR byref | |
[000158] ----G------- \--* FIELD struct _s | |
[000159] L----------- \--* ADDR byref | |
[000160] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 11 (0x00b) ret | |
----------- Statements (and blocks) added due to the inlining of call [000149] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000164] ------------ * STMT void (IL 0x020... ???) | |
[000163] I-C-G------- \--* CALL void S1.M (exactContextHnd=0x00007FFC123455E9) | |
[000162] ----G------- this in rcx \--* ADDR byref | |
[000161] ----G------- \--* FIELD struct _s | |
[000153] ----G------- \--* ADDR byref | |
[000154] ----G------- \--* FIELD struct _s | |
[000155] ----G------- \--* ADDR byref | |
[000156] ----G------- \--* FIELD struct _s | |
[000157] ----G------- \--* ADDR byref | |
[000158] ----G------- \--* FIELD struct _s | |
[000159] L----------- \--* ADDR byref | |
[000160] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S2:M():this (12 IL bytes) (depth 4) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S2:M():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
Expanding INLINE_CANDIDATE in statement [000164] in BB01: | |
[000164] ------------ * STMT void (IL 0x020... ???) | |
[000163] I-C-G------- \--* CALL void S1.M (exactContextHnd=0x00007FFC123455E9) | |
[000162] ----G------- this in rcx \--* ADDR byref | |
[000161] ----G------- \--* FIELD struct _s | |
[000153] ----G------- \--* ADDR byref | |
[000154] ----G------- \--* FIELD struct _s | |
[000155] ----G------- \--* ADDR byref | |
[000156] ----G------- \--* FIELD struct _s | |
[000157] ----G------- \--* ADDR byref | |
[000158] ----G------- \--* FIELD struct _s | |
[000159] L----------- \--* ADDR byref | |
[000160] ------------ \--* LCL_VAR struct V00 loc0 | |
thisArg: has global refs has caller local ref is byref to a struct local | |
[000162] ----G------- * ADDR byref | |
[000161] ----G------- \--* FIELD struct _s | |
[000153] ----G------- \--* ADDR byref | |
[000154] ----G------- \--* FIELD struct _s | |
[000155] ----G------- \--* ADDR byref | |
[000156] ----G------- \--* FIELD struct _s | |
[000157] ----G------- \--* ADDR byref | |
[000158] ----G------- \--* FIELD struct _s | |
[000159] L----------- \--* ADDR byref | |
[000160] ------------ \--* LCL_VAR struct V00 loc0 | |
INLINER: inlineInfo.tokenLookupContextHandle for S1:M():this set to 0x00007FFC123455E9: | |
Invoking compiler for the inlinee method S1:M():this : | |
IL to import: | |
IL_0000 02 ldarg.0 | |
IL_0001 7b 01 00 00 04 ldfld 0x4000001 | |
IL_0006 6f 0e 00 00 06 callvirt 0x600000E | |
IL_000b 2a ret | |
INLINER impTokenLookupContextHandle for S1:M():this is 0x00007FFC123455E9. | |
*************** In fgFindBasicBlocks() for S1:M():this | |
Jump targets: | |
none | |
New Basic Block BB13 [0012] created. | |
BB13 [000..00C) | |
Basic block list for 'S1:M():this' | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB13 [0012] 1 1 [000..00C) (return) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In impImport() for S1:M():this | |
impImportBlockPending for BB13 | |
Importing BB13 (PC=000) of 'S1:M():this' | |
[ 0] 0 (0x000) ldarg.0 | |
[ 1] 1 (0x001) ldfld 04000001 | |
[ 1] 6 (0x006) callvirt 0600000E | |
In Compiler::impImportCall: opcode is callvirt, kind=0, callRetType is void, structSize is 0 | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' for 'S1:M():this' calling 'C:M():this' | |
INLINER: during 'impMarkInlineCandidate' result 'failed this callee' reason 'noinline per IL/cached result' | |
[000179] ------------ * STMT void | |
[000178] --C-G------- \--* CALL nullcheck void C.M | |
[000177] ----G------- this in rcx \--* FIELD ref _c | |
[000167] ----G------- \--* ADDR byref | |
[000168] ----G------- \--* FIELD struct _s | |
[000169] ----G------- \--* ADDR byref | |
[000170] ----G------- \--* FIELD struct _s | |
[000171] ----G------- \--* ADDR byref | |
[000172] ----G------- \--* FIELD struct _s | |
[000173] ----G------- \--* ADDR byref | |
[000174] ----G------- \--* FIELD struct _s | |
[000175] L----------- \--* ADDR byref | |
[000176] ------------ \--* LCL_VAR struct V00 loc0 | |
[ 0] 11 (0x00b) ret | |
----------- Statements (and blocks) added due to the inlining of call [000163] ----------- | |
Arguments setup: | |
Inlinee method body: | |
[000179] ------------ * STMT void (IL 0x020... ???) | |
[000178] --C-G------- \--* CALL nullcheck void C.M | |
[000177] ----G------- this in rcx \--* FIELD ref _c | |
[000167] ----G------- \--* ADDR byref | |
[000168] ----G------- \--* FIELD struct _s | |
[000169] ----G------- \--* ADDR byref | |
[000170] ----G------- \--* FIELD struct _s | |
[000171] ----G------- \--* ADDR byref | |
[000172] ----G------- \--* FIELD struct _s | |
[000173] ----G------- \--* ADDR byref | |
[000174] ----G------- \--* FIELD struct _s | |
[000175] L----------- \--* ADDR byref | |
[000176] ------------ \--* LCL_VAR struct V00 loc0 | |
fgInlineAppendStatements: no gc ref inline locals. | |
Successfully inlined S1:M():this (12 IL bytes) (depth 5) [below ALWAYS_INLINE size] | |
-------------------------------------------------------------------------------------------- | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' for 'Program:ViaStruct5()' calling 'S1:M():this' | |
INLINER: during 'fgInline' result 'success' reason 'below ALWAYS_INLINE size' | |
*************** After fgInline() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000007] ------------ * STMT void (IL 0x000...0x027) | |
[000004] ------------ | /--* ALLOCOBJ ref | |
[000003] ------------ | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -A---------- \--* ASG ref | |
[000005] D------N---- \--* LCL_VAR ref V02 tmp1 | |
***** BB01, stmt 2 | |
[000064] ------------ * STMT void (IL 0x007... ???) | |
[000011] ------------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---------- \--* ASG ref | |
[000062] -------N---- \--* FIELD ref _c | |
[000060] L----------- \--* ADDR byref | |
[000061] ------------ \--* LCL_VAR struct V03 tmp2 | |
***** BB01, stmt 3 | |
[000078] ------------ * STMT void (IL 0x00C... ???) | |
[000022] x----------- | /--* OBJ(8) struct | |
[000021] L----------- | | \--* ADDR byref | |
[000017] ------------ | | \--* LCL_VAR struct V03 tmp2 | |
[000077] -A------R--- \--* ASG struct (copy) | |
[000075] D----------- \--* LCL_VAR struct V07 tmp6 | |
***** BB01, stmt 4 | |
[000074] ------------ * STMT void (IL 0x00C... ???) | |
[000069] ------------ | /--* LCL_VAR struct V07 tmp6 | |
[000073] -A------R--- \--* ASG struct (copy) | |
[000072] ------------ \--* OBJ(8) struct | |
[000071] ------------ \--* ADDR byref | |
[000070] ------------ \--* FIELD struct _s | |
[000067] L----------- \--* ADDR byref | |
[000068] ------------ \--* LCL_VAR struct V04 tmp3 | |
***** BB01, stmt 5 | |
[000092] ------------ * STMT void (IL 0x011... ???) | |
[000030] x----------- | /--* OBJ(8) struct | |
[000029] L----------- | | \--* ADDR byref | |
[000025] ------------ | | \--* LCL_VAR struct V04 tmp3 | |
[000091] -A------R--- \--* ASG struct (copy) | |
[000089] D----------- \--* LCL_VAR struct V08 tmp7 | |
***** BB01, stmt 6 | |
[000088] ------------ * STMT void (IL 0x011... ???) | |
[000083] ------------ | /--* LCL_VAR struct V08 tmp7 | |
[000087] -A------R--- \--* ASG struct (copy) | |
[000086] ------------ \--* OBJ(8) struct | |
[000085] ------------ \--* ADDR byref | |
[000084] ------------ \--* FIELD struct _s | |
[000081] L----------- \--* ADDR byref | |
[000082] ------------ \--* LCL_VAR struct V05 tmp4 | |
***** BB01, stmt 7 | |
[000106] ------------ * STMT void (IL 0x016... ???) | |
[000038] x----------- | /--* OBJ(8) struct | |
[000037] L----------- | | \--* ADDR byref | |
[000033] ------------ | | \--* LCL_VAR struct V05 tmp4 | |
[000105] -A------R--- \--* ASG struct (copy) | |
[000103] D----------- \--* LCL_VAR struct V09 tmp8 | |
***** BB01, stmt 8 | |
[000102] ------------ * STMT void (IL 0x016... ???) | |
[000097] ------------ | /--* LCL_VAR struct V09 tmp8 | |
[000101] -A------R--- \--* ASG struct (copy) | |
[000100] ------------ \--* OBJ(8) struct | |
[000099] ------------ \--* ADDR byref | |
[000098] ------------ \--* FIELD struct _s | |
[000095] L----------- \--* ADDR byref | |
[000096] ------------ \--* LCL_VAR struct V06 tmp5 | |
***** BB01, stmt 9 | |
[000120] ------------ * STMT void (IL 0x01B... ???) | |
[000044] x----------- | /--* OBJ(8) struct | |
[000043] L----------- | | \--* ADDR byref | |
[000041] ------------ | | \--* LCL_VAR struct V06 tmp5 | |
[000119] -A------R--- \--* ASG struct (copy) | |
[000117] D----------- \--* LCL_VAR struct V10 tmp9 | |
***** BB01, stmt 10 | |
[000116] ------------ * STMT void (IL 0x01B... ???) | |
[000111] ------------ | /--* LCL_VAR struct V10 tmp9 | |
[000115] -A------R--- \--* ASG struct (copy) | |
[000114] ------------ \--* OBJ(8) struct | |
[000113] ------------ \--* ADDR byref | |
[000112] ------------ \--* FIELD struct _s | |
[000109] L----------- \--* ADDR byref | |
[000110] ------------ \--* LCL_VAR struct V00 loc0 | |
***** BB01, stmt 11 | |
[000179] ------------ * STMT void (IL 0x020... ???) | |
[000178] --C-G------- \--* CALL nullcheck void C.M | |
[000177] ----G------- this in rcx \--* FIELD ref _c | |
[000167] ----G------- \--* ADDR byref | |
[000168] ----G------- \--* FIELD struct _s | |
[000169] ----G------- \--* ADDR byref | |
[000170] ----G------- \--* FIELD struct _s | |
[000171] ----G------- \--* ADDR byref | |
[000172] ----G------- \--* FIELD struct _s | |
[000173] ----G------- \--* ADDR byref | |
[000174] ----G------- \--* FIELD struct _s | |
[000175] L----------- \--* ADDR byref | |
[000176] ------------ \--* LCL_VAR struct V00 loc0 | |
***** BB01, stmt 12 | |
[000052] ------------ * STMT void (IL 0x027... ???) | |
[000051] ------------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
**************** Inline Tree | |
Inlines into 06000007 Program:ViaStruct5() | |
[1 IL=0002 TR=000009 0600000F] [below ALWAYS_INLINE size] C:.ctor():this | |
[2 IL=0001 TR=000054 06000198] [below ALWAYS_INLINE size] Object:.ctor():this | |
[3 IL=0007 TR=000014 06000010] [below ALWAYS_INLINE size] S1:.ctor(ref):this | |
[4 IL=0012 TR=000020 06000012] [below ALWAYS_INLINE size] S2:.ctor(struct):this | |
[5 IL=0017 TR=000028 06000014] [below ALWAYS_INLINE size] S3:.ctor(struct):this | |
[6 IL=0022 TR=000036 06000016] [below ALWAYS_INLINE size] S4:.ctor(struct):this | |
[7 IL=0027 TR=000042 06000018] [below ALWAYS_INLINE size] S5:.ctor(struct):this | |
[8 IL=0034 TR=000049 06000019] [below ALWAYS_INLINE size] S5:M():this | |
[9 IL=0006 TR=000127 06000017] [below ALWAYS_INLINE size] S4:M():this | |
[10 IL=0006 TR=000137 06000015] [below ALWAYS_INLINE size] S3:M():this | |
[11 IL=0006 TR=000149 06000013] [below ALWAYS_INLINE size] S2:M():this | |
[12 IL=0006 TR=000163 06000011] [below ALWAYS_INLINE size] S1:M():this | |
[0 IL=0006 TR=000178 0600000E] [FAILED: noinline per IL/cached result] C:M():this | |
Budget: initialTime=180, finalTime=228, initialBudget=1800, currentBudget=1800 | |
Budget: initialSize=1043, finalSize=1043 | |
*************** After fgAddInternal() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In fgRemoveEmptyTry() | |
No EH in this method, nothing to remove. | |
*************** In fgRemoveEmptyFinally() | |
No EH in this method, nothing to remove. | |
*************** In fgMergeFinallyChains() | |
No EH in this method, nothing to merge. | |
*************** In fgCloneFinally() | |
No EH in this method, no cloning. | |
*************** In fgMarkImplicitByRefs() | |
*************** In fgPromoteStructs() | |
lvaTable before fgPromoteStructs | |
; Initial local variable assignments | |
; | |
; V00 loc0 struct ( 8) ld-addr-op | |
; V01 OutArgs lclBlk (na) | |
; V02 tmp1 ref class-hnd exact | |
; V03 tmp2 struct ( 8) | |
; V04 tmp3 struct ( 8) | |
; V05 tmp4 struct ( 8) | |
; V06 tmp5 struct ( 8) | |
; V07 tmp6 struct ( 8) | |
; V08 tmp7 struct ( 8) | |
; V09 tmp8 struct ( 8) | |
; V10 tmp9 struct ( 8) | |
Promoting struct local V03 (S1): | |
lvaGrabTemp returning 11 (V11 tmp10) (a long lifetime temp) called for field V03._c (fldOffset=0x0). | |
Promoting struct local V04 (S2): | |
lvaGrabTemp returning 12 (V12 tmp11) (a long lifetime temp) called for field V04._s (fldOffset=0x0). | |
Promoting struct local V07 (S1): | |
lvaGrabTemp returning 13 (V13 tmp12) (a long lifetime temp) called for field V07._c (fldOffset=0x0). | |
Promoting struct local V08 (S2): | |
lvaGrabTemp returning 14 (V14 tmp13) (a long lifetime temp) called for field V08._s (fldOffset=0x0). | |
lvaTable after fgPromoteStructs | |
; Initial local variable assignments | |
; | |
; V00 loc0 struct ( 8) ld-addr-op | |
; V01 OutArgs lclBlk (na) | |
; V02 tmp1 ref class-hnd exact | |
; V03 tmp2 struct ( 8) | |
; V04 tmp3 struct ( 8) | |
; V05 tmp4 struct ( 8) | |
; V06 tmp5 struct ( 8) | |
; V07 tmp6 struct ( 8) | |
; V08 tmp7 struct ( 8) | |
; V09 tmp8 struct ( 8) | |
; V10 tmp9 struct ( 8) | |
; V11 tmp10 ref V03._c(offs=0x00) P-INDEP | |
; V12 tmp11 ref V04._s(offs=0x00) P-INDEP | |
; V13 tmp12 ref V07._c(offs=0x00) P-INDEP | |
; V14 tmp13 ref V08._s(offs=0x00) P-INDEP | |
*************** In fgMarkAddressExposedLocals() | |
Replacing the field in promoted struct with a local var: | |
[000011] ------------ /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---------- * ASG ref | |
[000062] D------N---- \--* LCL_VAR ref V11 tmp10 | |
Replacing the field in promoted struct with a local var: | |
[000069] ------------ /--* LCL_VAR struct(P) V07 tmp6 | |
/--* ref V07._c (offs=0x00) -> V13 tmp12 | |
[000073] -A------R--- * ASG struct (copy) | |
[000072] ------------ \--* OBJ(8) struct | |
[000071] ------------ \--* ADDR byref | |
[000070] ------------ \--* LCL_VAR ref V12 tmp11 | |
*************** In fgRetypeImplicitByRefArgs() | |
*************** In fgMorphBlocks() | |
Morphing BB01 of 'Program:ViaStruct5()' | |
fgMorphTree BB01, stmt 1 (before) | |
[000004] ------------ /--* ALLOCOBJ ref | |
[000003] ------------ | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -A---------- * ASG ref | |
[000005] D------N---- \--* LCL_VAR ref V02 tmp1 | |
fgMorphTree BB01, stmt 2 (before) | |
[000011] ------------ /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---------- * ASG ref | |
[000062] D------N---- \--* LCL_VAR ref V11 tmp10 | |
GenTreeNode creates assertion: | |
[000063] -A---------- * ASG ref | |
In BB01 New Local Copy Assertion: V11 == V02 index=#01, mask=0000000000000001 | |
fgMorphTree BB01, stmt 3 (before) | |
[000022] x----------- /--* OBJ(8) struct | |
[000021] L----------- | \--* ADDR byref | |
[000017] ------------ | \--* LCL_VAR struct(P) V03 tmp2 | |
| \--* ref V03._c (offs=0x00) -> V11 tmp10 | |
[000077] -A------R--- * ASG struct (copy) | |
[000075] D----------- \--* LCL_VAR struct(P) V07 tmp6 | |
\--* ref V07._c (offs=0x00) -> V13 tmp12 | |
The assignment [000022] using V11 removes: Copy Assertion: V11 == V02 | |
fgMorphCopyBlock:block assignment to morph: | |
[000022] x----+------ /--* OBJ(8) struct | |
[000021] L----+------ | \--* ADDR byref | |
[000017] -----+-N---- | \--* LCL_VAR struct(P) V03 tmp2 | |
| \--* ref V03._c (offs=0x00) -> V11 tmp10 | |
[000077] -A------R--- * ASG struct (copy) | |
[000075] D----+-N---- \--* LCL_VAR struct(P) V07 tmp6 | |
\--* ref V07._c (offs=0x00) -> V13 tmp12 | |
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments. | |
GenTreeNode creates assertion: | |
[000183] -A---------- * ASG ref | |
In BB01 New Local Copy Assertion: V13 == V11 index=#01, mask=0000000000000001 | |
fgMorphCopyBlock (after): | |
[000182] -------N---- /--* LCL_VAR ref V11 tmp10 | |
[000183] -A---+------ * ASG ref | |
[000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
The assignment [000183] using V13 removes: Copy Assertion: V13 == V11 | |
GenTreeNode creates assertion: | |
[000183] -A---+------ * ASG ref | |
In BB01 New Local Copy Assertion: V13 == V11 index=#01, mask=0000000000000001 | |
fgMorphTree BB01, stmt 3 (after) | |
[000182] -------N---- /--* LCL_VAR ref V11 tmp10 | |
[000183] -A---+------ * ASG ref | |
[000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
fgMorphTree BB01, stmt 4 (before) | |
[000069] ------------ /--* LCL_VAR struct(P) V07 tmp6 | |
/--* ref V07._c (offs=0x00) -> V13 tmp12 | |
[000073] -A------R--- * ASG struct (copy) | |
[000072] ------------ \--* OBJ(8) struct | |
[000071] ------------ \--* ADDR byref | |
[000070] ------------ \--* LCL_VAR ref V12 tmp11 | |
fgMorphCopyBlock:block assignment to morph: | |
[000069] -----+------ /--* LCL_VAR struct(P) V07 tmp6 | |
/--* ref V07._c (offs=0x00) -> V13 tmp12 | |
[000073] -A------R--- * ASG struct (copy) | |
[000072] x----+------ \--* OBJ(8) struct | |
[000071] -----+------ \--* ADDR byref | |
[000070] D----+-N---- \--* LCL_VAR ref V12 tmp11 | |
(srcDoFldAsg=true) using field by field assignments. | |
GenTreeNode creates assertion: | |
[000186] -A---------- * ASG ref | |
In BB01 New Local Copy Assertion: V12 == V13 index=#02, mask=0000000000000002 | |
fgMorphCopyBlock (after): | |
[000185] -------N---- /--* LCL_VAR ref V13 tmp12 | |
[000186] -A---+------ * ASG ref | |
[000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
The assignment [000186] using V12 removes: Copy Assertion: V12 == V13 | |
GenTreeNode creates assertion: | |
[000186] -A---+------ * ASG ref | |
In BB01 New Local Copy Assertion: V12 == V13 index=#02, mask=0000000000000002 | |
fgMorphTree BB01, stmt 4 (after) | |
[000185] -------N---- /--* LCL_VAR ref V13 tmp12 | |
[000186] -A---+------ * ASG ref | |
[000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
fgMorphTree BB01, stmt 5 (before) | |
[000030] x----------- /--* OBJ(8) struct | |
[000029] L----------- | \--* ADDR byref | |
[000025] ------------ | \--* LCL_VAR struct(P) V04 tmp3 | |
| \--* ref V04._s (offs=0x00) -> V12 tmp11 | |
[000091] -A------R--- * ASG struct (copy) | |
[000089] D----------- \--* LCL_VAR struct(P) V08 tmp7 | |
\--* ref V08._s (offs=0x00) -> V14 tmp13 | |
The assignment [000030] using V12 removes: Copy Assertion: V12 == V13 | |
fgMorphCopyBlock:block assignment to morph: | |
[000030] x----+------ /--* OBJ(8) struct | |
[000029] L----+------ | \--* ADDR byref | |
[000025] -----+-N---- | \--* LCL_VAR struct(P) V04 tmp3 | |
| \--* ref V04._s (offs=0x00) -> V12 tmp11 | |
[000091] -A------R--- * ASG struct (copy) | |
[000089] D----+-N---- \--* LCL_VAR struct(P) V08 tmp7 | |
\--* ref V08._s (offs=0x00) -> V14 tmp13 | |
(destDoFldAsg=true) (srcDoFldAsg=true) using field by field assignments. | |
GenTreeNode creates assertion: | |
[000189] -A---------- * ASG ref | |
In BB01 New Local Copy Assertion: V14 == V12 index=#02, mask=0000000000000002 | |
fgMorphCopyBlock (after): | |
[000188] -------N---- /--* LCL_VAR ref V12 tmp11 | |
[000189] -A---+------ * ASG ref | |
[000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
The assignment [000189] using V14 removes: Copy Assertion: V14 == V12 | |
GenTreeNode creates assertion: | |
[000189] -A---+------ * ASG ref | |
In BB01 New Local Copy Assertion: V14 == V12 index=#02, mask=0000000000000002 | |
fgMorphTree BB01, stmt 5 (after) | |
[000188] -------N---- /--* LCL_VAR ref V12 tmp11 | |
[000189] -A---+------ * ASG ref | |
[000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
fgMorphTree BB01, stmt 6 (before) | |
[000083] ------------ /--* LCL_VAR struct(P) V08 tmp7 | |
/--* ref V08._s (offs=0x00) -> V14 tmp13 | |
[000087] -A------R--- * ASG struct (copy) | |
[000086] ------------ \--* OBJ(8) struct | |
[000085] ------------ \--* ADDR byref | |
[000084] ------------ \--* FIELD struct _s | |
[000081] L----------- \--* ADDR byref | |
[000082] ------------ \--* LCL_VAR struct V05 tmp4 | |
Local V05 should not be enregistered because: was accessed as a local field | |
fgMorphCopyBlock:block assignment to morph: | |
[000083] -----+------ /--* LCL_VAR struct(P) V08 tmp7 | |
/--* ref V08._s (offs=0x00) -> V14 tmp13 | |
[000087] -A--G---R--- * ASG struct (copy) | |
[000086] *---G+------ \--* OBJ(8) struct | |
[000085] -----+------ \--* ADDR byref | |
[000082] D----+-N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
(srcDoFldAsg=true) using field by field assignments. | |
Local V05 should not be enregistered because: written in a block op | |
fgMorphCopyBlock (after): | |
[000195] -------N---- /--* LCL_VAR ref V14 tmp13 | |
[000196] -A---+------ * ASG ref | |
[000194] *------N---- \--* IND ref | |
[000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
[000193] ------------ \--* ADD byref | |
[000190] ------------ \--* ADDR byref | |
[000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 6 (after) | |
[000195] -------N---- /--* LCL_VAR ref V14 tmp13 | |
[000196] -A---+------ * ASG ref | |
[000194] *------N---- \--* IND ref | |
[000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
[000193] ------------ \--* ADD byref | |
[000190] ------------ \--* ADDR byref | |
[000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 7 (before) | |
[000038] x----------- /--* OBJ(8) struct | |
[000037] L----------- | \--* ADDR byref | |
[000033] ------------ | \--* LCL_VAR struct V05 tmp4 | |
[000105] -A------R--- * ASG struct (copy) | |
[000103] D----------- \--* LCL_VAR struct V09 tmp8 | |
fgMorphCopyBlock: | |
Local V09 should not be enregistered because: was accessed as a local field | |
Local V05 should not be enregistered because: it is address exposed | |
fgMorphOneAsgBlock (after): | |
[000038] x----+------ /--* IND ref | |
[000037] L----+------ | \--* ADDR byref | |
[000033] -----+-N---- | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---------- * ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct V09 tmp8 | |
using oneAsgTree. | |
fgMorphCopyBlock (after): | |
[000038] x----+------ /--* IND ref | |
[000037] L----+------ | \--* ADDR byref | |
[000033] -----+-N---- | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---------- * ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct V09 tmp8 | |
fgMorphTree BB01, stmt 7 (after) | |
[000038] x----+------ /--* IND ref | |
[000037] L----+------ | \--* ADDR byref | |
[000033] -----+-N---- | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---+------ * ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct V09 tmp8 | |
fgMorphTree BB01, stmt 8 (before) | |
[000097] ------------ /--* LCL_VAR struct V09 tmp8 | |
[000101] -A------R--- * ASG struct (copy) | |
[000100] ------------ \--* OBJ(8) struct | |
[000099] ------------ \--* ADDR byref | |
[000098] ------------ \--* FIELD struct _s | |
[000095] L----------- \--* ADDR byref | |
[000096] ------------ \--* LCL_VAR struct V06 tmp5 | |
Local V06 should not be enregistered because: was accessed as a local field | |
fgMorphCopyBlock: | |
Local V09 should not be enregistered because: it is address exposed | |
fgMorphOneAsgBlock (after): | |
[000200] x----------- /--* IND ref | |
[000199] L----------- | \--* ADDR byref | |
[000097] -----+------ | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G------- * ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
using oneAsgTree. | |
fgMorphCopyBlock (after): | |
[000200] x----------- /--* IND ref | |
[000199] L----------- | \--* ADDR byref | |
[000097] -----+------ | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G------- * ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 8 (after) | |
[000200] x----------- /--* IND ref | |
[000199] L----------- | \--* ADDR byref | |
[000097] -----+------ | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G+------ * ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 9 (before) | |
[000044] x----------- /--* OBJ(8) struct | |
[000043] L----------- | \--* ADDR byref | |
[000041] ------------ | \--* LCL_VAR struct V06 tmp5 | |
[000119] -A------R--- * ASG struct (copy) | |
[000117] D----------- \--* LCL_VAR struct V10 tmp9 | |
fgMorphCopyBlock: | |
Local V10 should not be enregistered because: was accessed as a local field | |
Local V06 should not be enregistered because: it is address exposed | |
fgMorphOneAsgBlock (after): | |
[000044] x----+------ /--* IND ref | |
[000043] L----+------ | \--* ADDR byref | |
[000041] -----+-N---- | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---------- * ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct V10 tmp9 | |
using oneAsgTree. | |
fgMorphCopyBlock (after): | |
[000044] x----+------ /--* IND ref | |
[000043] L----+------ | \--* ADDR byref | |
[000041] -----+-N---- | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---------- * ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct V10 tmp9 | |
fgMorphTree BB01, stmt 9 (after) | |
[000044] x----+------ /--* IND ref | |
[000043] L----+------ | \--* ADDR byref | |
[000041] -----+-N---- | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---+------ * ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct V10 tmp9 | |
fgMorphTree BB01, stmt 10 (before) | |
[000111] ------------ /--* LCL_VAR struct V10 tmp9 | |
[000115] -A------R--- * ASG struct (copy) | |
[000114] ------------ \--* OBJ(8) struct | |
[000113] ------------ \--* ADDR byref | |
[000112] ------------ \--* FIELD struct _s | |
[000109] L----------- \--* ADDR byref | |
[000110] ------------ \--* LCL_VAR struct V00 loc0 | |
Local V00 should not be enregistered because: was accessed as a local field | |
fgMorphCopyBlock: | |
Local V10 should not be enregistered because: it is address exposed | |
fgMorphOneAsgBlock (after): | |
[000204] x----------- /--* IND ref | |
[000203] L----------- | \--* ADDR byref | |
[000111] -----+------ | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G------- * ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
using oneAsgTree. | |
fgMorphCopyBlock (after): | |
[000204] x----------- /--* IND ref | |
[000203] L----------- | \--* ADDR byref | |
[000111] -----+------ | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G------- * ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 10 (after) | |
[000204] x----------- /--* IND ref | |
[000203] L----------- | \--* ADDR byref | |
[000111] -----+------ | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G+------ * ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
fgMorphTree BB01, stmt 11 (before) | |
[000178] --C-G------- * CALL nullcheck void C.M | |
[000177] ----G------- this in rcx \--* FIELD ref _c | |
[000167] ----G------- \--* ADDR byref | |
[000168] ----G------- \--* FIELD struct _s | |
[000169] ----G------- \--* ADDR byref | |
[000170] ----G------- \--* FIELD struct _s | |
[000171] ----G------- \--* ADDR byref | |
[000172] ----G------- \--* FIELD struct _s | |
[000173] ----G------- \--* ADDR byref | |
[000174] ----G------- \--* FIELD struct _s | |
[000175] L----------- \--* ADDR byref | |
[000176] ------------ \--* LCL_VAR struct V00 loc0 | |
Local V00 should not be enregistered because: was accessed as a local field | |
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000176] -----+------ * LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
Replaced with placeholder node: | |
[000205] ----------L- * ARGPLACE ref | |
Shuffled argument table: rcx | |
fgArgTabEntry[arg 0 176.LCL_FLD, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
fgMorphTree BB01, stmt 11 (after) | |
[000178] --CXG+------ * CALL nullcheck void C.M | |
[000176] -----+------ this in rcx \--* LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
fgMorphTree BB01, stmt 12 (before) | |
[000051] ------------ * RETURN void | |
Renumbering the basic blocks for fgComputePred | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i gcsafe 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 [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** After fgComputePreds() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgComputeEdgeWeights() | |
fgComputeEdgeWeights() we do not have any profile data so we are not using the edge weights | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
fgComputeEdgeWeights() was able to compute exact edge weights for all of the 0 edges, using 1 passes. | |
*************** In fgCreateFunclets() | |
After fgCreateFunclets() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLayout() | |
*************** Exception Handling table is empty | |
*************** In fgDebugCheckBBlist | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In fgComputeReachability | |
*************** In fgDebugCheckBBlist | |
Renumbering the basic blocks for fgComputeReachability pass #1 | |
*************** Before renumbering the basic blocks | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe 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 [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe 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: | |
*************** In Allocate Objects | |
Trees before Allocate Objects | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000007] ------------ * STMT void (IL 0x000...0x027) | |
[000004] -----+------ | /--* ALLOCOBJ ref | |
[000003] -----+------ | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -A---+------ \--* ASG ref | |
[000005] D----+-N---- \--* LCL_VAR ref V02 tmp1 | |
***** BB01, stmt 2 | |
[000064] ------------ * STMT void (IL 0x007... ???) | |
[000011] -----+------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---+------ \--* ASG ref | |
[000062] D----+-N---- \--* LCL_VAR ref V11 tmp10 | |
***** BB01, stmt 3 | |
[000078] ------------ * STMT void (IL 0x00C... ???) | |
[000182] -------N---- | /--* LCL_VAR ref V11 tmp10 | |
[000183] -A---+------ \--* ASG ref | |
[000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
***** BB01, stmt 4 | |
[000074] ------------ * STMT void (IL 0x00C... ???) | |
[000185] -------N---- | /--* LCL_VAR ref V13 tmp12 | |
[000186] -A---+------ \--* ASG ref | |
[000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
***** BB01, stmt 5 | |
[000092] ------------ * STMT void (IL 0x011... ???) | |
[000188] -------N---- | /--* LCL_VAR ref V12 tmp11 | |
[000189] -A---+------ \--* ASG ref | |
[000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
***** BB01, stmt 6 | |
[000088] ------------ * STMT void (IL 0x011... ???) | |
[000195] -------N---- | /--* LCL_VAR ref V14 tmp13 | |
[000196] -A---+------ \--* ASG ref | |
[000194] *------N---- \--* IND ref | |
[000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
[000193] ------------ \--* ADD byref | |
[000190] ------------ \--* ADDR byref | |
[000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
[000106] ------------ * STMT void (IL 0x016... ???) | |
[000038] x----+------ | /--* IND ref | |
[000037] L----+------ | | \--* ADDR byref | |
[000033] -----+-N---- | | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---+------ \--* ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
[000102] ------------ * STMT void (IL 0x016... ???) | |
[000200] x----------- | /--* IND ref | |
[000199] L----------- | | \--* ADDR byref | |
[000097] -----+------ | | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G+------ \--* ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
[000120] ------------ * STMT void (IL 0x01B... ???) | |
[000044] x----+------ | /--* IND ref | |
[000043] L----+------ | | \--* ADDR byref | |
[000041] -----+-N---- | | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---+------ \--* ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
[000116] ------------ * STMT void (IL 0x01B... ???) | |
[000204] x----------- | /--* IND ref | |
[000203] L----------- | | \--* ADDR byref | |
[000111] -----+------ | | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G+------ \--* ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
***** BB01, stmt 11 | |
[000179] ------------ * STMT void (IL 0x020... ???) | |
[000178] --CXG+------ \--* CALL nullcheck void C.M | |
[000176] -----+------ this in rcx \--* LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
***** BB01, stmt 12 | |
[000052] ------------ * STMT void (IL 0x027... ???) | |
[000051] -----+------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
argSlots=1, preallocatedArgCount=4, nextSlotNum=4, outgoingArgSpaceSize=32 | |
Sorting the arguments: | |
Deferred argument ('rcx'): | |
[000003] -----+------ * CNS_INT(h) long 0x7ffc12345508 method | |
Replaced with placeholder node: | |
[000208] ----------L- * ARGPLACE long | |
Shuffled argument table: rcx | |
fgArgTabEntry[arg 0 3.CNS_INT, 1 reg: rcx, align=1, lateArgInx=0, processed] | |
*************** Exiting Allocate Objects | |
Trees after Allocate Objects | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
[000007] ------------ * STMT void (IL 0x000...0x027) | |
[000004] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
[000003] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -AC--+------ \--* ASG ref | |
[000005] D----+-N---- \--* LCL_VAR ref V02 tmp1 | |
***** BB01, stmt 2 | |
[000064] ------------ * STMT void (IL 0x007... ???) | |
[000011] -----+------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---+------ \--* ASG ref | |
[000062] D----+-N---- \--* LCL_VAR ref V11 tmp10 | |
***** BB01, stmt 3 | |
[000078] ------------ * STMT void (IL 0x00C... ???) | |
[000182] -------N---- | /--* LCL_VAR ref V11 tmp10 | |
[000183] -A---+------ \--* ASG ref | |
[000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
***** BB01, stmt 4 | |
[000074] ------------ * STMT void (IL 0x00C... ???) | |
[000185] -------N---- | /--* LCL_VAR ref V13 tmp12 | |
[000186] -A---+------ \--* ASG ref | |
[000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
***** BB01, stmt 5 | |
[000092] ------------ * STMT void (IL 0x011... ???) | |
[000188] -------N---- | /--* LCL_VAR ref V12 tmp11 | |
[000189] -A---+------ \--* ASG ref | |
[000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
***** BB01, stmt 6 | |
[000088] ------------ * STMT void (IL 0x011... ???) | |
[000195] -------N---- | /--* LCL_VAR ref V14 tmp13 | |
[000196] -A---+------ \--* ASG ref | |
[000194] *------N---- \--* IND ref | |
[000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
[000193] ------------ \--* ADD byref | |
[000190] ------------ \--* ADDR byref | |
[000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
[000106] ------------ * STMT void (IL 0x016... ???) | |
[000038] x----+------ | /--* IND ref | |
[000037] L----+------ | | \--* ADDR byref | |
[000033] -----+-N---- | | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---+------ \--* ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
[000102] ------------ * STMT void (IL 0x016... ???) | |
[000200] x----------- | /--* IND ref | |
[000199] L----------- | | \--* ADDR byref | |
[000097] -----+------ | | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G+------ \--* ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
[000120] ------------ * STMT void (IL 0x01B... ???) | |
[000044] x----+------ | /--* IND ref | |
[000043] L----+------ | | \--* ADDR byref | |
[000041] -----+-N---- | | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---+------ \--* ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
[000116] ------------ * STMT void (IL 0x01B... ???) | |
[000204] x----------- | /--* IND ref | |
[000203] L----------- | | \--* ADDR byref | |
[000111] -----+------ | | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G+------ \--* ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
***** BB01, stmt 11 | |
[000179] ------------ * STMT void (IL 0x020... ???) | |
[000178] --CXG+------ \--* CALL nullcheck void C.M | |
[000176] -----+------ this in rcx \--* LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
***** BB01, stmt 12 | |
[000052] ------------ * STMT void (IL 0x027... ???) | |
[000051] -----+------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In optOptimizeLoops() | |
*************** In fgDebugCheckBBlist | |
*************** In optCloneLoops() | |
*************** In lvaMarkLocalVars() | |
*** marking local variables in block BB01 (weight=1 ) | |
[000007] ------------ * STMT void (IL 0x000...0x027) | |
[000004] --C--+------ | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
[000003] -----+------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
[000006] -AC--+------ \--* ASG ref | |
[000005] D----+-N---- \--* LCL_VAR ref V02 tmp1 | |
New refCnts for V02: refCnt = 1, refCntWtd = 2 | |
[000064] ------------ * STMT void (IL 0x007... ???) | |
[000011] -----+------ | /--* LCL_VAR ref V02 tmp1 | |
[000063] -A---+------ \--* ASG ref | |
[000062] D----+-N---- \--* LCL_VAR ref V11 tmp10 | |
New refCnts for V11: refCnt = 1, refCntWtd = 1 | |
New refCnts for V02: refCnt = 2, refCntWtd = 4 | |
[000078] ------------ * STMT void (IL 0x00C... ???) | |
[000182] -------N---- | /--* LCL_VAR ref V11 tmp10 | |
[000183] -A---+------ \--* ASG ref | |
[000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
New refCnts for V13: refCnt = 1, refCntWtd = 1 | |
New refCnts for V11: refCnt = 2, refCntWtd = 2 | |
[000074] ------------ * STMT void (IL 0x00C... ???) | |
[000185] -------N---- | /--* LCL_VAR ref V13 tmp12 | |
[000186] -A---+------ \--* ASG ref | |
[000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
New refCnts for V12: refCnt = 1, refCntWtd = 1 | |
New refCnts for V13: refCnt = 2, refCntWtd = 2 | |
[000092] ------------ * STMT void (IL 0x011... ???) | |
[000188] -------N---- | /--* LCL_VAR ref V12 tmp11 | |
[000189] -A---+------ \--* ASG ref | |
[000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
New refCnts for V14: refCnt = 1, refCntWtd = 1 | |
New refCnts for V12: refCnt = 2, refCntWtd = 2 | |
[000088] ------------ * STMT void (IL 0x011... ???) | |
[000195] -------N---- | /--* LCL_VAR ref V14 tmp13 | |
[000196] -A---+------ \--* ASG ref | |
[000194] *------N---- \--* IND ref | |
[000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
[000193] ------------ \--* ADD byref | |
[000190] ------------ \--* ADDR byref | |
[000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
New refCnts for V05: refCnt = 1, refCntWtd = 2 | |
New refCnts for V14: refCnt = 2, refCntWtd = 2 | |
[000106] ------------ * STMT void (IL 0x016... ???) | |
[000038] x----+------ | /--* IND ref | |
[000037] L----+------ | | \--* ADDR byref | |
[000033] -----+-N---- | | \--* LCL_VAR struct(AX) V05 tmp4 | |
[000105] -A---+------ \--* ASG ref | |
[000198] x------N---- \--* IND ref | |
[000197] L----------- \--* ADDR byref | |
[000103] D----+-N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
New refCnts for V09: refCnt = 1, refCntWtd = 2 | |
New refCnts for V05: refCnt = 2, refCntWtd = 4 | |
[000102] ------------ * STMT void (IL 0x016... ???) | |
[000200] x----------- | /--* IND ref | |
[000199] L----------- | | \--* ADDR byref | |
[000097] -----+------ | | \--* LCL_VAR struct(AX) V09 tmp8 | |
[000101] -A--G+------ \--* ASG ref | |
[000100] *---G+-N---- \--* IND ref | |
[000099] -----+------ \--* ADDR byref | |
[000096] D----+-N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
New refCnts for V06: refCnt = 1, refCntWtd = 2 | |
New refCnts for V09: refCnt = 2, refCntWtd = 4 | |
[000120] ------------ * STMT void (IL 0x01B... ???) | |
[000044] x----+------ | /--* IND ref | |
[000043] L----+------ | | \--* ADDR byref | |
[000041] -----+-N---- | | \--* LCL_VAR struct(AX) V06 tmp5 | |
[000119] -A---+------ \--* ASG ref | |
[000202] x------N---- \--* IND ref | |
[000201] L----------- \--* ADDR byref | |
[000117] D----+-N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
New refCnts for V10: refCnt = 1, refCntWtd = 2 | |
New refCnts for V06: refCnt = 2, refCntWtd = 4 | |
[000116] ------------ * STMT void (IL 0x01B... ???) | |
[000204] x----------- | /--* IND ref | |
[000203] L----------- | | \--* ADDR byref | |
[000111] -----+------ | | \--* LCL_VAR struct(AX) V10 tmp9 | |
[000115] -A--G+------ \--* ASG ref | |
[000114] *---G+-N---- \--* IND ref | |
[000113] -----+------ \--* ADDR byref | |
[000110] D----+-N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
New refCnts for V00: refCnt = 1, refCntWtd = 1 | |
New refCnts for V10: refCnt = 2, refCntWtd = 4 | |
[000179] ------------ * STMT void (IL 0x020... ???) | |
[000178] --CXG+------ \--* CALL nullcheck void C.M | |
[000176] -----+------ this in rcx \--* LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
New refCnts for V00: refCnt = 2, refCntWtd = 2 | |
[000052] ------------ * STMT void (IL 0x027... ???) | |
[000051] -----+------ \--* RETURN void | |
*************** In optAddCopies() | |
Local V00 should not be enregistered because: it is a struct | |
refCnt table for 'ViaStruct5': | |
V02 tmp1 [ ref]: refCnt = 2, refCntWtd = 4 | |
V11 tmp10 [ ref]: refCnt = 2, refCntWtd = 2 | |
V12 tmp11 [ ref]: refCnt = 2, refCntWtd = 2 | |
V13 tmp12 [ ref]: refCnt = 2, refCntWtd = 2 | |
V14 tmp13 [ ref]: refCnt = 2, refCntWtd = 2 | |
V00 loc0 [struct]: refCnt = 2, refCntWtd = 2 | |
V05 tmp4 [struct]: refCnt = 2, refCntWtd = 4 | |
V06 tmp5 [struct]: refCnt = 2, refCntWtd = 4 | |
V09 tmp8 [struct]: refCnt = 2, refCntWtd = 4 | |
V10 tmp9 [struct]: refCnt = 2, refCntWtd = 4 | |
V01 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1 | |
*************** In optOptimizeBools() | |
*************** In fgDebugCheckBBlist | |
*************** In fgFindOperOrder() | |
*************** In fgSetBlockOrder() | |
The biggest BB has 7 tree nodes | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 [+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 [+0] Fseq[_s, _s, _s, _s, _c] | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In SsaBuilder::Build() | |
[SsaBuilder] Max block count is 2. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** Exception Handling table is empty | |
[SsaBuilder] Topologically sorted the graph. | |
[SsaBuilder::ComputeImmediateDom] | |
*************** In SsaBuilder::ComputeDominators(BasicBlock** postOrder, int count, ...) | |
*************** In SsaBuilder::InsertPhiFunctions() | |
*************** In fgLocalVarLiveness() | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(0)={ } + ByrefExposed + GcHeap | |
DEF(6)={V02 V11 V12 V13 V14 V00} + ByrefExposed* + GcHeap* | |
** Memory liveness computed, GcHeap states and ByrefExposed states diverge | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
Inserting phi functions: | |
*************** In SsaBuilder::RenameVariables() | |
After fgSsaBuild: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 u:3 (last use) | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 u:3 (last use) | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 u:3 (last use) | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 u:3 (last use) | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 u:3 (last use) | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In optEarlyProp() | |
*************** In fgValueNumber() | |
Memory Initial Value in BB01 is: $c0 | |
The SSA definition for ByrefExposed (#2) at start of BB01 is $c0 {InitVal($80)} | |
The SSA definition for GcHeap (#2) at start of BB01 is $c0 {InitVal($80)} | |
***** BB01, stmt 1 (before) | |
N005 ( 17, 16) [000004] --C--------- /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | \--* CNS_INT(h) long 0x7ffc12345508 method | |
N007 ( 17, 16) [000006] -AC-----R--- * ASG ref | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 | |
N001 [000208] ARGPLACE => $100 {100} | |
N002 [000207] LIST => $140 {LIST($100, $0)} | |
N003 [000003] CNS_INT(h) 0x7ffc12345508 method => $180 {Hnd const: 0x00007FFC12345508} | |
N004 [000209] LIST => $141 {LIST($180, $0)} | |
VN of ARGPLACE tree [000208] updated to $180 {Hnd const: 0x00007FFC12345508} | |
N002 [000207] LIST => $141 {LIST($180, $0)} | |
N005 [000004] CALL help => $200 {JitNew($180, $1c0)} | |
N006 [000005] LCL_VAR V02 tmp1 d:3 => $200 {JitNew($180, $1c0)} | |
N007 [000006] ASG => $200 {JitNew($180, $1c0)} | |
***** BB01, stmt 1 (after) | |
N005 ( 17, 16) [000004] --C--------- /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | \--* CNS_INT(h) long 0x7ffc12345508 method $180 | |
N007 ( 17, 16) [000006] -AC-----R--- * ASG ref $200 | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 $200 | |
--------- | |
***** BB01, stmt 2 (before) | |
N001 ( 1, 1) [000011] ------------ /--* LCL_VAR ref V02 tmp1 u:3 (last use) | |
N003 ( 5, 4) [000063] -A------R--- * ASG ref | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 | |
N001 [000011] LCL_VAR V02 tmp1 u:3 (last use) => $200 {JitNew($180, $1c0)} | |
N002 [000062] LCL_VAR V11 tmp10 d:3 => $200 {JitNew($180, $1c0)} | |
N003 [000063] ASG => $200 {JitNew($180, $1c0)} | |
***** BB01, stmt 2 (after) | |
N001 ( 1, 1) [000011] ------------ /--* LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
N003 ( 5, 4) [000063] -A------R--- * ASG ref $200 | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 $200 | |
--------- | |
***** BB01, stmt 3 (before) | |
N001 ( 3, 2) [000182] -------N---- /--* LCL_VAR ref V11 tmp10 u:3 (last use) | |
N003 ( 7, 5) [000183] -A------R--- * ASG ref | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 | |
N001 [000182] LCL_VAR V11 tmp10 u:3 (last use) => $200 {JitNew($180, $1c0)} | |
N002 [000181] LCL_VAR V13 tmp12 d:3 => $200 {JitNew($180, $1c0)} | |
N003 [000183] ASG => $200 {JitNew($180, $1c0)} | |
***** BB01, stmt 3 (after) | |
N001 ( 3, 2) [000182] -------N---- /--* LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
N003 ( 7, 5) [000183] -A------R--- * ASG ref $200 | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 $200 | |
--------- | |
***** BB01, stmt 4 (before) | |
N001 ( 3, 2) [000185] -------N---- /--* LCL_VAR ref V13 tmp12 u:3 (last use) | |
N003 ( 7, 5) [000186] -A------R--- * ASG ref | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 | |
N001 [000185] LCL_VAR V13 tmp12 u:3 (last use) => $200 {JitNew($180, $1c0)} | |
N002 [000184] LCL_VAR V12 tmp11 d:3 => $200 {JitNew($180, $1c0)} | |
N003 [000186] ASG => $200 {JitNew($180, $1c0)} | |
***** BB01, stmt 4 (after) | |
N001 ( 3, 2) [000185] -------N---- /--* LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
N003 ( 7, 5) [000186] -A------R--- * ASG ref $200 | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 $200 | |
--------- | |
***** BB01, stmt 5 (before) | |
N001 ( 3, 2) [000188] -------N---- /--* LCL_VAR ref V12 tmp11 u:3 (last use) | |
N003 ( 7, 5) [000189] -A------R--- * ASG ref | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 | |
N001 [000188] LCL_VAR V12 tmp11 u:3 (last use) => $200 {JitNew($180, $1c0)} | |
N002 [000187] LCL_VAR V14 tmp13 d:3 => $200 {JitNew($180, $1c0)} | |
N003 [000189] ASG => $200 {JitNew($180, $1c0)} | |
***** BB01, stmt 5 (after) | |
N001 ( 3, 2) [000188] -------N---- /--* LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
N003 ( 7, 5) [000189] -A------R--- * ASG ref $200 | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 $200 | |
--------- | |
***** BB01, stmt 6 (before) | |
N006 ( 3, 2) [000195] -------N---- /--* LCL_VAR ref V14 tmp13 u:3 (last use) | |
N007 ( 10, 10) [000196] -A---------- * ASG ref | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
N002 [000190] ADDR => $240 {240} | |
N003 [000192] CNS_INT 0 Fseq[_s] => $280 {LngCns: 0} | |
N004 [000193] ADD => $2c0 {ADD($240, $280)} | |
N006 [000195] LCL_VAR V14 tmp13 u:3 (last use) => $200 {JitNew($180, $1c0)} | |
fgCurMemoryVN[ByrefExposed] assigned by PtrToLoc indir at [000196] to VN: $41. | |
N007 [000196] ASG => $VN.Void | |
***** BB01, stmt 6 (after) | |
N006 ( 3, 2) [000195] -------N---- /--* LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
N007 ( 10, 10) [000196] -A---------- * ASG ref $VN.Void | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref $200 | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] $280 | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref $2c0 | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref $240 | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
--------- | |
***** BB01, stmt 7 (before) | |
N003 ( 6, 5) [000038] x----------- /--* IND ref | |
N002 ( 3, 3) [000037] L----------- | \--* ADDR byref | |
N001 ( 3, 2) [000033] -------N---- | \--* LCL_VAR struct(AX) V05 tmp4 | |
N007 ( 13, 11) [000105] -A------R--- * ASG ref | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
N001 [000033] LCL_VAR V05 tmp4 => $300 {ByrefExposedLoad($82, $2c1, $41)} | |
N002 [000037] ADDR => $241 {241} | |
N003 [000038] IND => <l:$340 {ByrefExposedLoad($83, $241, $41)}, c:$1c6 {1c6}> | |
N005 [000197] ADDR => $242 {242} | |
fgCurMemoryVN[ByrefExposed] assigned by PtrToLoc indir at [000105] to VN: $42. | |
N007 [000105] ASG => $VN.Void | |
***** BB01, stmt 7 (after) | |
N003 ( 6, 5) [000038] x----------- /--* IND ref <l:$340, c:$1c6> | |
N002 ( 3, 3) [000037] L----------- | \--* ADDR byref $241 | |
N001 ( 3, 2) [000033] -------N---- | \--* LCL_VAR struct(AX) V05 tmp4 $300 | |
N007 ( 13, 11) [000105] -A------R--- * ASG ref $VN.Void | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref <l:$340, c:$1c6> | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref $242 | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
--------- | |
***** BB01, stmt 8 (before) | |
N003 ( 6, 5) [000200] x----------- /--* IND ref | |
N002 ( 3, 3) [000199] L----------- | \--* ADDR byref | |
N001 ( 3, 2) [000097] ------------ | \--* LCL_VAR struct(AX) V09 tmp8 | |
N007 ( 13, 13) [000101] -A--G---R--- * ASG ref | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
N001 [000097] LCL_VAR V09 tmp8 => $301 {ByrefExposedLoad($82, $2c2, $42)} | |
N002 [000199] ADDR => $243 {243} | |
N003 [000200] IND => <l:$341 {ByrefExposedLoad($83, $243, $42)}, c:$1c7 {1c7}> | |
N005 [000099] ADDR => $244 {244} | |
fgCurMemoryVN[ByrefExposed] assigned by PtrToLoc indir at [000101] to VN: $43. | |
N007 [000101] ASG => $VN.Void | |
***** BB01, stmt 8 (after) | |
N003 ( 6, 5) [000200] x----------- /--* IND ref <l:$341, c:$1c7> | |
N002 ( 3, 3) [000199] L----------- | \--* ADDR byref $243 | |
N001 ( 3, 2) [000097] ------------ | \--* LCL_VAR struct(AX) V09 tmp8 $301 | |
N007 ( 13, 13) [000101] -A--G---R--- * ASG ref $VN.Void | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref <l:$341, c:$1c7> | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref $244 | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
--------- | |
***** BB01, stmt 9 (before) | |
N003 ( 6, 5) [000044] x----------- /--* IND ref | |
N002 ( 3, 3) [000043] L----------- | \--* ADDR byref | |
N001 ( 3, 2) [000041] -------N---- | \--* LCL_VAR struct(AX) V06 tmp5 | |
N007 ( 13, 11) [000119] -A------R--- * ASG ref | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
N001 [000041] LCL_VAR V06 tmp5 => $302 {ByrefExposedLoad($82, $2c3, $43)} | |
N002 [000043] ADDR => $245 {245} | |
N003 [000044] IND => <l:$342 {ByrefExposedLoad($83, $245, $43)}, c:$1c8 {1c8}> | |
N005 [000201] ADDR => $246 {246} | |
fgCurMemoryVN[ByrefExposed] assigned by PtrToLoc indir at [000119] to VN: $44. | |
N007 [000119] ASG => $VN.Void | |
***** BB01, stmt 9 (after) | |
N003 ( 6, 5) [000044] x----------- /--* IND ref <l:$342, c:$1c8> | |
N002 ( 3, 3) [000043] L----------- | \--* ADDR byref $245 | |
N001 ( 3, 2) [000041] -------N---- | \--* LCL_VAR struct(AX) V06 tmp5 $302 | |
N007 ( 13, 11) [000119] -A------R--- * ASG ref $VN.Void | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref <l:$342, c:$1c8> | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref $246 | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
--------- | |
***** BB01, stmt 10 (before) | |
N003 ( 6, 5) [000204] x----------- /--* IND ref | |
N002 ( 3, 3) [000203] L----------- | \--* ADDR byref | |
N001 ( 3, 2) [000111] ------------ | \--* LCL_VAR struct(AX) V10 tmp9 | |
N007 ( 13, 13) [000115] -A--G---R--- * ASG ref | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
N001 [000111] LCL_VAR V10 tmp9 => $303 {ByrefExposedLoad($82, $2c4, $44)} | |
N002 [000203] ADDR => $247 {247} | |
N003 [000204] IND => <l:$343 {ByrefExposedLoad($83, $247, $44)}, c:$1c9 {1c9}> | |
fieldHnd $181 is {Hnd const: 0x00007FFC12345900} | |
fieldSeq $201 is {_s} | |
N005 [000113] ADDR => $2c5 {PtrToLoc($87, $201)} | |
Tree [000115] assigned VN to local var V00/3: VN <l:$343 {ByrefExposedLoad($83, $247, $44)}, c:$1c9 {1c9}> | |
N007 [000115] ASG => $VN.Void | |
***** BB01, stmt 10 (after) | |
N003 ( 6, 5) [000204] x----------- /--* IND ref <l:$343, c:$1c9> | |
N002 ( 3, 3) [000203] L----------- | \--* ADDR byref $247 | |
N001 ( 3, 2) [000111] ------------ | \--* LCL_VAR struct(AX) V10 tmp9 $303 | |
N007 ( 13, 13) [000115] -A--G---R--- * ASG ref $VN.Void | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref <l:$343, c:$1c9> | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref $2c5 | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
--------- | |
***** BB01, stmt 11 (before) | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) | |
N001 [000205] ARGPLACE => $1ca {1ca} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $181, fieldType is struct, size = 8 | |
VNForMapSelect($343, $181):struct returns $380 {$343[$181]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $182, fieldType is struct, size = 8 | |
VNForMapSelect($380, $182):struct returns $381 {$380[$182]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $183, fieldType is struct, size = 8 | |
VNForMapSelect($381, $183):struct returns $382 {$381[$183]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $184, fieldType is struct, size = 8 | |
VNForMapSelect($382, $184):struct returns $383 {$382[$184]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_c]) is $185, fieldType is ref | |
VNForMapSelect($383, $185):ref returns $202 {$383[$185]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $181, fieldType is struct, size = 8 | |
VNForMapSelect($1c9, $181):struct returns $384 {$1c9[$181]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $182, fieldType is struct, size = 8 | |
VNForMapSelect($384, $182):struct returns $385 {$384[$182]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $183, fieldType is struct, size = 8 | |
VNForMapSelect($385, $183):struct returns $386 {$385[$183]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_s]) is $184, fieldType is struct, size = 8 | |
VNForMapSelect($386, $184):struct returns $387 {$386[$184]} | |
VNApplySelectors: | |
VNForHandle(Fseq[_c]) is $185, fieldType is ref | |
VNForMapSelect($387, $185):ref returns $203 {$387[$185]} | |
N002 [000176] LCL_FLD V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) => <l:$202 {$383[$185]}, c:$203 {$387[$185]}> | |
N003 [000206] LIST => <l:$143 {LIST($202, $0)}, c:$142 {LIST($203, $0)}> | |
fgCurMemoryVN[GcHeap] assigned by CALL at [000178] to VN: $1cb. | |
N004 [000178] CALL nullcheck => $VN.Void | |
***** BB01, stmt 11 (after) | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
--------- | |
***** BB01, stmt 12 (before) | |
N001 ( 0, 0) [000051] ------------ * RETURN void | |
N001 [000051] RETURN => $3c0 {3c0} | |
***** BB01, stmt 12 (after) | |
N001 ( 0, 0) [000051] ------------ * RETURN void $3c0 | |
finish(BB01). | |
*************** In optVnCopyProp() | |
*************** In SsaBuilder::ComputeDominators(Compiler*, ...) | |
Copy Assertion for BB01 | |
curSsaName stack: { } | |
Live vars: {} => {V02} | |
Live vars: {V02} => {} | |
Live vars: {} => {V11} | |
Live vars: {V11} => {} | |
Live vars: {} => {V13} | |
Live vars: {V13} => {} | |
Live vars: {} => {V12} | |
Live vars: {V12} => {} | |
Live vars: {} => {V14} | |
Live vars: {V14} => {} | |
Live vars: {} => {V00} | |
Live vars: {V00} => {} | |
*************** In optOptimizeCSEs() | |
Blocks/Trees at start of optOptimizeCSE phase | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method $180 | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref $200 | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 $200 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 $200 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 $200 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 $200 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 $200 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref $VN.Void | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref $200 | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] $280 | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref $2c0 | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref $240 | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref <l:$340, c:$1c6> | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref $241 | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 $300 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref <l:$340, c:$1c6> | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref $242 | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref <l:$341, c:$1c7> | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref $243 | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 $301 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref <l:$341, c:$1c7> | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref $244 | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref <l:$342, c:$1c8> | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref $245 | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 $302 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref <l:$342, c:$1c8> | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref $246 | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref <l:$343, c:$1c9> | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref $247 | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 $303 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref <l:$343, c:$1c9> | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref $2c5 | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M $VN.Void | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In optOptimizeValnumCSEs() | |
*************** In optAssertionPropMain() | |
Blocks/Trees at start of phase | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method $180 | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref $200 | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 $200 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 $200 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 $200 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 $200 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 $200 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref $VN.Void | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref $200 | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] $280 | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref $2c0 | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref $240 | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref <l:$340, c:$1c6> | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref $241 | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 $300 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref <l:$340, c:$1c6> | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref $242 | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref <l:$341, c:$1c7> | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref $243 | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 $301 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref <l:$341, c:$1c7> | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref $244 | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref <l:$342, c:$1c8> | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref $245 | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 $302 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref <l:$342, c:$1c8> | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref $246 | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref <l:$343, c:$1c9> | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref $247 | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 $303 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref <l:$343, c:$1c9> | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref $2c5 | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M $VN.Void | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In OptimizeRangeChecks() | |
Blocks/trees before phase | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method $180 | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref $200 | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 $200 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 $200 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 $200 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 $200 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 $200 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref $VN.Void | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref $200 | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] $280 | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref $2c0 | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref $240 | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref <l:$340, c:$1c6> | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref $241 | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 $300 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref <l:$340, c:$1c6> | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref $242 | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref <l:$341, c:$1c7> | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref $243 | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 $301 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref <l:$341, c:$1c7> | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref $244 | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref <l:$342, c:$1c8> | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref $245 | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 $302 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref <l:$342, c:$1c8> | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref $246 | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref <l:$343, c:$1c9> | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref $247 | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 $303 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref <l:$343, c:$1c9> | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref $2c5 | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M $VN.Void | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDetermineFirstColdBlock() | |
No procedure splitting will be done for this method | |
*************** In IR Rationalize | |
Trees before IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
***** BB01, stmt 1 | |
( 17, 16) [000007] ------------ * STMT void (IL 0x000...0x027) | |
N005 ( 17, 16) [000004] --C--------- | /--* CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
N003 ( 3, 10) [000003] ------------ arg0 in rcx | | \--* CNS_INT(h) long 0x7ffc12345508 method $180 | |
N007 ( 17, 16) [000006] -AC-----R--- \--* ASG ref $200 | |
N006 ( 1, 1) [000005] D------N---- \--* LCL_VAR ref V02 tmp1 d:3 $200 | |
***** BB01, stmt 2 | |
( 5, 4) [000064] ------------ * STMT void (IL 0x007... ???) | |
N001 ( 1, 1) [000011] ------------ | /--* LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
N003 ( 5, 4) [000063] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000062] D------N---- \--* LCL_VAR ref V11 tmp10 d:3 $200 | |
***** BB01, stmt 3 | |
( 7, 5) [000078] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000182] -------N---- | /--* LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
N003 ( 7, 5) [000183] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000181] D------N---- \--* LCL_VAR ref V13 tmp12 d:3 $200 | |
***** BB01, stmt 4 | |
( 7, 5) [000074] ------------ * STMT void (IL 0x00C... ???) | |
N001 ( 3, 2) [000185] -------N---- | /--* LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
N003 ( 7, 5) [000186] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000184] D------N---- \--* LCL_VAR ref V12 tmp11 d:3 $200 | |
***** BB01, stmt 5 | |
( 7, 5) [000092] ------------ * STMT void (IL 0x011... ???) | |
N001 ( 3, 2) [000188] -------N---- | /--* LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
N003 ( 7, 5) [000189] -A------R--- \--* ASG ref $200 | |
N002 ( 3, 2) [000187] D------N---- \--* LCL_VAR ref V14 tmp13 d:3 $200 | |
***** BB01, stmt 6 | |
( 10, 10) [000088] ------------ * STMT void (IL 0x011... ???) | |
N006 ( 3, 2) [000195] -------N---- | /--* LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
N007 ( 10, 10) [000196] -A---------- \--* ASG ref $VN.Void | |
N005 ( 6, 7) [000194] *------N---- \--* IND ref $200 | |
N003 ( 1, 1) [000192] ------------ | /--* CNS_INT long 0 Fseq[_s] $280 | |
N004 ( 5, 7) [000193] -------N---- \--* ADD byref $2c0 | |
N002 ( 3, 5) [000190] ------------ \--* ADDR byref $240 | |
N001 ( 3, 4) [000191] D------N---- \--* LCL_FLD struct V05 tmp4 [+0] Fseq[_s] | |
***** BB01, stmt 7 | |
( 13, 11) [000106] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000038] x----------- | /--* IND ref <l:$340, c:$1c6> | |
N002 ( 3, 3) [000037] L----------- | | \--* ADDR byref $241 | |
N001 ( 3, 2) [000033] -------N---- | | \--* LCL_VAR struct(AX) V05 tmp4 $300 | |
N007 ( 13, 11) [000105] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000198] x------N---- \--* IND ref <l:$340, c:$1c6> | |
N005 ( 3, 3) [000197] L----------- \--* ADDR byref $242 | |
N004 ( 3, 2) [000103] D------N---- \--* LCL_VAR struct(AX) V09 tmp8 | |
***** BB01, stmt 8 | |
( 13, 13) [000102] ------------ * STMT void (IL 0x016... ???) | |
N003 ( 6, 5) [000200] x----------- | /--* IND ref <l:$341, c:$1c7> | |
N002 ( 3, 3) [000199] L----------- | | \--* ADDR byref $243 | |
N001 ( 3, 2) [000097] ------------ | | \--* LCL_VAR struct(AX) V09 tmp8 $301 | |
N007 ( 13, 13) [000101] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000100] *---G--N---- \--* IND ref <l:$341, c:$1c7> | |
N005 ( 3, 5) [000099] ------------ \--* ADDR byref $244 | |
N004 ( 3, 4) [000096] D------N---- \--* LCL_FLD struct V06 tmp5 [+0] Fseq[_s] | |
***** BB01, stmt 9 | |
( 13, 11) [000120] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000044] x----------- | /--* IND ref <l:$342, c:$1c8> | |
N002 ( 3, 3) [000043] L----------- | | \--* ADDR byref $245 | |
N001 ( 3, 2) [000041] -------N---- | | \--* LCL_VAR struct(AX) V06 tmp5 $302 | |
N007 ( 13, 11) [000119] -A------R--- \--* ASG ref $VN.Void | |
N006 ( 6, 5) [000202] x------N---- \--* IND ref <l:$342, c:$1c8> | |
N005 ( 3, 3) [000201] L----------- \--* ADDR byref $246 | |
N004 ( 3, 2) [000117] D------N---- \--* LCL_VAR struct(AX) V10 tmp9 | |
***** BB01, stmt 10 | |
( 13, 13) [000116] ------------ * STMT void (IL 0x01B... ???) | |
N003 ( 6, 5) [000204] x----------- | /--* IND ref <l:$343, c:$1c9> | |
N002 ( 3, 3) [000203] L----------- | | \--* ADDR byref $247 | |
N001 ( 3, 2) [000111] ------------ | | \--* LCL_VAR struct(AX) V10 tmp9 $303 | |
N007 ( 13, 13) [000115] -A--G---R--- \--* ASG ref $VN.Void | |
N006 ( 6, 7) [000114] *---G--N---- \--* IND ref <l:$343, c:$1c9> | |
N005 ( 3, 5) [000113] ------------ \--* ADDR byref $2c5 | |
N004 ( 3, 4) [000110] D------N---- \--* LCL_FLD struct V00 loc0 d:3[+0] Fseq[_s] | |
***** BB01, stmt 11 | |
( 17, 11) [000179] ------------ * STMT void (IL 0x020... ???) | |
N004 ( 17, 11) [000178] --CXG------- \--* CALL nullcheck void C.M $VN.Void | |
N002 ( 3, 4) [000176] ------------ this in rcx \--* LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
***** BB01, stmt 12 | |
( 0, 0) [000052] ------------ * STMT void (IL 0x027... ???) | |
N001 ( 0, 0) [000051] ------------ \--* RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N007 ( 17, 16) [000006] DAC--------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
rewriting asg(LCL_VAR, X) to STORE_LCL_VAR(X) | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR: | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N001 ( 3, 2) [000033] -------N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N004 ( 3, 2) [000103] D------N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N001 ( 3, 2) [000097] ------------ t97 = LCL_VAR_ADDR byref V09 tmp8 | |
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR: | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N001 ( 3, 2) [000041] -------N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N004 ( 3, 2) [000117] D------N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
Rewriting GT_ADDR(GT_LCL_VAR) to GT_LCL_VAR_ADDR: | |
N001 ( 3, 2) [000111] ------------ t111 = LCL_VAR_ADDR byref V10 tmp9 | |
Rewriting GT_ADDR(GT_LCL_FLD) to GT_LCL_FLD_ADDR: | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
*************** Exiting IR Rationalize | |
Trees after IR Rationalize | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
N003 ( 1, 1) [000192] ------------ t192 = CNS_INT long 0 Fseq[_s] $280 | |
/--* t191 byref | |
+--* t192 long | |
N004 ( 5, 7) [000193] -------N---- t193 = * ADD byref $2c0 | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t193 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -------N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] D------N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] ------------ t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -------N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] D------N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] ------------ t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Bumping outgoingArgSpaceSize to 32 for call [000004] | |
outgoingArgSpaceSize 32 sufficient for call [000178], which needs 32 | |
*************** In fgDebugCheckBBlist | |
*************** In Lowering | |
Trees before Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
N003 ( 1, 1) [000192] ------------ t192 = CNS_INT long 0 Fseq[_s] $280 | |
/--* t191 byref | |
+--* t192 long | |
N004 ( 5, 7) [000193] -------N---- t193 = * ADD byref $2c0 | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t193 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -------N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] D------N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] ------------ t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -------N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] D------N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] ------------ t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
lowering call (before): | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
objp: | |
====== | |
args: | |
====== | |
lowering arg : N001 ( 0, 0) [000208] ----------L- * ARGPLACE long $180 | |
late: | |
====== | |
lowering arg : N003 ( 3, 10) [000003] ------------ * CNS_INT(h) long 0x7ffc12345508 method $180 | |
new node is : [000215] ------------ * PUTARG_REG long REG rcx | |
lowering call (after): | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
Addressing mode: | |
Base | |
N001 ( 3, 4) [000191] D------N---- * LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
+ 0 | |
New addressing mode node: | |
[000216] ------------ * LEA(b+0) byref | |
Lower of StoreInd didn't mark the node as self contained for reason: 4 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] ------------ t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
No addressing mode: | |
N001 ( 3, 2) [000033] -------N---- * LCL_VAR_ADDR byref V05 tmp4 | |
No addressing mode: | |
N004 ( 3, 2) [000103] D------N---- * LCL_VAR_ADDR byref V09 tmp8 | |
Lower of StoreInd didn't mark the node as self contained for reason: 4 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] D------N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
No addressing mode: | |
N001 ( 3, 2) [000097] ------------ * LCL_VAR_ADDR byref V09 tmp8 | |
No addressing mode: | |
N004 ( 3, 4) [000096] D------N---- * LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
Lower of StoreInd didn't mark the node as self contained for reason: 3 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
No addressing mode: | |
N001 ( 3, 2) [000041] -------N---- * LCL_VAR_ADDR byref V06 tmp5 | |
No addressing mode: | |
N004 ( 3, 2) [000117] D------N---- * LCL_VAR_ADDR byref V10 tmp9 | |
Lower of StoreInd didn't mark the node as self contained for reason: 4 | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] D------N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
No addressing mode: | |
N001 ( 3, 2) [000111] ------------ * LCL_VAR_ADDR byref V10 tmp9 | |
No addressing mode: | |
N004 ( 3, 4) [000110] D------N---- * LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
Lower of StoreInd didn't mark the node as self contained for reason: 3 | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
lowering call (before): | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
objp: | |
====== | |
lowering arg : N001 ( 0, 0) [000205] ----------L- * ARGPLACE ref $1ca | |
args: | |
====== | |
late: | |
====== | |
lowering arg : N002 ( 3, 4) [000176] ------------ * LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
new node is : [000217] ------------ * PUTARG_REG ref REG rcx | |
lowering call (after): | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
lowering GT_RETURN | |
N001 ( 0, 0) [000051] ------------ * RETURN void $3c0 | |
============Lower has completed modifying nodes. | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] -c---------- t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgLocalVarLiveness() | |
; Initial local variable assignments | |
; | |
; V00 loc0 struct ( 8) do-not-enreg[SF] ld-addr-op | |
; V01 OutArgs lclBlk (32) | |
; V02 tmp1 ref class-hnd exact | |
; V03 tmp2 struct ( 8) | |
; V04 tmp3 struct ( 8) | |
; V05 tmp4 struct ( 8) do-not-enreg[XSFB] addr-exposed | |
; V06 tmp5 struct ( 8) do-not-enreg[XSF] addr-exposed | |
; V07 tmp6 struct ( 8) | |
; V08 tmp7 struct ( 8) | |
; V09 tmp8 struct ( 8) do-not-enreg[XSF] addr-exposed | |
; V10 tmp9 struct ( 8) do-not-enreg[XSF] addr-exposed | |
; V11 tmp10 ref V03._c(offs=0x00) P-INDEP | |
; V12 tmp11 ref V04._s(offs=0x00) P-INDEP | |
; V13 tmp12 ref V07._c(offs=0x00) P-INDEP | |
; V14 tmp13 ref V08._s(offs=0x00) P-INDEP | |
In fgLocalVarLivenessInit, sorting locals | |
Local V00 should not be enregistered because: it is a struct | |
refCnt table for 'ViaStruct5': | |
V02 tmp1 [ ref]: refCnt = 2, refCntWtd = 4 | |
V11 tmp10 [ ref]: refCnt = 2, refCntWtd = 2 | |
V12 tmp11 [ ref]: refCnt = 2, refCntWtd = 2 | |
V13 tmp12 [ ref]: refCnt = 2, refCntWtd = 2 | |
V14 tmp13 [ ref]: refCnt = 2, refCntWtd = 2 | |
V00 loc0 [struct]: refCnt = 2, refCntWtd = 2 | |
V05 tmp4 [struct]: refCnt = 2, refCntWtd = 4 | |
V06 tmp5 [struct]: refCnt = 2, refCntWtd = 4 | |
V09 tmp8 [struct]: refCnt = 2, refCntWtd = 4 | |
V10 tmp9 [struct]: refCnt = 2, refCntWtd = 4 | |
V01 OutArgs [lclBlk]: refCnt = 1, refCntWtd = 1 | |
*************** In fgPerBlockLocalVarLiveness() | |
BB01 USE(0)={ } + ByrefExposed + GcHeap | |
DEF(6)={V02 V11 V12 V13 V14 V00} + ByrefExposed* + GcHeap* | |
** Memory liveness computed, GcHeap states and ByrefExposed states diverge | |
*************** In fgInterBlockLocalVarLiveness() | |
BB liveness after fgLiveVarAnalysis(): | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
*************** In fgUpdateFlowGraph() | |
Before updating the flow graph: | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Liveness pass finished after lowering, IR: | |
lvasortagain = 0 | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] -c---------- t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting Lowering | |
Trees after Lowering | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] -c---------- t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
*************** In StackLevelSetter | |
Trees before StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] -c---------- t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** Exiting StackLevelSetter | |
Trees after StackLevelSetter | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 | |
N003 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method $180 | |
/--* t3 long | |
[000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N005 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N007 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 | |
( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 | |
N001 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 (last use) $200 | |
/--* t11 ref | |
N003 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 | |
( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 (last use) $200 | |
/--* t182 ref | |
N003 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 | |
( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc | |
N001 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 (last use) $200 | |
/--* t185 ref | |
N003 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 | |
( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 (last use) $200 | |
/--* t188 ref | |
N003 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 | |
( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 | |
N001 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] | |
/--* t191 byref | |
[000216] -c---------- t216 = * LEA(b+0) byref | |
N006 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 (last use) $200 | |
/--* t216 byref | |
+--* t195 ref | |
[000210] -A---------- * STOREIND ref | |
( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 | |
/--* t33 byref | |
N003 ( 6, 5) [000038] x----------- t38 = * IND ref <l:$340, c:$1c6> | |
N004 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t103 byref | |
+--* t38 ref | |
[000211] -A---------- * STOREIND ref | |
( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 | |
N001 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 | |
/--* t97 byref | |
N003 ( 6, 5) [000200] x----------- t200 = * IND ref <l:$341, c:$1c7> | |
N004 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] | |
/--* t96 byref | |
+--* t200 ref | |
[000212] -A--G------- * STOREIND ref | |
( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 | |
/--* t41 byref | |
N003 ( 6, 5) [000044] x----------- t44 = * IND ref <l:$342, c:$1c8> | |
N004 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t117 byref | |
+--* t44 ref | |
[000213] -A---------- * STOREIND ref | |
( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b | |
N001 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 | |
/--* t111 byref | |
N003 ( 6, 5) [000204] x----------- t204 = * IND ref <l:$343, c:$1c9> | |
N004 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] | |
/--* t110 byref | |
+--* t204 ref | |
[000214] -A--G------- * STOREIND ref | |
( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 | |
N002 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] (last use) <l:$202, c:$203> | |
/--* t176 ref | |
[000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N004 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 | |
N001 ( 0, 0) [000051] ------------ RETURN void $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Clearing modified regs. | |
buildIntervals ======== | |
----------------- | |
LIVENESS: | |
----------------- | |
BB01 use def in out | |
{} | |
{V00 V02 V11 V12 V13 V14} | |
{} | |
{} | |
Local V00 should not be enregistered because: it is a struct | |
Interval 0: RefPositions {} physReg:NA Preferences=[allInt] | |
Interval 1: RefPositions {} physReg:NA Preferences=[allInt] | |
Interval 2: RefPositions {} physReg:NA Preferences=[allInt] | |
Interval 3: RefPositions {} physReg:NA Preferences=[allInt] | |
Interval 4: RefPositions {} physReg:NA Preferences=[allInt] | |
FP callee save candidate vars: None | |
floatVarCount = 0; hasLoops = 0, singleExit = 1 | |
TUPLE STYLE DUMP BEFORE LSRA | |
LSRA Block Sequence: BB01( 1 ) | |
BB01 [000..028) (return), preds={} succs={} | |
===== | |
N000. IL_OFFSET IL offset: 0x0 | |
N003. t3 = CNS_INT(h) 0x7ffc12345508 method | |
N000. t215 = PUTARG_REG; t3 | |
N005. t4 = CALL help; t215 | |
N007. V02(t6); t4 | |
N000. IL_OFFSET IL offset: 0x7 | |
N001. V02(t11*) | |
N003. V11(t63); t11* | |
N000. IL_OFFSET IL offset: 0xc | |
N001. V11(t182*) | |
N003. V13(t183); t182* | |
N000. IL_OFFSET IL offset: 0xc | |
N001. V13(t185*) | |
N003. V12(t186); t185* | |
N000. IL_OFFSET IL offset: 0x11 | |
N001. V12(t188*) | |
N003. V14(t189); t188* | |
N000. IL_OFFSET IL offset: 0x11 | |
N001. t191 = LCL_FLD_ADDR V05 tmp4 [+0] Fseq[_s] | |
N000. t216 = LEA(b+0) ; t191 | |
N006. V14(t195*) | |
N000. STOREIND ; t216,t195* | |
N000. IL_OFFSET IL offset: 0x16 | |
N001. LCL_VAR_ADDR V05 tmp4 | |
N003. t38 = IND | |
N004. LCL_VAR_ADDR V09 tmp8 | |
N000. STOREIND ; t38 | |
N000. IL_OFFSET IL offset: 0x16 | |
N001. LCL_VAR_ADDR V09 tmp8 | |
N003. t200 = IND | |
N004. t96 = LCL_FLD_ADDR V06 tmp5 [+0] Fseq[_s] | |
N000. STOREIND ; t96,t200 | |
N000. IL_OFFSET IL offset: 0x1b | |
N001. LCL_VAR_ADDR V06 tmp5 | |
N003. t44 = IND | |
N004. LCL_VAR_ADDR V10 tmp9 | |
N000. STOREIND ; t44 | |
N000. IL_OFFSET IL offset: 0x1b | |
N001. LCL_VAR_ADDR V10 tmp9 | |
N003. t204 = IND | |
N004. t110 = LCL_FLD_ADDR V00 loc0 d:3[+0] Fseq[_s] | |
N000. STOREIND ; t110,t204 | |
N000. IL_OFFSET IL offset: 0x20 | |
N002. t176* = V00 MEM | |
N000. t217 = PUTARG_REG; t176* | |
N004. CALL nullcheck; t217 | |
N000. IL_OFFSET IL offset: 0x27 | |
N001. RETURN | |
buildIntervals second part ======== | |
NEW BLOCK BB01 | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1> | |
DefList: { } | |
N003 ( 17, 16) [000007] ------------ * IL_OFFSET void IL offset: 0x0 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N005 ( 3, 10) [000003] ------------ * CNS_INT(h) long 0x7ffc12345508 method REG NA $180 | |
Interval 5: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N005.t3. CNS_INT } | |
N007 (???,???) [000215] ------------ * PUTARG_REG long REG rcx | |
<RefPosition #2 @7 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #3 @7 RefTypeUse <Ivl:5> BB01 regmask=[rcx] minReg=1 last fixed> | |
Interval 6: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #5 @8 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N007.t215. PUTARG_REG } | |
N009 ( 17, 16) [000004] --C--------- * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #7 @9 RefTypeUse <Ivl:6> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #8 @10 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #9 @10 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #10 @10 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #11 @10 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1> | |
<RefPosition #12 @10 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1> | |
<RefPosition #13 @10 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1> | |
<RefPosition #14 @10 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1> | |
Interval 7: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #15 @10 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #16 @10 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N009.t4. CALL } | |
N011 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 NA REG NA | |
<RefPosition #17 @11 RefTypeUse <Ivl:7> BB01 regmask=[allInt] minReg=1 last> | |
Assigning related <L0> to <I7> | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N013 ( 5, 4) [000064] ------------ * IL_OFFSET void IL offset: 0x7 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N015 ( 1, 1) [000011] ------------ * LCL_VAR ref V02 tmp1 u:3 NA (last use) REG NA $200 | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { } | |
N017 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 NA REG NA | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
Assigning related <L1> to <L0> | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N019 ( 7, 5) [000078] ------------ * IL_OFFSET void IL offset: 0xc REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N021 ( 3, 2) [000182] -------N---- * LCL_VAR ref V11 tmp10 u:3 NA (last use) REG NA $200 | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { } | |
N023 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 NA REG NA | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
Assigning related <L3> to <L1> | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N025 ( 7, 5) [000074] ------------ * IL_OFFSET void IL offset: 0xc REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N027 ( 3, 2) [000185] -------N---- * LCL_VAR ref V13 tmp12 u:3 NA (last use) REG NA $200 | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { } | |
N029 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 NA REG NA | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
Assigning related <L2> to <L3> | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N031 ( 7, 5) [000092] ------------ * IL_OFFSET void IL offset: 0x11 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N033 ( 3, 2) [000188] -------N---- * LCL_VAR ref V12 tmp11 u:3 NA (last use) REG NA $200 | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { } | |
N035 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 NA REG NA | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
Assigning related <L4> to <L2> | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N037 ( 10, 10) [000088] ------------ * IL_OFFSET void IL offset: 0x11 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N039 ( 3, 4) [000191] D------N---- * LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] NA REG NA | |
Interval 8: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #27 @40 RefTypeDef <Ivl:8> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N039.t191. LCL_FLD_ADDR } | |
N041 (???,???) [000216] -c---------- * LEA(b+0) byref REG NA | |
Contained | |
DefList: { N039.t191. LCL_FLD_ADDR } | |
N043 ( 3, 2) [000195] -------N---- * LCL_VAR ref V14 tmp13 u:3 NA (last use) REG NA $200 | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N039.t191. LCL_FLD_ADDR } | |
N045 (???,???) [000210] -A---------- * STOREIND ref REG NA | |
<RefPosition #28 @45 RefTypeUse <Ivl:8> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=0 | |
DefList: { } | |
N047 ( 13, 11) [000106] ------------ * IL_OFFSET void IL offset: 0x16 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N049 ( 3, 2) [000033] -c-----N---- * LCL_VAR_ADDR byref V05 tmp4 NA REG NA | |
Contained | |
DefList: { } | |
N051 ( 6, 5) [000038] x----------- * IND ref REG NA <l:$340, c:$1c6> | |
Interval 9: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #30 @52 RefTypeDef <Ivl:9> IND BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N051.t38. IND } | |
N053 ( 3, 2) [000103] Dc-----N---- * LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
Contained | |
DefList: { N051.t38. IND } | |
N055 (???,???) [000211] -A---------- * STOREIND ref REG NA | |
<RefPosition #31 @55 RefTypeUse <Ivl:9> BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N057 ( 13, 13) [000102] ------------ * IL_OFFSET void IL offset: 0x16 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N059 ( 3, 2) [000097] -c---------- * LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
Contained | |
DefList: { } | |
N061 ( 6, 5) [000200] x----------- * IND ref REG NA <l:$341, c:$1c7> | |
Interval 10: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #32 @62 RefTypeDef <Ivl:10> IND BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N061.t200. IND } | |
N063 ( 3, 4) [000096] D------N---- * LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] NA REG NA | |
Interval 11: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #33 @64 RefTypeDef <Ivl:11> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N061.t200. IND; N063.t96. LCL_FLD_ADDR } | |
N065 (???,???) [000212] -A--G------- * STOREIND ref REG NA | |
<RefPosition #34 @65 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #35 @65 RefTypeUse <Ivl:10> BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=0 | |
DefList: { } | |
N067 ( 13, 11) [000120] ------------ * IL_OFFSET void IL offset: 0x1b REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N069 ( 3, 2) [000041] -c-----N---- * LCL_VAR_ADDR byref V06 tmp5 NA REG NA | |
Contained | |
DefList: { } | |
N071 ( 6, 5) [000044] x----------- * IND ref REG NA <l:$342, c:$1c8> | |
Interval 12: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #36 @72 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N071.t44. IND } | |
N073 ( 3, 2) [000117] Dc-----N---- * LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
Contained | |
DefList: { N071.t44. IND } | |
N075 (???,???) [000213] -A---------- * STOREIND ref REG NA | |
<RefPosition #37 @75 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N077 ( 13, 13) [000116] ------------ * IL_OFFSET void IL offset: 0x1b REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N079 ( 3, 2) [000111] -c---------- * LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
Contained | |
DefList: { } | |
N081 ( 6, 5) [000204] x----------- * IND ref REG NA <l:$343, c:$1c9> | |
Interval 13: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #38 @82 RefTypeDef <Ivl:13> IND BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N081.t204. IND } | |
N083 ( 3, 4) [000110] D------N---- * LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] NA REG NA | |
Interval 14: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #39 @84 RefTypeDef <Ivl:14> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N081.t204. IND; N083.t110. LCL_FLD_ADDR } | |
N085 (???,???) [000214] -A--G------- * STOREIND ref REG NA | |
<RefPosition #40 @85 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #41 @85 RefTypeUse <Ivl:13> BB01 regmask=[allInt] minReg=1 last> | |
+<TreeNodeInfo 0=2 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 2 produce=0 | |
DefList: { } | |
N087 ( 17, 11) [000179] ------------ * IL_OFFSET void IL offset: 0x20 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N089 ( 3, 4) [000176] ------------ * LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] NA (last use) REG NA <l:$202, c:$203> | |
Interval 15: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #42 @90 RefTypeDef <Ivl:15> LCL_FLD BB01 regmask=[allInt] minReg=1> | |
+<TreeNodeInfo 1=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=1 | |
DefList: { N089.t176. LCL_FLD } | |
N091 (???,???) [000217] ------------ * PUTARG_REG ref REG rcx | |
<RefPosition #43 @91 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #44 @91 RefTypeUse <Ivl:15> BB01 regmask=[rcx] minReg=1 last fixed> | |
Interval 16: RefPositions {} physReg:NA Preferences=[allInt] | |
<RefPosition #45 @92 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #46 @92 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
+<TreeNodeInfo 1=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=1 | |
DefList: { N091.t217. PUTARG_REG } | |
N093 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
<RefPosition #47 @93 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #48 @93 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #49 @94 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #50 @94 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #51 @94 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1> | |
<RefPosition #52 @94 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1> | |
<RefPosition #53 @94 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1> | |
<RefPosition #54 @94 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1> | |
<RefPosition #55 @94 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1> | |
+<TreeNodeInfo 0=1 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 1 produce=0 | |
DefList: { } | |
N095 ( 0, 0) [000052] ------------ * IL_OFFSET void IL offset: 0x27 REG NA | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
DefList: { } | |
N097 ( 0, 0) [000051] ------------ * RETURN void REG NA $3c0 | |
+<TreeNodeInfo 0=0 0i 0f src=[allInt] int=[allInt] dst=[allInt] I>[--] | |
consume= 0 produce=0 | |
CHECKING LAST USES for block 1, liveout={} | |
============================== | |
use: {} | |
def: {V00 V02 V11 V12 V13 V14} | |
Linear scan intervals BEFORE VALIDATING INTERVALS: | |
Interval 0: (V02) RefPositions {#18@12 #19@17} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000024E3FF0E908] | |
Interval 1: (V11) (struct) RefPositions {#20@18 #21@23} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000024E3FF0E9B8] | |
Interval 2: (V12) (struct) RefPositions {#24@30 #25@35} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000024E3FF0EA10] | |
Interval 3: (V13) (struct) RefPositions {#22@24 #23@29} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000024E3FF0E960] | |
Interval 4: (V14) (struct) RefPositions {#26@36 #29@45} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#1@6 #3@7} physReg:NA Preferences=[rcx] | |
Interval 6: RefPositions {#5@8 #7@9} physReg:NA Preferences=[rcx] | |
Interval 7: RefPositions {#16@10 #17@11} physReg:NA Preferences=[rax] RelatedInterval <L0>[0000024E3FF0E8B0] | |
Interval 8: RefPositions {#27@40 #28@45} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#30@52 #31@55} physReg:NA Preferences=[allInt] | |
Interval 10: RefPositions {#32@62 #35@65} physReg:NA Preferences=[allInt] | |
Interval 11: RefPositions {#33@64 #34@65} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#36@72 #37@75} physReg:NA Preferences=[allInt] | |
Interval 13: RefPositions {#38@82 #41@85} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#39@84 #40@85} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#42@90 #44@91} physReg:NA Preferences=[rcx] | |
Interval 16: RefPositions {#46@92 #48@93} physReg:NA Preferences=[rcx] | |
------------ | |
REFPOSITIONS BEFORE VALIDATING INTERVALS: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rcx] minReg=1> | |
<RefPosition #2 @7 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #3 @7 RefTypeUse <Ivl:5> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #5 @8 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #7 @9 RefTypeUse <Ivl:6> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #8 @10 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #9 @10 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #10 @10 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #11 @10 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #12 @10 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #13 @10 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #14 @10 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #15 @10 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #16 @10 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #17 @11 RefTypeUse <Ivl:7> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #27 @40 RefTypeDef <Ivl:8> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #28 @45 RefTypeUse <Ivl:8> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #30 @52 RefTypeDef <Ivl:9> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #31 @55 RefTypeUse <Ivl:9> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #32 @62 RefTypeDef <Ivl:10> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #33 @64 RefTypeDef <Ivl:11> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #34 @65 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #35 @65 RefTypeUse <Ivl:10> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #36 @72 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #37 @75 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #38 @82 RefTypeDef <Ivl:13> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #39 @84 RefTypeDef <Ivl:14> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #40 @85 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #41 @85 RefTypeUse <Ivl:13> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #42 @90 RefTypeDef <Ivl:15> LCL_FLD BB01 regmask=[rcx] minReg=1> | |
<RefPosition #43 @91 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #44 @91 RefTypeUse <Ivl:15> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #45 @92 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #46 @92 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #47 @93 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #48 @93 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #49 @94 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #50 @94 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #51 @94 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #52 @94 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #53 @94 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #54 @94 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #55 @94 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
----------------- | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
----------------- | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
----------------- | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
----------------- | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
----------------- | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
TUPLE STYLE DUMP WITH REF POSITIONS | |
Incoming Parameters: | |
BB01 [000..028) (return), preds={} succs={} | |
===== | |
N003. IL_OFFSET IL offset: 0x0 REG NA | |
N005. CNS_INT(h) 0x7ffc12345508 method REG NA | |
Def:<I5>(#1) | |
N007. PUTARG_REG | |
Use:<I5>(#3) Fixed:rcx(#2) * | |
Def:<I6>(#5) rcx | |
N009. CALL help | |
Use:<I6>(#7) Fixed:rcx(#6) * | |
Kill: rax rcx rdx r8 r9 r10 r11 | |
Def:<I7>(#16) rax Pref:<L0> | |
N011. V02(L0) | |
Use:<I7>(#17) * | |
Def:<L0>(#18) Pref:<L1> | |
N013. IL_OFFSET IL offset: 0x7 REG NA | |
N015. V02(L0) | |
N017. V11(L1) | |
Use:<L0>(#19) * | |
Def:<L1>(#20) Pref:<L3> | |
N019. IL_OFFSET IL offset: 0xc REG NA | |
N021. V11(L1) | |
N023. V13(L3) | |
Use:<L1>(#21) * | |
Def:<L3>(#22) Pref:<L2> | |
N025. IL_OFFSET IL offset: 0xc REG NA | |
N027. V13(L3) | |
N029. V12(L2) | |
Use:<L3>(#23) * | |
Def:<L2>(#24) Pref:<L4> | |
N031. IL_OFFSET IL offset: 0x11 REG NA | |
N033. V12(L2) | |
N035. V14(L4) | |
Use:<L2>(#25) * | |
Def:<L4>(#26) | |
N037. IL_OFFSET IL offset: 0x11 REG NA | |
N039. LCL_FLD_ADDR V05 tmp4 [+0] Fseq[_s] NA REG NA | |
Def:<I8>(#27) | |
N041. LEA(b+0) | |
N043. V14(L4) | |
N045. STOREIND | |
Use:<I8>(#28) * | |
Use:<L4>(#29) * | |
N047. IL_OFFSET IL offset: 0x16 REG NA | |
N049. LCL_VAR_ADDR V05 tmp4 NA REG NA | |
N051. IND | |
Def:<I9>(#30) | |
N053. LCL_VAR_ADDR V09 tmp8 NA REG NA | |
N055. STOREIND | |
Use:<I9>(#31) * | |
N057. IL_OFFSET IL offset: 0x16 REG NA | |
N059. LCL_VAR_ADDR V09 tmp8 NA REG NA | |
N061. IND | |
Def:<I10>(#32) | |
N063. LCL_FLD_ADDR V06 tmp5 [+0] Fseq[_s] NA REG NA | |
Def:<I11>(#33) | |
N065. STOREIND | |
Use:<I11>(#34) * | |
Use:<I10>(#35) * | |
N067. IL_OFFSET IL offset: 0x1b REG NA | |
N069. LCL_VAR_ADDR V06 tmp5 NA REG NA | |
N071. IND | |
Def:<I12>(#36) | |
N073. LCL_VAR_ADDR V10 tmp9 NA REG NA | |
N075. STOREIND | |
Use:<I12>(#37) * | |
N077. IL_OFFSET IL offset: 0x1b REG NA | |
N079. LCL_VAR_ADDR V10 tmp9 NA REG NA | |
N081. IND | |
Def:<I13>(#38) | |
N083. LCL_FLD_ADDR V00 loc0 d:3[+0] Fseq[_s] NA REG NA | |
Def:<I14>(#39) | |
N085. STOREIND | |
Use:<I14>(#40) * | |
Use:<I13>(#41) * | |
N087. IL_OFFSET IL offset: 0x20 REG NA | |
N089. V00 MEM | |
Def:<I15>(#42) | |
N091. PUTARG_REG | |
Use:<I15>(#44) Fixed:rcx(#43) * | |
Def:<I16>(#46) rcx | |
N093. CALL nullcheck | |
Use:<I16>(#48) Fixed:rcx(#47) * | |
Kill: rax rcx rdx r8 r9 r10 r11 | |
N095. IL_OFFSET IL offset: 0x27 REG NA | |
N097. RETURN | |
Linear scan intervals after buildIntervals: | |
Interval 0: (V02) RefPositions {#18@12 #19@17} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000024E3FF0E908] | |
Interval 1: (V11) (struct) RefPositions {#20@18 #21@23} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000024E3FF0E9B8] | |
Interval 2: (V12) (struct) RefPositions {#24@30 #25@35} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000024E3FF0EA10] | |
Interval 3: (V13) (struct) RefPositions {#22@24 #23@29} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000024E3FF0E960] | |
Interval 4: (V14) (struct) RefPositions {#26@36 #29@45} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#1@6 #3@7} physReg:NA Preferences=[rcx] | |
Interval 6: RefPositions {#5@8 #7@9} physReg:NA Preferences=[rcx] | |
Interval 7: RefPositions {#16@10 #17@11} physReg:NA Preferences=[rax] RelatedInterval <L0>[0000024E3FF0E8B0] | |
Interval 8: RefPositions {#27@40 #28@45} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#30@52 #31@55} physReg:NA Preferences=[allInt] | |
Interval 10: RefPositions {#32@62 #35@65} physReg:NA Preferences=[allInt] | |
Interval 11: RefPositions {#33@64 #34@65} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#36@72 #37@75} physReg:NA Preferences=[allInt] | |
Interval 13: RefPositions {#38@82 #41@85} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#39@84 #40@85} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#42@90 #44@91} physReg:NA Preferences=[rcx] | |
Interval 16: RefPositions {#46@92 #48@93} physReg:NA Preferences=[rcx] | |
*************** In LinearScan::allocateRegisters() | |
Linear scan intervals before allocateRegisters: | |
Interval 0: (V02) RefPositions {#18@12 #19@17} physReg:NA Preferences=[allInt] RelatedInterval <L1>[0000024E3FF0E908] | |
Interval 1: (V11) (struct) RefPositions {#20@18 #21@23} physReg:NA Preferences=[allInt] RelatedInterval <L3>[0000024E3FF0E9B8] | |
Interval 2: (V12) (struct) RefPositions {#24@30 #25@35} physReg:NA Preferences=[allInt] RelatedInterval <L4>[0000024E3FF0EA10] | |
Interval 3: (V13) (struct) RefPositions {#22@24 #23@29} physReg:NA Preferences=[allInt] RelatedInterval <L2>[0000024E3FF0E960] | |
Interval 4: (V14) (struct) RefPositions {#26@36 #29@45} physReg:NA Preferences=[allInt] | |
Interval 5: (constant) RefPositions {#1@6 #3@7} physReg:NA Preferences=[rcx] | |
Interval 6: RefPositions {#5@8 #7@9} physReg:NA Preferences=[rcx] | |
Interval 7: RefPositions {#16@10 #17@11} physReg:NA Preferences=[rax] RelatedInterval <L0>[0000024E3FF0E8B0] | |
Interval 8: RefPositions {#27@40 #28@45} physReg:NA Preferences=[allInt] | |
Interval 9: RefPositions {#30@52 #31@55} physReg:NA Preferences=[allInt] | |
Interval 10: RefPositions {#32@62 #35@65} physReg:NA Preferences=[allInt] | |
Interval 11: RefPositions {#33@64 #34@65} physReg:NA Preferences=[allInt] | |
Interval 12: RefPositions {#36@72 #37@75} physReg:NA Preferences=[allInt] | |
Interval 13: RefPositions {#38@82 #41@85} physReg:NA Preferences=[allInt] | |
Interval 14: RefPositions {#39@84 #40@85} physReg:NA Preferences=[allInt] | |
Interval 15: RefPositions {#42@90 #44@91} physReg:NA Preferences=[rcx] | |
Interval 16: RefPositions {#46@92 #48@93} physReg:NA Preferences=[rcx] | |
------------ | |
REFPOSITIONS BEFORE ALLOCATION: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rcx] minReg=1> | |
<RefPosition #2 @7 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #3 @7 RefTypeUse <Ivl:5> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #5 @8 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #7 @9 RefTypeUse <Ivl:6> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #8 @10 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #9 @10 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #10 @10 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #11 @10 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #12 @10 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #13 @10 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #14 @10 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #15 @10 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #16 @10 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #17 @11 RefTypeUse <Ivl:7> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #27 @40 RefTypeDef <Ivl:8> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #28 @45 RefTypeUse <Ivl:8> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #30 @52 RefTypeDef <Ivl:9> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #31 @55 RefTypeUse <Ivl:9> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #32 @62 RefTypeDef <Ivl:10> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #33 @64 RefTypeDef <Ivl:11> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #34 @65 RefTypeUse <Ivl:11> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #35 @65 RefTypeUse <Ivl:10> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #36 @72 RefTypeDef <Ivl:12> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #37 @75 RefTypeUse <Ivl:12> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #38 @82 RefTypeDef <Ivl:13> IND BB01 regmask=[allInt] minReg=1> | |
<RefPosition #39 @84 RefTypeDef <Ivl:14> LCL_FLD_ADDR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #40 @85 RefTypeUse <Ivl:14> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #41 @85 RefTypeUse <Ivl:13> BB01 regmask=[allInt] minReg=1 last> | |
<RefPosition #42 @90 RefTypeDef <Ivl:15> LCL_FLD BB01 regmask=[rcx] minReg=1> | |
<RefPosition #43 @91 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #44 @91 RefTypeUse <Ivl:15> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #45 @92 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #46 @92 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #47 @93 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #48 @93 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #49 @94 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #50 @94 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #51 @94 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #52 @94 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #53 @94 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #54 @94 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #55 @94 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
VAR REFPOSITIONS BEFORE ALLOCATION | |
--- V00 | |
--- V01 | |
--- V02 | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
--- V03 | |
--- V04 | |
--- V05 | |
--- V06 | |
--- V07 | |
--- V08 | |
--- V09 | |
--- V10 | |
--- V11 | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
--- V12 | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
--- V13 | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
--- V14 | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[allInt] minReg=1> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[allInt] minReg=1 last> | |
Allocating Registers | |
-------------------- | |
The following table has one or more rows for each RefPosition that is handled during allocation. | |
The first column provides the basic information about the RefPosition, with its type (e.g. Def, | |
Use, Fixd) followed by a '*' if it is a last use, and a 'D' if it is delayRegFree, and then the | |
action taken during allocation (e.g. Alloc a new register, or Keep an existing one). | |
The subsequent columns show the Interval occupying each register, if any, followed by 'a' if it is | |
active, and 'i'if it is inactive. Columns are only printed up to the last modifed register, which | |
may increase during allocation, in which case additional columns will appear. Registers which are | |
not marked modified have ---- in their column. | |
------------------------------+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rbx |rbp |rsi |rdi | | |
------------------------------+----+----+----+----+----+----+ | |
| | | | | | | | |
1.#0 BB1 PredBB0 | | | | | | | | |
6.#1 C5 Def Alloc rcx | |C5 a| | | | | | |
7.#2 rcx Fixd Keep rcx | |C5 a| | | | | | |
7.#3 C5 Use * Keep rcx | |C5 a| | | | | | |
8.#4 rcx Fixd Keep rcx | | | | | | | | |
8.#5 I6 Def Alloc rcx | |I6 a| | | | | | |
9.#6 rcx Fixd Keep rcx | |I6 a| | | | | | |
9.#7 I6 Use * Keep rcx | |I6 a| | | | | | |
10.#8 rax Kill Keep rax | | | | | | | | |
10.#9 rcx Kill Keep rcx | | | | | | | | |
10.#10 rdx Kill Keep rdx | | | | | | | | |
10.#11 r8 Kill Keep r8 | | | | | | | | |
10.#12 r9 Kill Keep r9 | | | | | | | | |
10.#13 r10 Kill Keep r10 | | | | | | | | |
10.#14 r11 Kill Keep r11 | | | | | | | | |
10.#15 rax Fixd Keep rax | | | | | | | | |
10.#16 I7 Def Alloc rax |I7 a| | | | | | | |
11.#17 I7 Use * Keep rax |I7 a| | | | | | | |
12.#18 V2 Def Alloc rcx | |V2 a| | | | | | |
17.#19 V2 Use * Keep rcx | |V2 a| | | | | | |
18.#20 V11 Def Alloc rax |V11a| | | | | | | |
23.#21 V11 Use * Keep rax |V11a| | | | | | | |
24.#22 V13 Def Alloc rcx | |V13a| | | | | | |
29.#23 V13 Use * Keep rcx | |V13a| | | | | | |
30.#24 V12 Def Alloc rax |V12a| | | | | | | |
35.#25 V12 Use * Keep rax |V12a| | | | | | | |
36.#26 V14 Def Alloc rcx | |V14a| | | | | | |
40.#27 I8 Def Alloc rax |I8 a|V14a| | | | | | |
45.#28 I8 Use * Keep rax |I8 a|V14a| | | | | | |
45.#29 V14 Use * Keep rcx |I8 a|V14a| | | | | | |
52.#30 I9 Def Alloc rcx | |I9 a| | | | | | |
55.#31 I9 Use * Keep rcx | |I9 a| | | | | | |
62.#32 I10 Def Alloc rcx | |I10a| | | | | | |
64.#33 I11 Def Alloc rax |I11a|I10a| | | | | | |
65.#34 I11 Use * Keep rax |I11a|I10a| | | | | | |
65.#35 I10 Use * Keep rcx |I11a|I10a| | | | | | |
72.#36 I12 Def Alloc rcx | |I12a| | | | | | |
75.#37 I12 Use * Keep rcx | |I12a| | | | | | |
82.#38 I13 Def Alloc rcx | |I13a| | | | | | |
84.#39 I14 Def Alloc rax |I14a|I13a| | | | | | |
85.#40 I14 Use * Keep rax |I14a|I13a| | | | | | |
85.#41 I13 Use * Keep rcx |I14a|I13a| | | | | | |
90.#42 I15 Def Alloc rcx | |I15a| | | | | | |
91.#43 rcx Fixd Keep rcx | |I15a| | | | | | |
91.#44 I15 Use * Keep rcx | |I15a| | | | | | |
92.#45 rcx Fixd Keep rcx | | | | | | | | |
92.#46 I16 Def Alloc rcx | |I16a| | | | | | |
93.#47 rcx Fixd Keep rcx | |I16a| | | | | | |
93.#48 I16 Use * Keep rcx | |I16a| | | | | | |
94.#49 rax Kill Keep rax | | | | | | | | |
94.#50 rcx Kill Keep rcx | | | | | | | | |
94.#51 rdx Kill Keep rdx | | | | | | | | |
94.#52 r8 Kill Keep r8 | | | | | | | | |
94.#53 r9 Kill Keep r9 | | | | | | | | |
94.#54 r10 Kill Keep r10 | | | | | | | | |
94.#55 r11 Kill Keep r11 | | | | | | | | |
------------ | |
REFPOSITIONS AFTER ALLOCATION: | |
------------ | |
<RefPosition #0 @1 RefTypeBB BB01 regmask=[] minReg=1> | |
<RefPosition #1 @6 RefTypeDef <Ivl:5> CNS_INT BB01 regmask=[rcx] minReg=1> | |
<RefPosition #2 @7 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #3 @7 RefTypeUse <Ivl:5> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #4 @8 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #5 @8 RefTypeDef <Ivl:6> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #6 @9 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #7 @9 RefTypeUse <Ivl:6> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #8 @10 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #9 @10 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #10 @10 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #11 @10 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #12 @10 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #13 @10 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #14 @10 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
<RefPosition #15 @10 RefTypeFixedReg <Reg:rax> BB01 regmask=[rax] minReg=1> | |
<RefPosition #16 @10 RefTypeDef <Ivl:7> CALL BB01 regmask=[rax] minReg=1 fixed> | |
<RefPosition #17 @11 RefTypeUse <Ivl:7> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #27 @40 RefTypeDef <Ivl:8> LCL_FLD_ADDR BB01 regmask=[rax] minReg=1> | |
<RefPosition #28 @45 RefTypeUse <Ivl:8> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #30 @52 RefTypeDef <Ivl:9> IND BB01 regmask=[rcx] minReg=1> | |
<RefPosition #31 @55 RefTypeUse <Ivl:9> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #32 @62 RefTypeDef <Ivl:10> IND BB01 regmask=[rcx] minReg=1> | |
<RefPosition #33 @64 RefTypeDef <Ivl:11> LCL_FLD_ADDR BB01 regmask=[rax] minReg=1> | |
<RefPosition #34 @65 RefTypeUse <Ivl:11> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #35 @65 RefTypeUse <Ivl:10> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #36 @72 RefTypeDef <Ivl:12> IND BB01 regmask=[rcx] minReg=1> | |
<RefPosition #37 @75 RefTypeUse <Ivl:12> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #38 @82 RefTypeDef <Ivl:13> IND BB01 regmask=[rcx] minReg=1> | |
<RefPosition #39 @84 RefTypeDef <Ivl:14> LCL_FLD_ADDR BB01 regmask=[rax] minReg=1> | |
<RefPosition #40 @85 RefTypeUse <Ivl:14> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #41 @85 RefTypeUse <Ivl:13> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #42 @90 RefTypeDef <Ivl:15> LCL_FLD BB01 regmask=[rcx] minReg=1> | |
<RefPosition #43 @91 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #44 @91 RefTypeUse <Ivl:15> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #45 @92 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #46 @92 RefTypeDef <Ivl:16> PUTARG_REG BB01 regmask=[rcx] minReg=1 fixed> | |
<RefPosition #47 @93 RefTypeFixedReg <Reg:rcx> BB01 regmask=[rcx] minReg=1> | |
<RefPosition #48 @93 RefTypeUse <Ivl:16> BB01 regmask=[rcx] minReg=1 last fixed> | |
<RefPosition #49 @94 RefTypeKill <Reg:rax> BB01 regmask=[rax] minReg=1 last> | |
<RefPosition #50 @94 RefTypeKill <Reg:rcx> BB01 regmask=[rcx] minReg=1 last> | |
<RefPosition #51 @94 RefTypeKill <Reg:rdx> BB01 regmask=[rdx] minReg=1 last> | |
<RefPosition #52 @94 RefTypeKill <Reg:r8 > BB01 regmask=[r8] minReg=1 last> | |
<RefPosition #53 @94 RefTypeKill <Reg:r9 > BB01 regmask=[r9] minReg=1 last> | |
<RefPosition #54 @94 RefTypeKill <Reg:r10> BB01 regmask=[r10] minReg=1 last> | |
<RefPosition #55 @94 RefTypeKill <Reg:r11> BB01 regmask=[r11] minReg=1 last> | |
VAR REFPOSITIONS AFTER ALLOCATION | |
--- V00 | |
--- V01 | |
--- V02 | |
<RefPosition #18 @12 RefTypeDef <Ivl:0 V02> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #19 @17 RefTypeUse <Ivl:0 V02> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
--- V03 | |
--- V04 | |
--- V05 | |
--- V06 | |
--- V07 | |
--- V08 | |
--- V09 | |
--- V10 | |
--- V11 | |
<RefPosition #20 @18 RefTypeDef <Ivl:1 V11> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> | |
<RefPosition #21 @23 RefTypeUse <Ivl:1 V11> LCL_VAR BB01 regmask=[rax] minReg=1 last> | |
--- V12 | |
<RefPosition #24 @30 RefTypeDef <Ivl:2 V12> STORE_LCL_VAR BB01 regmask=[rax] minReg=1> | |
<RefPosition #25 @35 RefTypeUse <Ivl:2 V12> LCL_VAR BB01 regmask=[rax] minReg=1 last> | |
--- V13 | |
<RefPosition #22 @24 RefTypeDef <Ivl:3 V13> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #23 @29 RefTypeUse <Ivl:3 V13> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
--- V14 | |
<RefPosition #26 @36 RefTypeDef <Ivl:4 V14> STORE_LCL_VAR BB01 regmask=[rcx] minReg=1> | |
<RefPosition #29 @45 RefTypeUse <Ivl:4 V14> LCL_VAR BB01 regmask=[rcx] minReg=1 last> | |
Active intervals at end of allocation: | |
----------------------- | |
RESOLVING BB BOUNDARIES | |
----------------------- | |
Resolution Candidates: {} | |
Has NoCritical Edges | |
Prior to Resolution | |
BB01 use def in out | |
{} | |
{V00 V02 V11 V12 V13 V14} | |
{} | |
{} | |
Var=Reg beg of BB01: none | |
Var=Reg end of BB01: none | |
RESOLVING EDGES | |
Trees after linear scan register allocator (LSRA) | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
------------ BB01 [000..028) (return), preds={} succs={} | |
N003 ( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
N005 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method REG rcx $180 | |
/--* t3 long | |
N007 (???,???) [000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
N009 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
/--* t4 ref | |
N011 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 rcx REG rcx | |
N013 ( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 REG NA | |
N015 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 rcx (last use) REG rcx $200 | |
/--* t11 ref | |
N017 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 rax REG rax | |
N019 ( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc REG NA | |
N021 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 rax (last use) REG rax $200 | |
/--* t182 ref | |
N023 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 rcx REG rcx | |
N025 ( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc REG NA | |
N027 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 rcx (last use) REG rcx $200 | |
/--* t185 ref | |
N029 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 rax REG rax | |
N031 ( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 REG NA | |
N033 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 rax (last use) REG rax $200 | |
/--* t188 ref | |
N035 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 rcx REG rcx | |
N037 ( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 REG NA | |
N039 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] rax REG rax | |
/--* t191 byref | |
N041 (???,???) [000216] -c---------- t216 = * LEA(b+0) byref REG NA | |
N043 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 rcx (last use) REG rcx $200 | |
/--* t216 byref | |
+--* t195 ref | |
N045 (???,???) [000210] -A---------- * STOREIND ref REG NA | |
N047 ( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 REG NA | |
N049 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 NA REG NA | |
/--* t33 byref | |
N051 ( 6, 5) [000038] x----------- t38 = * IND ref REG rcx <l:$340, c:$1c6> | |
N053 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
/--* t103 byref | |
+--* t38 ref | |
N055 (???,???) [000211] -A---------- * STOREIND ref REG NA | |
N057 ( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 REG NA | |
N059 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
/--* t97 byref | |
N061 ( 6, 5) [000200] x----------- t200 = * IND ref REG rcx <l:$341, c:$1c7> | |
N063 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] rax REG rax | |
/--* t96 byref | |
+--* t200 ref | |
N065 (???,???) [000212] -A--G------- * STOREIND ref REG NA | |
N067 ( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b REG NA | |
N069 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 NA REG NA | |
/--* t41 byref | |
N071 ( 6, 5) [000044] x----------- t44 = * IND ref REG rcx <l:$342, c:$1c8> | |
N073 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
/--* t117 byref | |
+--* t44 ref | |
N075 (???,???) [000213] -A---------- * STOREIND ref REG NA | |
N077 ( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b REG NA | |
N079 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
/--* t111 byref | |
N081 ( 6, 5) [000204] x----------- t204 = * IND ref REG rcx <l:$343, c:$1c9> | |
N083 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] rax REG rax | |
/--* t110 byref | |
+--* t204 ref | |
N085 (???,???) [000214] -A--G------- * STOREIND ref REG NA | |
N087 ( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 REG NA | |
N089 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] rcx (last use) REG rcx <l:$202, c:$203> | |
/--* t176 ref | |
N091 (???,???) [000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
/--* t217 ref this in rcx | |
N093 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
N095 ( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 REG NA | |
N097 ( 0, 0) [000051] ------------ RETURN void REG NA $3c0 | |
------------------------------------------------------------------------------------------------------------------- | |
Final allocation | |
------------------------------+----+----+----+----+----+----+ | |
LocRP# Name Type Action Reg |rax |rcx |rbx |rbp |rsi |rdi | | |
------------------------------+----+----+----+----+----+----+ | |
1.#0 BB1 PredBB0 | | | | | | | | |
6.#1 C5 Def Alloc rcx | |C5 a| | | | | | |
7.#2 rcx Fixd Keep rcx | |C5 a| | | | | | |
7.#3 C5 Use * Keep rcx | |C5 i| | | | | | |
8.#4 rcx Fixd Keep rcx | | | | | | | | |
8.#5 I6 Def Alloc rcx | |I6 a| | | | | | |
9.#6 rcx Fixd Keep rcx | |I6 a| | | | | | |
9.#7 I6 Use * Keep rcx | |I6 i| | | | | | |
10.#8 rax Kill Keep rax | | | | | | | | |
10.#9 rcx Kill Keep rcx | | | | | | | | |
10.#10 rdx Kill Keep rdx | | | | | | | | |
10.#11 r8 Kill Keep r8 | | | | | | | | |
10.#12 r9 Kill Keep r9 | | | | | | | | |
10.#13 r10 Kill Keep r10 | | | | | | | | |
10.#14 r11 Kill Keep r11 | | | | | | | | |
10.#15 rax Fixd Keep rax | | | | | | | | |
10.#16 I7 Def Alloc rax |I7 a| | | | | | | |
11.#17 I7 Use * Keep rax |I7 i| | | | | | | |
12.#18 V2 Def Alloc rcx | |V2 a| | | | | | |
17.#19 V2 Use * Keep rcx | |V2 i| | | | | | |
18.#20 V11 Def Alloc rax |V11a| | | | | | | |
23.#21 V11 Use * Keep rax |V11i| | | | | | | |
24.#22 V13 Def Alloc rcx | |V13a| | | | | | |
29.#23 V13 Use * Keep rcx | |V13i| | | | | | |
30.#24 V12 Def Alloc rax |V12a| | | | | | | |
35.#25 V12 Use * Keep rax |V12i| | | | | | | |
36.#26 V14 Def Alloc rcx | |V14a| | | | | | |
40.#27 I8 Def Alloc rax |I8 a|V14a| | | | | | |
45.#28 I8 Use * Keep rax |I8 i|V14a| | | | | | |
45.#29 V14 Use * Keep rcx | |V14i| | | | | | |
52.#30 I9 Def Alloc rcx | |I9 a| | | | | | |
55.#31 I9 Use * Keep rcx | |I9 i| | | | | | |
62.#32 I10 Def Alloc rcx | |I10a| | | | | | |
64.#33 I11 Def Alloc rax |I11a|I10a| | | | | | |
65.#34 I11 Use * Keep rax |I11i|I10a| | | | | | |
65.#35 I10 Use * Keep rcx | |I10i| | | | | | |
72.#36 I12 Def Alloc rcx | |I12a| | | | | | |
75.#37 I12 Use * Keep rcx | |I12i| | | | | | |
82.#38 I13 Def Alloc rcx | |I13a| | | | | | |
84.#39 I14 Def Alloc rax |I14a|I13a| | | | | | |
85.#40 I14 Use * Keep rax |I14i|I13a| | | | | | |
85.#41 I13 Use * Keep rcx | |I13i| | | | | | |
90.#42 I15 Def Alloc rcx | |I15a| | | | | | |
91.#43 rcx Fixd Keep rcx | |I15a| | | | | | |
91.#44 I15 Use * Keep rcx | |I15i| | | | | | |
92.#45 rcx Fixd Keep rcx | | | | | | | | |
92.#46 I16 Def Alloc rcx | |I16a| | | | | | |
93.#47 rcx Fixd Keep rcx | |I16a| | | | | | |
93.#48 I16 Use * Keep rcx | |I16i| | | | | | |
94.#49 rax Kill Keep rax | | | | | | | | |
94.#50 rcx Kill Keep rcx | | | | | | | | |
94.#51 rdx Kill Keep rdx | | | | | | | | |
94.#52 r8 Kill Keep r8 | | | | | | | | |
94.#53 r9 Kill Keep r9 | | | | | | | | |
94.#54 r10 Kill Keep r10 | | | | | | | | |
94.#55 r11 Kill Keep r11 | | | | | | | | |
Recording the maximum number of concurrent spills: | |
---------- | |
LSRA Stats | |
---------- | |
Total Tracked Vars: 6 | |
Total Reg Cand Vars: 5 | |
Total number of Intervals: 16 | |
Total number of RefPositions: 55 | |
Total Spill Count: 0 Weighted: 0 | |
Total CopyReg Count: 0 Weighted: 0 | |
Total ResolutionMov Count: 0 Weighted: 0 | |
Total number of split edges: 0 | |
Total Number of spill temps created: 0 | |
TUPLE STYLE DUMP WITH REGISTER ASSIGNMENTS | |
Incoming Parameters: | |
BB01 [000..028) (return), preds={} succs={} | |
===== | |
N003. IL_OFFSET IL offset: 0x0 REG NA | |
N005. rcx = CNS_INT(h) 0x7ffc12345508 method REG rcx | |
N007. rcx = PUTARG_REG; rcx | |
N009. rax = CALL help; rcx | |
* N011. V02(rcx); rax | |
N013. IL_OFFSET IL offset: 0x7 REG NA | |
N015. V02(rcx*) | |
* N017. V11(rax); rcx* | |
N019. IL_OFFSET IL offset: 0xc REG NA | |
N021. V11(rax*) | |
* N023. V13(rcx); rax* | |
N025. IL_OFFSET IL offset: 0xc REG NA | |
N027. V13(rcx*) | |
* N029. V12(rax); rcx* | |
N031. IL_OFFSET IL offset: 0x11 REG NA | |
N033. V12(rax*) | |
* N035. V14(rcx); rax* | |
N037. IL_OFFSET IL offset: 0x11 REG NA | |
N039. rax = LCL_FLD_ADDR V05 tmp4 [+0] Fseq[_s] rax REG rax | |
N041. STK = LEA(b+0) ; rax | |
N043. V14(rcx*) | |
N045. STOREIND ; STK,rcx* | |
N047. IL_OFFSET IL offset: 0x16 REG NA | |
N049. LCL_VAR_ADDR V05 tmp4 NA REG NA | |
N051. rcx = IND | |
N053. LCL_VAR_ADDR V09 tmp8 NA REG NA | |
N055. STOREIND ; rcx | |
N057. IL_OFFSET IL offset: 0x16 REG NA | |
N059. LCL_VAR_ADDR V09 tmp8 NA REG NA | |
N061. rcx = IND | |
N063. rax = LCL_FLD_ADDR V06 tmp5 [+0] Fseq[_s] rax REG rax | |
N065. STOREIND ; rax,rcx | |
N067. IL_OFFSET IL offset: 0x1b REG NA | |
N069. LCL_VAR_ADDR V06 tmp5 NA REG NA | |
N071. rcx = IND | |
N073. LCL_VAR_ADDR V10 tmp9 NA REG NA | |
N075. STOREIND ; rcx | |
N077. IL_OFFSET IL offset: 0x1b REG NA | |
N079. LCL_VAR_ADDR V10 tmp9 NA REG NA | |
N081. rcx = IND | |
N083. rax = LCL_FLD_ADDR V00 loc0 d:3[+0] Fseq[_s] rax REG rax | |
N085. STOREIND ; rax,rcx | |
N087. IL_OFFSET IL offset: 0x20 REG NA | |
N089. rcx* = V00 MEM | |
N091. rcx = PUTARG_REG; rcx* | |
N093. CALL nullcheck; rcx | |
N095. IL_OFFSET IL offset: 0x27 REG NA | |
N097. RETURN | |
Var=Reg end of BB01: none | |
*************** In genGenerateCode() | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BBnum BBid ref try hnd preds weight [IL range] [jump] [EH region] [flags] | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
BB01 [0000] 1 1 [000..028) (return) i label target gcsafe newobj LIR | |
-------------------------------------------------------------------------------------------------------------------------------------- | |
*************** In fgDebugCheckBBlist | |
Finalizing stack frame | |
Recording Var Locations at start of BB01 | |
<none> | |
Marking regs modified: [rdi] ([rax rcx rdx r8-r11] => [rax rcx rdx rdi r8-r11]) | |
Modified regs: [rax rcx rdx rdi r8-r11] | |
Callee-saved registers pushed: 1 [rdi] | |
*************** In lvaAssignFrameOffsets(FINAL_FRAME_LAYOUT) | |
Assign V00 loc0, size=8, stkOffs=-0x18 | |
Assign V05 tmp4, size=8, stkOffs=-0x20 | |
Assign V06 tmp5, size=8, stkOffs=-0x28 | |
Assign V09 tmp8, size=8, stkOffs=-0x30 | |
Assign V10 tmp9, size=8, stkOffs=-0x38 | |
Assign V01 OutArgs, size=32, stkOffs=-0x58 | |
; Final local variable assignments | |
; | |
; V00 loc0 [V00,T05] ( 2, 2 ) struct ( 8) [rsp+0x48] do-not-enreg[SF] must-init ld-addr-op | |
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] | |
; V02 tmp1 [V02,T00] ( 2, 4 ) ref -> rcx class-hnd exact | |
;* V03 tmp2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref | |
;* V04 tmp3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref | |
; V05 tmp4 [V05 ] ( 2, 4 ) struct ( 8) [rsp+0x40] do-not-enreg[XSFB] must-init addr-exposed | |
; V06 tmp5 [V06 ] ( 2, 4 ) struct ( 8) [rsp+0x38] do-not-enreg[XSF] must-init addr-exposed | |
;* V07 tmp6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref | |
;* V08 tmp7 [V08 ] ( 0, 0 ) struct ( 8) zero-ref | |
; V09 tmp8 [V09 ] ( 2, 4 ) struct ( 8) [rsp+0x30] do-not-enreg[XSF] must-init addr-exposed | |
; V10 tmp9 [V10 ] ( 2, 4 ) struct ( 8) [rsp+0x28] do-not-enreg[XSF] must-init addr-exposed | |
; V11 tmp10 [V11,T01] ( 2, 2 ) ref -> rax V03._c(offs=0x00) P-INDEP | |
; V12 tmp11 [V12,T02] ( 2, 2 ) ref -> rax V04._s(offs=0x00) P-INDEP | |
; V13 tmp12 [V13,T03] ( 2, 2 ) ref -> rcx V07._c(offs=0x00) P-INDEP | |
; V14 tmp13 [V14,T04] ( 2, 2 ) ref -> rcx V08._s(offs=0x00) P-INDEP | |
; | |
; Lcl frame size = 80 | |
=============== Generating BB01 [000..028) (return), preds={} succs={} flags=0x00000000.408b0020: i label target gcsafe newobj LIR | |
BB01 IN (0)={} + ByrefExposed + GcHeap | |
OUT(0)={} | |
Recording Var Locations at start of BB01 | |
<none> | |
Liveness not changing: 0000000000000000 {} | |
Live regs: (unchanged) 00000000 {} | |
GC regs: (unchanged) 00000000 {} | |
Byref regs: (unchanged) 00000000 {} | |
L_M45457_BB01: | |
Label: IG02, GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
Setting stack level from -572662307 to 0 | |
Scope info: begin block BB01, IL range [000..028) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: 0x0000 STACK_EMPTY (G_M45457_IG02,ins#0,ofs#0) label | |
Generating: N003 ( 17, 16) [000007] ------------ IL_OFFSET void IL offset: 0x0 REG NA | |
Generating: N005 ( 3, 10) [000003] ------------ t3 = CNS_INT(h) long 0x7ffc12345508 method REG rcx $180 | |
IN0001: mov rcx, 0x7FFC12345508 | |
/--* t3 long | |
Generating: N007 (???,???) [000215] ------------ t215 = * PUTARG_REG long REG rcx | |
/--* t215 long arg0 in rcx | |
Generating: N009 ( 17, 16) [000004] --C--------- t4 = * CALL help ref HELPER.CORINFO_HELP_NEWSFAST $200 | |
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
IN0002: call CORINFO_HELP_NEWSFAST | |
GC regs: 00000000 {} => 00000001 {rax} | |
/--* t4 ref | |
Generating: N011 ( 17, 16) [000006] DA---------- * STORE_LCL_VAR ref V02 tmp1 d:3 rcx REG rcx | |
GC regs: 00000001 {rax} => 00000000 {} | |
IN0003: mov rcx, rax | |
V02 in reg rcx is becoming live [000006] | |
Live regs: 00000000 {} => 00000002 {rcx} | |
Live vars: {} => {V02} | |
GC regs: 00000000 {} => 00000002 {rcx} | |
Added IP mapping: 0x0007 (G_M45457_IG02,ins#3,ofs#18) | |
Generating: N013 ( 5, 4) [000064] ------------ IL_OFFSET void IL offset: 0x7 REG NA | |
Generating: N015 ( 1, 1) [000011] ------------ t11 = LCL_VAR ref V02 tmp1 u:3 rcx (last use) REG rcx $200 | |
/--* t11 ref | |
Generating: N017 ( 5, 4) [000063] DA---------- * STORE_LCL_VAR ref V11 tmp10 d:3 rax REG rax | |
V02 in reg rcx is becoming dead [000011] | |
Live regs: 00000002 {rcx} => 00000000 {} | |
Live vars: {V02} => {} | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0004: mov rax, rcx | |
V11 in reg rax is becoming live [000063] | |
Live regs: 00000000 {} => 00000001 {rax} | |
Live vars: {} => {V11} | |
GC regs: 00000000 {} => 00000001 {rax} | |
Added IP mapping: 0x000C (G_M45457_IG02,ins#4,ofs#21) | |
Generating: N019 ( 7, 5) [000078] ------------ IL_OFFSET void IL offset: 0xc REG NA | |
Generating: N021 ( 3, 2) [000182] -------N---- t182 = LCL_VAR ref V11 tmp10 u:3 rax (last use) REG rax $200 | |
/--* t182 ref | |
Generating: N023 ( 7, 5) [000183] DA---------- * STORE_LCL_VAR ref V13 tmp12 d:3 rcx REG rcx | |
V11 in reg rax is becoming dead [000182] | |
Live regs: 00000001 {rax} => 00000000 {} | |
Live vars: {V11} => {} | |
GC regs: 00000001 {rax} => 00000000 {} | |
IN0005: mov rcx, rax | |
V13 in reg rcx is becoming live [000183] | |
Live regs: 00000000 {} => 00000002 {rcx} | |
Live vars: {} => {V13} | |
GC regs: 00000000 {} => 00000002 {rcx} | |
genIPmappingAdd: ignoring duplicate IL offset 0x8000000c | |
Generating: N025 ( 7, 5) [000074] ------------ IL_OFFSET void IL offset: 0xc REG NA | |
Generating: N027 ( 3, 2) [000185] -------N---- t185 = LCL_VAR ref V13 tmp12 u:3 rcx (last use) REG rcx $200 | |
/--* t185 ref | |
Generating: N029 ( 7, 5) [000186] DA---------- * STORE_LCL_VAR ref V12 tmp11 d:3 rax REG rax | |
V13 in reg rcx is becoming dead [000185] | |
Live regs: 00000002 {rcx} => 00000000 {} | |
Live vars: {V13} => {} | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0006: mov rax, rcx | |
V12 in reg rax is becoming live [000186] | |
Live regs: 00000000 {} => 00000001 {rax} | |
Live vars: {} => {V12} | |
GC regs: 00000000 {} => 00000001 {rax} | |
Added IP mapping: 0x0011 (G_M45457_IG02,ins#6,ofs#27) | |
Generating: N031 ( 7, 5) [000092] ------------ IL_OFFSET void IL offset: 0x11 REG NA | |
Generating: N033 ( 3, 2) [000188] -------N---- t188 = LCL_VAR ref V12 tmp11 u:3 rax (last use) REG rax $200 | |
/--* t188 ref | |
Generating: N035 ( 7, 5) [000189] DA---------- * STORE_LCL_VAR ref V14 tmp13 d:3 rcx REG rcx | |
V12 in reg rax is becoming dead [000188] | |
Live regs: 00000001 {rax} => 00000000 {} | |
Live vars: {V12} => {} | |
GC regs: 00000001 {rax} => 00000000 {} | |
IN0007: mov rcx, rax | |
V14 in reg rcx is becoming live [000189] | |
Live regs: 00000000 {} => 00000002 {rcx} | |
Live vars: {} => {V14} | |
GC regs: 00000000 {} => 00000002 {rcx} | |
genIPmappingAdd: ignoring duplicate IL offset 0x80000011 | |
Generating: N037 ( 10, 10) [000088] ------------ IL_OFFSET void IL offset: 0x11 REG NA | |
Generating: N039 ( 3, 4) [000191] D------N---- t191 = LCL_FLD_ADDR byref V05 tmp4 [+0] Fseq[_s] rax REG rax | |
IN0008: lea rax, bword ptr [V05 rsp+40H] | |
Byref regs: 00000000 {} => 00000001 {rax} | |
/--* t191 byref | |
Generating: N041 (???,???) [000216] -c---------- t216 = * LEA(b+0) byref REG NA | |
Generating: N043 ( 3, 2) [000195] -------N---- t195 = LCL_VAR ref V14 tmp13 u:3 rcx (last use) REG rcx $200 | |
/--* t216 byref | |
+--* t195 ref | |
Generating: N045 (???,???) [000210] -A---------- * STOREIND ref REG NA | |
Byref regs: 00000001 {rax} => 00000000 {} | |
V14 in reg rcx is becoming dead [000195] | |
Live regs: 00000002 {rcx} => 00000000 {} | |
Live vars: {V14} => {} | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0009: mov gword ptr [rax], rcx | |
Added IP mapping: 0x0016 (G_M45457_IG02,ins#9,ofs#38) | |
Generating: N047 ( 13, 11) [000106] ------------ IL_OFFSET void IL offset: 0x16 REG NA | |
Generating: N049 ( 3, 2) [000033] -c-----N---- t33 = LCL_VAR_ADDR byref V05 tmp4 NA REG NA | |
/--* t33 byref | |
Generating: N051 ( 6, 5) [000038] x----------- t38 = * IND ref REG rcx <l:$340, c:$1c6> | |
IN000a: mov rcx, gword ptr [V05 rsp+40H] | |
GC regs: 00000000 {} => 00000002 {rcx} | |
Generating: N053 ( 3, 2) [000103] Dc-----N---- t103 = LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
/--* t103 byref | |
+--* t38 ref | |
Generating: N055 (???,???) [000211] -A---------- * STOREIND ref REG NA | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN000b: mov gword ptr [V09 rsp+30H], rcx | |
genIPmappingAdd: ignoring duplicate IL offset 0x80000016 | |
Generating: N057 ( 13, 13) [000102] ------------ IL_OFFSET void IL offset: 0x16 REG NA | |
Generating: N059 ( 3, 2) [000097] -c---------- t97 = LCL_VAR_ADDR byref V09 tmp8 NA REG NA | |
/--* t97 byref | |
Generating: N061 ( 6, 5) [000200] x----------- t200 = * IND ref REG rcx <l:$341, c:$1c7> | |
IN000c: mov rcx, gword ptr [V09 rsp+30H] | |
GC regs: 00000000 {} => 00000002 {rcx} | |
Generating: N063 ( 3, 4) [000096] D------N---- t96 = LCL_FLD_ADDR byref V06 tmp5 [+0] Fseq[_s] rax REG rax | |
IN000d: lea rax, bword ptr [V06 rsp+38H] | |
Byref regs: 00000000 {} => 00000001 {rax} | |
/--* t96 byref | |
+--* t200 ref | |
Generating: N065 (???,???) [000212] -A--G------- * STOREIND ref REG NA | |
Byref regs: 00000001 {rax} => 00000000 {} | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN000e: mov gword ptr [rax], rcx | |
Added IP mapping: 0x001B (G_M45457_IG02,ins#14,ofs#61) | |
Generating: N067 ( 13, 11) [000120] ------------ IL_OFFSET void IL offset: 0x1b REG NA | |
Generating: N069 ( 3, 2) [000041] -c-----N---- t41 = LCL_VAR_ADDR byref V06 tmp5 NA REG NA | |
/--* t41 byref | |
Generating: N071 ( 6, 5) [000044] x----------- t44 = * IND ref REG rcx <l:$342, c:$1c8> | |
IN000f: mov rcx, gword ptr [V06 rsp+38H] | |
GC regs: 00000000 {} => 00000002 {rcx} | |
Generating: N073 ( 3, 2) [000117] Dc-----N---- t117 = LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
/--* t117 byref | |
+--* t44 ref | |
Generating: N075 (???,???) [000213] -A---------- * STOREIND ref REG NA | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0010: mov gword ptr [V10 rsp+28H], rcx | |
genIPmappingAdd: ignoring duplicate IL offset 0x8000001b | |
Generating: N077 ( 13, 13) [000116] ------------ IL_OFFSET void IL offset: 0x1b REG NA | |
Generating: N079 ( 3, 2) [000111] -c---------- t111 = LCL_VAR_ADDR byref V10 tmp9 NA REG NA | |
/--* t111 byref | |
Generating: N081 ( 6, 5) [000204] x----------- t204 = * IND ref REG rcx <l:$343, c:$1c9> | |
IN0011: mov rcx, gword ptr [V10 rsp+28H] | |
GC regs: 00000000 {} => 00000002 {rcx} | |
Generating: N083 ( 3, 4) [000110] D------N---- t110 = LCL_FLD_ADDR byref V00 loc0 d:3[+0] Fseq[_s] rax REG rax | |
IN0012: lea rax, bword ptr [V00 rsp+48H] | |
Byref regs: 00000000 {} => 00000001 {rax} | |
/--* t110 byref | |
+--* t204 ref | |
Generating: N085 (???,???) [000214] -A--G------- * STOREIND ref REG NA | |
Byref regs: 00000001 {rax} => 00000000 {} | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0013: mov gword ptr [rax], rcx | |
Added IP mapping: 0x0020 STACK_EMPTY (G_M45457_IG02,ins#19,ofs#84) | |
Generating: N087 ( 17, 11) [000179] ------------ IL_OFFSET void IL offset: 0x20 REG NA | |
Generating: N089 ( 3, 4) [000176] ------------ t176 = LCL_FLD ref V00 loc0 u:3[+0] Fseq[_s, _s, _s, _s, _c] rcx (last use) REG rcx <l:$202, c:$203> | |
IN0014: mov rcx, gword ptr [V00 rsp+48H] | |
GC regs: 00000000 {} => 00000002 {rcx} | |
/--* t176 ref | |
Generating: N091 (???,???) [000217] ------------ t217 = * PUTARG_REG ref REG rcx | |
GC regs: 00000002 {rcx} => 00000000 {} | |
GC regs: 00000000 {} => 00000002 {rcx} | |
/--* t217 ref this in rcx | |
Generating: N093 ( 17, 11) [000178] --CXG------- * CALL nullcheck void C.M $VN.Void | |
GC regs: 00000002 {rcx} => 00000000 {} | |
IN0015: cmp dword ptr [rcx], ecx | |
Call: GCvars=0000000000000000 {}, gcrefRegs=00000000 {}, byrefRegs=00000000 {} | |
IN0016: call C:M():this | |
Added IP mapping: 0x0027 STACK_EMPTY (G_M45457_IG02,ins#22,ofs#96) | |
Generating: N095 ( 0, 0) [000052] ------------ IL_OFFSET void IL offset: 0x27 REG NA | |
Generating: N097 ( 0, 0) [000051] ------------ RETURN void REG NA $3c0 | |
Scope info: end block BB01, IL range [000..028) | |
Scope info: ending scope, LVnum=0 [000..028) | |
Scope info: open scopes = | |
<none> | |
Added IP mapping: EPILOG STACK_EMPTY (G_M45457_IG02,ins#22,ofs#96) label | |
Reserving epilog IG for block BB01 | |
IN0017: nop | |
G_M45457_IG02: ; offs=000000H, funclet=00 | |
*************** After placeholder IG creation | |
G_M45457_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M45457_IG02: ; offs=000000H, size=0061H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M45457_IG03: ; epilog placeholder, next placeholder=<END>, BB01 [0000], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
Liveness not changing: 0000000000000000 {} | |
# compCycleEstimate = 122, compSizeEstimate = 104 Program:ViaStruct5() | |
; Final local variable assignments | |
; | |
; V00 loc0 [V00,T05] ( 2, 2 ) struct ( 8) [rsp+0x48] do-not-enreg[SF] must-init ld-addr-op | |
; V01 OutArgs [V01 ] ( 1, 1 ) lclBlk (32) [rsp+0x00] | |
; V02 tmp1 [V02,T00] ( 2, 4 ) ref -> rcx class-hnd exact | |
;* V03 tmp2 [V03 ] ( 0, 0 ) struct ( 8) zero-ref | |
;* V04 tmp3 [V04 ] ( 0, 0 ) struct ( 8) zero-ref | |
; V05 tmp4 [V05 ] ( 2, 4 ) struct ( 8) [rsp+0x40] do-not-enreg[XSFB] must-init addr-exposed | |
; V06 tmp5 [V06 ] ( 2, 4 ) struct ( 8) [rsp+0x38] do-not-enreg[XSF] must-init addr-exposed | |
;* V07 tmp6 [V07 ] ( 0, 0 ) struct ( 8) zero-ref | |
;* V08 tmp7 [V08 ] ( 0, 0 ) struct ( 8) zero-ref | |
; V09 tmp8 [V09 ] ( 2, 4 ) struct ( 8) [rsp+0x30] do-not-enreg[XSF] must-init addr-exposed | |
; V10 tmp9 [V10 ] ( 2, 4 ) struct ( 8) [rsp+0x28] do-not-enreg[XSF] must-init addr-exposed | |
; V11 tmp10 [V11,T01] ( 2, 2 ) ref -> rax V03._c(offs=0x00) P-INDEP | |
; V12 tmp11 [V12,T02] ( 2, 2 ) ref -> rax V04._s(offs=0x00) P-INDEP | |
; V13 tmp12 [V13,T03] ( 2, 2 ) ref -> rcx V07._c(offs=0x00) P-INDEP | |
; V14 tmp13 [V14,T04] ( 2, 2 ) ref -> rcx V08._s(offs=0x00) P-INDEP | |
; | |
; Lcl frame size = 80 | |
*************** Before prolog / epilog generation | |
G_M45457_IG01: ; func=00, offs=000000H, size=0000H, gcrefRegs=00000000 {} <-- Prolog IG | |
G_M45457_IG02: ; offs=000000H, size=0061H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M45457_IG03: ; epilog placeholder, next placeholder=<END>, BB01 [0000], epilog, emitadd <-- First placeholder <-- Last placeholder | |
; PrevGCVars=0000000000000000 {}, PrevGCrefRegs=00000000 {}, PrevByrefRegs=00000000 {} | |
; InitGCVars=0000000000000000 {}, InitGCrefRegs=00000000 {}, InitByrefRegs=00000000 {} | |
Recording Var Locations at start of BB01 | |
<none> | |
*************** In genFnProlog() | |
Added IP mapping to front: PROLOG STACK_EMPTY (G_M45457_IG01,ins#0,ofs#0) label | |
__prolog: | |
Found 10 lvMustInit stk vars, frame offsets -40 through -80 | |
IN0018: push rdi | |
IN0019: sub rsp, 80 | |
IN001a: lea rdi, [rsp+28H] | |
IN001b: mov ecx, 10 | |
IN001c: xor rax, rax | |
IN001d: rep stosd | |
*************** In genEnregisterIncomingStackArgs() | |
G_M45457_IG01: ; offs=000000H, funclet=00 | |
*************** In genFnEpilog() | |
__epilog: | |
gcVarPtrSetCur=0000000000000000 {}, gcRegGCrefSetCur=00000000 {}, gcRegByrefSetCur=00000000 {} | |
IN001e: add rsp, 80 | |
IN001f: pop rdi | |
IN0020: ret | |
G_M45457_IG03: ; offs=000061H, funclet=00 | |
0 prologs, 1 epilogs, 0 funclet prologs, 0 funclet epilogs | |
*************** After prolog / epilog generation | |
G_M45457_IG01: ; func=00, offs=000000H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
G_M45457_IG02: ; offs=000013H, size=0061H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
G_M45457_IG03: ; offs=000074H, size=0006H, epilog, nogc, emitadd | |
*************** In emitJumpDistBind() | |
Hot code size = 0x7A bytes | |
Cold code size = 0x0 bytes | |
reserveUnwindInfo(isFunclet=FALSE, isColdCode=FALSE, unwindSize=0x8) | |
*************** In emitEndCodeGen() | |
Converting emitMaxStackDepth from bytes (0) to elements (0) | |
*************************************************************************** | |
Instructions as they come out of the scheduler | |
G_M45457_IG01: ; func=00, offs=000000H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0018: 000000 57 push rdi | |
IN0019: 000001 4883EC50 sub rsp, 80 | |
IN001a: 000005 488D7C2428 lea rdi, [rsp+28H] | |
IN001b: 00000A B90A000000 mov ecx, 10 | |
IN001c: 00000F 33C0 xor rax, rax | |
IN001d: 000011 F3AB rep stosd | |
G_M45457_IG02: ; func=00, offs=000013H, size=0061H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 000013 48B908553412FC7F0000 mov rcx, 0x7FFC12345508 | |
New gcrReg live regs=00000001 {rax} | |
gcrReg +[rax] | |
[3FF11F10] ptr arg pop 0 | |
IN0002: 00001D E80E27AD5F call CORINFO_HELP_NEWSFAST | |
gcrReg +[rcx] | |
IN0003: 000022 488BC8 mov rcx, rax | |
IN0004: 000025 488BC1 mov rax, rcx | |
IN0005: 000028 488BC8 mov rcx, rax | |
IN0006: 00002B 488BC1 mov rax, rcx | |
IN0007: 00002E 488BC8 mov rcx, rax | |
gcrReg -[rax] | |
byrReg +[rax] | |
IN0008: 000031 488D442440 lea rax, bword ptr [rsp+40H] | |
IN0009: 000036 488908 mov gword ptr [rax], rcx | |
IN000a: 000039 488B4C2440 mov rcx, gword ptr [rsp+40H] | |
IN000b: 00003E 48894C2430 mov gword ptr [rsp+30H], rcx | |
IN000c: 000043 488B4C2430 mov rcx, gword ptr [rsp+30H] | |
IN000d: 000048 488D442438 lea rax, bword ptr [rsp+38H] | |
IN000e: 00004D 488908 mov gword ptr [rax], rcx | |
IN000f: 000050 488B4C2438 mov rcx, gword ptr [rsp+38H] | |
IN0010: 000055 48894C2428 mov gword ptr [rsp+28H], rcx | |
IN0011: 00005A 488B4C2428 mov rcx, gword ptr [rsp+28H] | |
IN0012: 00005F 488D442448 lea rax, bword ptr [rsp+48H] | |
IN0013: 000064 488908 mov gword ptr [rax], rcx | |
IN0014: 000067 488B4C2448 mov rcx, gword ptr [rsp+48H] | |
IN0015: 00006C 3909 cmp dword ptr [rcx], ecx | |
New gcrReg live regs=00000000 {} | |
gcrReg -[rcx] | |
New byrReg live regs=00000000 {} | |
byrReg -[rax] | |
[3FF11FD0] ptr arg pop 0 | |
IN0016: 00006E E8FDFDFFFF call C:M():this | |
IN0017: 000073 90 nop | |
G_M45457_IG03: ; func=00, offs=000074H, size=0006H, epilog, nogc, emitadd | |
IN001e: 000074 4883C450 add rsp, 80 | |
IN001f: 000078 5F pop rdi | |
IN0020: 000079 C3 ret | |
Allocated method code size = 122 , actual size = 122 | |
*************** After end code gen, before unwindEmit() | |
G_M45457_IG01: ; func=00, offs=000000H, size=0013H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref, nogc <-- Prolog IG | |
IN0018: 000000 push rdi | |
IN0019: 000001 sub rsp, 80 | |
IN001a: 000005 lea rdi, [rsp+28H] | |
IN001b: 00000A mov ecx, 10 | |
IN001c: 00000F xor rax, rax | |
IN001d: 000011 rep stosd | |
G_M45457_IG02: ; offs=000013H, size=0061H, gcrefRegs=00000000 {}, byrefRegs=00000000 {}, byref | |
IN0001: 000013 mov rcx, 0x7FFC12345508 | |
IN0002: 00001D call CORINFO_HELP_NEWSFAST | |
IN0003: 000022 mov rcx, rax | |
IN0004: 000025 mov rax, rcx | |
IN0005: 000028 mov rcx, rax | |
IN0006: 00002B mov rax, rcx | |
IN0007: 00002E mov rcx, rax | |
IN0008: 000031 lea rax, bword ptr [V05 rsp+40H] | |
IN0009: 000036 mov gword ptr [rax], rcx | |
IN000a: 000039 mov rcx, gword ptr [V05 rsp+40H] | |
IN000b: 00003E mov gword ptr [V09 rsp+30H], rcx | |
IN000c: 000043 mov rcx, gword ptr [V09 rsp+30H] | |
IN000d: 000048 lea rax, bword ptr [V06 rsp+38H] | |
IN000e: 00004D mov gword ptr [rax], rcx | |
IN000f: 000050 mov rcx, gword ptr [V06 rsp+38H] | |
IN0010: 000055 mov gword ptr [V10 rsp+28H], rcx | |
IN0011: 00005A mov rcx, gword ptr [V10 rsp+28H] | |
IN0012: 00005F lea rax, bword ptr [V00 rsp+48H] | |
IN0013: 000064 mov gword ptr [rax], rcx | |
IN0014: 000067 mov rcx, gword ptr [V00 rsp+48H] | |
IN0015: 00006C cmp dword ptr [rcx], ecx | |
IN0016: 00006E call C:M():this | |
IN0017: 000073 nop | |
G_M45457_IG03: ; offs=000074H, size=0006H, epilog, nogc, emitadd | |
IN001e: 000074 add rsp, 80 | |
IN001f: 000078 pop rdi | |
IN0020: 000079 ret | |
Unwind Info: | |
>> Start offset : 0x000000 (not in unwind data) | |
>> End offset : 0x00007a (not in unwind data) | |
Version : 1 | |
Flags : 0x00 | |
SizeOfProlog : 0x05 | |
CountOfUnwindCodes: 2 | |
FrameRegister : none (0) | |
FrameOffset : N/A (no FrameRegister) (Value=0) | |
UnwindCodes : | |
CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 9 * 8 + 8 = 80 = 0x50 | |
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rdi (7) | |
allocUnwindInfo(pHotCode=0x00007FFC124616B0, pColdCode=0x0000000000000000, startOffset=0x0, endOffset=0x7a, unwindSize=0x8, pUnwindBlock=0x0000024E3FF053E8, funKind=0 (main function)) | |
*************** In genIPmappingGen() | |
IP mapping count : 10 | |
IL offs PROLOG : 0x00000000 ( STACK_EMPTY ) | |
IL offs 0x0000 : 0x00000013 ( STACK_EMPTY ) | |
IL offs 0x0007 : 0x00000025 | |
IL offs 0x000C : 0x00000028 | |
IL offs 0x0011 : 0x0000002E | |
IL offs 0x0016 : 0x00000039 | |
IL offs 0x001B : 0x00000050 | |
IL offs 0x0020 : 0x00000067 ( STACK_EMPTY ) | |
IL offs 0x0027 : 0x00000073 ( STACK_EMPTY ) | |
IL offs EPILOG : 0x00000073 ( STACK_EMPTY ) | |
*************** In genSetScopeInfo() | |
VarLocInfo count is 0 | |
*************** Variable debug info | |
0 vars | |
*************** In gcInfoBlockHdrSave() | |
Set code length to 122. | |
Set ReturnKind to Scalar. | |
Set Outgoing stack arg area size to 32. | |
Stack slot id for offset 72 (0x48) (sp) (untracked) = 0. | |
Stack slot id for offset 64 (0x40) (sp) (untracked) = 1. | |
Stack slot id for offset 56 (0x38) (sp) (untracked) = 2. | |
Stack slot id for offset 48 (0x30) (sp) (untracked) = 3. | |
Stack slot id for offset 40 (0x28) (sp) (untracked) = 4. | |
Defining 2 call sites: | |
Offset 0x1d, size 5. | |
Offset 0x6e, size 5. | |
Method code size: 122 | |
Allocations for Program:ViaStruct5() (MethodHash=900a8869) | |
count: 1080, size: 91119, max = 3072 | |
allocateMemory: 196608, nraUsed: 136464 | |
Alloc'd bytes by kind: | |
kind | size | pct | |
---------------------+------------+-------- | |
AssertionProp | 6460 | 7.09% | |
ASTNode | 15088 | 16.56% | |
InstDesc | 3880 | 4.26% | |
ImpStack | 0 | 0.00% | |
BasicBlock | 856 | 0.94% | |
fgArgInfo | 112 | 0.12% | |
fgArgInfoPtrArr | 16 | 0.02% | |
FlowList | 0 | 0.00% | |
TreeStatementList | 0 | 0.00% | |
SiScope | 0 | 0.00% | |
FlatFPStateX87 | 0 | 0.00% | |
DominatorMemory | 48 | 0.05% | |
LSRA | 3104 | 3.41% | |
LSRA_Interval | 1496 | 1.64% | |
LSRA_RefPosition | 3584 | 3.93% | |
Reachability | 16 | 0.02% | |
SSA | 2500 | 2.74% | |
ValueNumber | 13714 | 15.05% | |
LvaTable | 2421 | 2.66% | |
UnwindInfo | 0 | 0.00% | |
hashBv | 40 | 0.04% | |
bitset | 368 | 0.40% | |
FixedBitVect | 0 | 0.00% | |
Generic | 1608 | 1.76% | |
IndirAssignMap | 0 | 0.00% | |
FieldSeqStore | 1048 | 1.15% | |
ZeroOffsetFieldMap | 504 | 0.55% | |
ArrayInfoMap | 112 | 0.12% | |
MemoryPhiArg | 0 | 0.00% | |
CSE | 1504 | 1.65% | |
GC | 1750 | 1.92% | |
CorSig | 208 | 0.23% | |
Inlining | 5912 | 6.49% | |
ArrayStack | 704 | 0.77% | |
DebugInfo | 448 | 0.49% | |
DebugOnly | 22528 | 24.72% | |
Codegen | 0 | 0.00% | |
LoopOpt | 0 | 0.00% | |
LoopHoist | 0 | 0.00% | |
Unknown | 186 | 0.20% | |
RangeCheck | 0 | 0.00% | |
CopyProp | 904 | 0.99% | |
****** DONE compiling Program:ViaStruct5() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment